Bagaimana Anda menerapkan manajemen log di server Anda?


13

Saya mencoba mencari tahu bagaimana orang lain menerapkan sistem manajemen log mereka.

Saya memiliki 20-30 server Linux dan beberapa kotak Windows (kebanyakan dari mereka tervirtualisasi). Kami menggunakan banyak skrip Perl dan Bash untuk melakukan sebagian besar pekerjaan otomatis kami dan saya mencoba untuk membakukan pencatatan mereka.

Saya telah melihat log4perl dan log4sh untuk mencatat skrip dan syslog-ng untuk mendapatkan semua log pada server logging terpusat. Saya juga membaca di splunk, meskipun terdengar seperti edisi enterprise cukup mahal dan saya mungkin melewati batas lisensi gratis dengan semua server saya.

Saya telah melihat alat-alat lain seperti swatch dan logcheck, tetapi saya tidak yakin bagaimana semua bagian ini cocok bersama ... Setiap rekomendasi akan sangat dihargai!


Jawaban:


8

Saya memiliki sekitar 30 server, dan saya hanya menggunakan syslog langsung untuk mengirim semua log ke server logging tunggal. Untuk cadangan, semua mesin juga dikonfigurasikan untuk menyimpan log mereka sendiri secara lokal selama beberapa hari, menggunakan logrotate untuk menjaga rotasi dan penghapusan log lama.

Setiap server aplikasi saya menjalankan skrip perl kecil untuk mengirim log mereka ke syslog, yang kemudian meneruskan ke loghost (skrip perl di bawah).

Kemudian di loghost kami memiliki beberapa skrip khusus yang mirip dengan logcheck yang pada dasarnya mengawasi log yang masuk untuk sesuatu yang mencurigakan.

Kami juga memiliki semua email dari setiap host pergi ke satu tempat, sehingga jika ada program yang mengeluh seperti itu, kami mendapatkan semua pesan. Secara teori ini bisa masuk ke kotak surat tunggal yang dapat ditindaklanjuti dan dianalisis oleh suatu program.

Ini skrip perl logging saya. Ia bekerja dengan mem-pipkan output program ke dalamnya, dan kemudian syslog output dan meludahkannya kembali sehingga Anda dapat mengirimnya di tempat lain (saya kirim ke multilog). Anda juga dapat memberikannya opsi -q untuk hanya pergi ke syslog.

#!/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;

Skripnya cukup praktis, tetapi dengan syslog di klien dan syslog-ng di server (atau bahkan syslog-ng di klien juga), Anda bisa mendapatkan fungsionalitas ini dengan kontrol lebih besar atas pemfilteran log.
thepocketwade

@thepocketwade: Sangat benar. Saya tidak pernah membutuhkan fungsionalitas tambahan.
jedberg

2

Meskipun saya belum mengimplementasikannya, saya berencana memindahkan semua mesin penghasil log saya ke rsyslog, dan mengimplementasikan server tipe benteng yang akan berfungsi sebagai pengumpul syslogs. Dari sana, saya pikir versi gratis Splunk dapat melakukan semua yang saya butuhkan untuk mengeluarkan informasi.

Sekarang hanya untuk mengimplementasikannya ...


2

Saya menggunakan host syslog pusat. Setiap sistem tepi mengirimkan * .debug ke loghost pusat. Host syslog pusat menjalankan syslog-ng, dan memiliki aturan untuk memecah log sehingga setiap mesin membuat file sendiri yang dinamai untuk hari itu. Itu juga membuang semuanya ke dalam satu file, di mana saya menjalankan turunan dari logcheck.sh.

Sekali sehari saya menjalankan compacter log, yang membuka semua log yang lebih tua dari 7 hari, dan menghapus sesuatu yang lebih dari 28 hari. Di antara keduanya, ia memberi catatan hidup yang diperkirakan selama 35 hari di server, yang berarti bahwa semua log harus masuk ke cadangan bulanan, di mana mereka dapat dipulihkan hingga dua tahun.

Ini padat-penyimpanan, tetapi tampaknya menjadi cara terbaik untuk memastikan cakupan.


Saya punya sistem yang serupa, tetapi server log saya memiliki folder yang telah ditentukan (mail, auth, catchall) yang lognya difilter. Pada satu titik saya sedang mencari menggunakan splunk. Saya bisa meneruskan data dari server log ke server splunk dengan mudah.
thepocketwade

1

Untuk logging terpusat, saya sangat merekomendasikan LogZilla . Kami telah menggunakannya selama lebih dari setahun sekarang dan benar-benar menyukainya. UI sangat mudah dipelajari dan digunakan dan instalasi membutuhkan waktu sekitar satu jam.

Bahkan jika Anda tidak melakukannya, Anda benar-benar harus mencoba untuk menjauh dari pemantauan berbasis skrip karena itulah yang Anda dapatkan ... pemantauan. Yang harus Anda coba capai adalah Manajemen. Memperbaiki masalah pada Pembicara top, dll. Akan sangat mengurangi jumlah "kebakaran" yang dipicu oleh pemantauan berbasis skrip. Inilah artikel yang sangat bagus tentang manajemen syslog:

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


0

Kami menggunakan alat dari LogLogic untuk pencatatan perusahaan kami. Ini didasarkan pada syslog, jadi semua * nix kotak tidak memiliki masalah menggunakannya; ada aplikasi kecil yang perlu diinstal di server windows. Saya dapat mencari apa pun yang saya inginkan, termasuk permintaan REGEX, dan tampaknya mampu menangani sedikit beban (pengaturan Active Directory kami sendiri menghasilkan jumlah lalu lintas yang membingungkan).


1
Hanya hati-hati mengevaluasi produk mereka ... Saya mendapat sekitar 10 panggilan / email dari mereka, mereka SANGAT persisten.
Flamewires

Saya pikir ini dapat dikatakan untuk hampir semua vendor hari ini, dan tidak berpengaruh pada fungsi produk yang sebenarnya itu sendiri. Anda tidak ingin tahu seberapa sering DELL, EMC, dll. Datang mengetuk / menelepon di sekitar sini ....
Tatas

0

Untuk server logging terpusat, Anda dapat melihat proyek Octopussy saya .

Ini banyak pekerjaan di awal, tetapi setelah Anda dapat melakukan banyak hal dengan log ini!


0

Berikut adalah tutorial yang saya tulis yang mencakup semua aspek logging dan analisis terpusat.

Tautan: http://crunchtools.com/centralizing-log-files/


Saya juga melihat log4sh untuk proyek yang saya miliki secara internal (akhirnya menjadi open source, tetapi bekerja sekarang), disebut scriptlog, pada dasarnya Anda menjalankannya sebelum perintah yang Anda pedulikan tentang output dan ia melakukan beberapa hal ajaib seperti menambahkan PERINGATAN string atau string KRITIS, ia juga memiliki plugin nagios untuk memonitornya. Akan dikirim ketika saya mengeluarkannya
fatherlinux
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.