Günlük yönetimini sunucularınıza nasıl uyguladınız?


13

Diğer insanların günlük yönetim sistemlerini nasıl uyguladıklarını anlamaya çalışıyorum.

20-30 Linux sunucum ve birkaç Windows kutum var (çoğu sanallaştırılmış). Otomatik işlerimizin çoğunu yapmak için çok sayıda Perl ve Bash komut dosyası kullanıyoruz ve bunların kayıtlarını standartlaştırmaya çalışıyorum.

Merkezi bir günlük sunucusunda tüm günlükleri almak için komut dosyaları ve syslog-ng günlüğü için log4perl ve log4sh bakıyordum. Ben de kurumsal baskı oldukça pahalı ve tüm sunucuları ile ücretsiz lisans sınırını aşabilir gibi sesler olsa da, splunk okudum.

Renk örneği ve logcheck gibi başka araçlar gördüm, ancak tüm bu parçaların birbirine nasıl uyduğundan emin değilim ... Herhangi bir öneri çok takdir edilecektir!


Yanıtlar:


8

Yaklaşık 30 sunucum var ve tüm günlükleri tek bir günlük sunucusuna göndermek için düz syslog kullanıyorum. Yedekleme için, tüm makineler eski günlüklerin döndürülmesine ve silinmesine dikkat etmek için logrotate kullanarak kendi günlüklerini birkaç gün boyunca yerel olarak depolayacak şekilde yapılandırılmıştır.

Uygulama sunucularımın her biri, günlüklerini syslog'a göndermek için küçük bir perl betiği çalıştırır ve daha sonra loghost'a iletir (aşağıdaki perl betiği).

Sonra loghost üzerinde şüpheli bir şey için temelde gelen günlükleri izlemek logcheck benzer bazı özel komut dosyaları var.

Ayrıca, her ana bilgisayardan gelen tüm e-postaların tek bir yere gitmesi gerekir, böylece herhangi bir program bu şekilde şikayet ederse, tüm iletileri alırız. Bu teorik olarak bir programın hareket edebileceği ve analiz edebileceği tek bir posta kutusuna gidebilir.

İşte benim günlük perl betiğim. Programın çıktısını buna bağlayarak çalışır ve daha sonra çıktıyı syslogs ve başka bir yere gönderebilmeniz için geri tükürür (Multilog'a gönderirim). Ayrıca syslog dosyasına gitmek için -q seçeneğini de kullanabilirsiniz.

#!/usr/bin/perl

use Sys::Syslog;
use Getopt::Long;

$SERVER_NAME = `hostname`;
chomp $SERVER_NAME;
$FACILITY = 'local0';
$PRIORITY = 'info';

GetOptions ('s=s' => \$SERVER_NAME, 'f=s' => \$FACILITY, 'p=s' => \$PRIORITY, 'q+' => \$quiet);

#print "$SERVER_NAME\n$FACILITY\n$PRIORITY\n";

#Sys::Syslog::setlogsock('unix');
openlog ($SERVER_NAME,'ndelay',$FACILITY);

if (!($quiet)) {syslog($PRIORITY,"Logging Started -- Logger version 1.1");}

$| = 1;

while (<>) {
    if (!($quiet)) {print $_ unless $_ =~ /^\s+$/};
    chomp;
    syslog($PRIORITY,$_) if $_;
}

closelog;

$| = 0;

Komut dosyası oldukça kullanışlıdır, ancak istemcilerde syslog ve bir sunucuda syslog-ng (hatta istemcilerde de syslog-ng) ile günlükleri filtrelemek üzerinde daha fazla kontrol ile bu işlevselliği elde edebilirsiniz.
thepocketwade

@thepocketwade: Çok doğru. Ek işlevselliğe hiç ihtiyacım olmadı.
jedberg

2

Henüz uygulamamış olmama rağmen, tüm günlük üreten makinelerimi rsyslog'a taşımayı ve syslog'ların toplayıcısı olarak işlev görecek bir bastion tipi sunucu uygulamayı planlıyorum. Oradan, Splunk'un ücretsiz versiyonunun bilgi almak için ihtiyacım olan her şeyi yapabileceğini düşünüyorum.

Şimdi sadece uygulamak için ...


2

Merkezi bir sistem günlüğü sunucusu kullanıyorum. Her kenar sistemi merkezi loghost'a * .debug gönderir. Merkezi syslog ana bilgisayarı syslog-ng komutunu çalıştırır ve günlükleri bölmek için kurallara sahiptir, böylece her makine o gün için adlandırılmış kendi dosyalarını oluşturur. Ayrıca her şeyi tek bir dosyaya döker, buna karşı logcheck.sh'in bir torununu çalıştırırım.

Günde bir kez, 7 günden daha eski günlükleri sıkıştırıp 28 günden daha eski bir şeyi silen bir günlük sıkıştırıcısı çalıştırıyorum. İkisi arasında, günlüklere sunucuda 35 günlük beklenen bir ömür verir, bu da tüm günlüklerin, iki yıla kadar kurtarılabilecekleri aylık yedeklere yapması gerektiği anlamına gelir.

Depolama açısından yoğun, ancak kapsamı sağlamanın en iyi yolu gibi görünüyor.


Benzer bir sistemim var, ancak günlük sunucumda günlüklerin filtrelendiği önceden tanımlanmış klasörler (posta, yetkilendirme, catchall) var. Bir noktada splunk kullanmayı düşünüyordum. Günlük sunucusundan splunk sunucusuna kolayca veri iletebilirim.
thepocketwade

1

Merkezi günlük kaydı için, çok LogZilla öneriyoruz . Bir yılı aşkın bir süredir kullanıyoruz ve kesinlikle seviyoruz. Kullanıcı arayüzünün öğrenilmesi ve kullanımı son derece kolaydır ve kurulum yaklaşık bir saat sürdü.

Yapmasanız bile, komut dosyası tabanlı izlemeden gerçekten uzaklaşmaya çalışmalısınız, çünkü tam olarak ne elde edersiniz ... izleme. Ulaşmaya çalışmanız gereken şey Yönetim. En iyi konuşmacılardaki vb. Sorunları onarmak, komut dosyası tabanlı izleme tarafından tetiklenen "yangın" miktarını büyük ölçüde azaltacaktır. İşte syslog yönetimi hakkında çok iyi bir makale:

http://www.cisco.com/en/US/technologies/collateral/tk869/tk769/white_paper_c11-557812.html


0

Kurumsal günlük kaydı için LogLogic'ten bir cihaz kullanıyoruz. Bu syslog'a dayanmaktadır, bu nedenle tüm * nix kutularının kullanımında sorun yoktur; Windows sunucularına yüklenmesi gereken küçük bir uygulama var. REGEX sorguları da dahil olmak üzere istediğim her şeyi arayabilirim ve oldukça yükü kaldırabiliyor gibi görünüyor (yalnızca Active Directory kurulumumuz tek başına trafik akıtan bir miktar üretir).


1
Sadece ürünlerini değerlendirirken dikkatli olun ... Onlardan yaklaşık 10 çağrı / e-posta aldım, ÇOK kalıcılar.
Flamewires

Bu günlerde hemen hemen her satıcı için söylenebilir ve gerçek ürünün işlevselliği üzerinde hiçbir etkisi yoktur. DELL, EMC, vb. Sık sık buraya vurma / arama geldiğini bilmek istemiyorum ....
Tatas

0

Merkezi günlük sunucusu için Octopussy projeme bir göz atabilirsiniz .

Başlangıçta çok iş var, ama sonra bu günlüklerle çok şey yapabilirsiniz!


0

İşte merkezi günlük kaydı ve analizinin tüm yönlerini kapsayan yazdığım bir öğretici.

Bağlantı: http://crunchtools.com/centralizing-log-files/


Ayrıca log4sh'a dahili olarak sahip olduğum bir proje için bakıyorum (sonunda açık kaynaklı olacak, ancak şimdi çalışıyorum), scriptlog olarak adlandırdım, aslında çıktısını önemsediğiniz komutlardan önce çalıştırıyorsunuz ve bir UYARI eklendi gibi bazı sihirli şeyler yapıyor dize veya CRITICAL dize, aynı zamanda izlemek için bir nagios eklentisi vardır. Ne zaman dışarı
çıkacak gönderecek
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.