Log transportasi dan agregasi dalam skala


14

Bagaimana Anda menganalisis file log dari mesin UNIX / Linux? Kami menjalankan beberapa ratus server yang semuanya menghasilkan file log mereka sendiri, baik secara langsung atau melalui syslog. Saya mencari solusi yang layak untuk mengumpulkan ini dan memilih acara penting. Masalah ini dipecah menjadi 3 komponen:

1) Pengiriman pesan

Cara klasik adalah dengan menggunakan syslog untuk mencatat pesan ke host jarak jauh. Ini berfungsi dengan baik untuk aplikasi yang masuk ke syslog tetapi kurang berguna untuk aplikasi yang menulis ke file lokal. Solusi untuk ini mungkin termasuk memiliki log aplikasi ke FIFO yang terhubung ke program untuk mengirim pesan menggunakan syslog, atau dengan menulis sesuatu yang akan menangkap file lokal dan mengirim output ke host syslog pusat. Namun, jika kita kesulitan menggunakan alat tulis untuk mengirim pesan ke syslog, apakah kita akan lebih baik mengganti semuanya dengan sesuatu seperti Facebook Scribe yang menawarkan lebih banyak fleksibilitas dan keandalan daripada syslog?

2) Agregasi pesan

Entri log tampaknya jatuh ke dalam salah satu dari dua jenis: per-host dan per-layanan. Pesan per-host adalah yang terjadi pada satu mesin; pikirkan kegagalan disk atau login yang mencurigakan. Pesan per-layanan terjadi pada sebagian besar atau semua host yang menjalankan layanan. Misalnya, kami ingin tahu kapan Apache menemukan kesalahan SSI tetapi kami tidak ingin kesalahan yang sama dari 100 mesin. Dalam semua kasus, kami hanya ingin melihat satu dari setiap jenis pesan: kami tidak ingin 10 pesan mengatakan disk yang sama telah gagal, dan kami tidak ingin pesan setiap kali SSI yang rusak dipukul.

Salah satu pendekatan untuk memecahkan masalah ini adalah dengan menggabungkan beberapa pesan dari jenis yang sama menjadi satu pada setiap host, mengirim pesan ke server pusat dan kemudian menggabungkan pesan-pesan dari jenis yang sama ke dalam satu peristiwa keseluruhan. SER dapat melakukan ini tetapi canggung untuk digunakan. Bahkan setelah beberapa hari mengutak-atik saya hanya memiliki agregasi dasar yang berfungsi dan harus terus mencari logika yang digunakan SER untuk mengkorelasikan peristiwa. Ini hal yang kuat tapi rumit: Saya butuh sesuatu yang dapat diambil dan digunakan rekan saya dalam waktu sesingkat mungkin. Aturan SER tidak memenuhi persyaratan itu.

3) Menghasilkan peringatan

Bagaimana kita memberi tahu admin kita ketika sesuatu yang menarik terjadi? Kirim kotak masuk grup? Menyuntikkan ke Nagios?

Jadi, bagaimana Anda memecahkan masalah ini? Saya tidak mengharapkan jawaban di atas piring; Saya dapat mengerjakan sendiri perinciannya tetapi beberapa diskusi tingkat tinggi tentang apa yang pasti merupakan masalah umum akan sangat bagus. Saat ini kami menggunakan mishmash pekerjaan cron, syslog dan siapa yang tahu apa lagi yang bisa menemukan acara. Ini tidak dapat diperpanjang, dipelihara atau fleksibel dan karena itu kami kehilangan banyak hal yang tidak seharusnya.

Diperbarui: kami sudah menggunakan Nagios untuk memantau yang sangat bagus untuk mendeteksi host / layanan pengujian / dll tetapi kurang berguna untuk mengikis file log. Saya tahu ada plugin log untuk Nagios tapi saya tertarik pada sesuatu yang lebih skalabel dan hierarkis daripada peringatan per-host.


Jawaban:


5

Saya telah menggunakan tiga sistem berbeda untuk memusatkan log:

  1. Syslog / syslog-ng penerusan ke satu host
  2. Zenoss untuk mengagregasi dan mengingatkan acara
  3. Splunk untuk pengumpulan dan pencarian log

Untuk # 3, saya biasanya menggunakan syslog-ng untuk meneruskan pesan dari setiap host langsung ke splunk. Itu juga dapat mengurai file log secara langsung, tetapi itu bisa sedikit menyebalkan.

Splunk cukup mengagumkan untuk mencari dan mengelompokkan log Anda. Saya belum pernah menggunakan splunk untuk mengingatkan log, tapi saya pikir itu mungkin.


+1 untuk Splunk. Anda dapat memiliki skrip eksternal pemicu Splunk ketika peristiwa-peristiwa tertentu terdeteksi; baik mengirim surat atau perangkap SNMP.
Murali Suriar

2

Anda dapat melihat OSSEC, HIDS open-source yang lengkap, ia melakukan analisis log & dapat memicu tindakan atau mengirim email pada peringatan. Lansiran dipicu oleh seperangkat aturan berbasis XML sederhana, banyak yang telah ditentukan untuk berbagai format log disertakan dan Anda dapat menambahkan aturan Anda sendiri

http://www.ossec.net/


1

Lihatlah Octopussy . Ini sepenuhnya dapat disesuaikan dan tampaknya menjawab semua kebutuhan Anda ...

PS: Saya pengembang solusi ini.


1
Saya tidak ingin mengambil risiko menyebarkan atau bahkan merekomendasikan produk yang memiliki "pus" dalam nama. Itu mungkin tidak akan cocok dengan sebagian besar perusahaan, terutama jika ada wanita yang bekerja di dalam TI (sangat umum hari ini).
Starfish

0

Anda perlu melihat ke dalam sistem pemantauan, misalnya Zenoss Core . Antara lain, katanya di halaman intro:

Zenoss Event Monitoring and Management menyediakan kemampuan untuk mengumpulkan log dan informasi acara dari berbagai sumber termasuk pemantauan ketersediaan, pemantauan kinerja, sumber syslog , sumber perangkap SNMP, Windows Event log.

Lihat apa-tool-do-you-use-to-monitor-your-server .


Saya tidak menyadari Zenoss memiliki fitur agregasi log. Saya akan memeriksanya - terima kasih.
markdrayton
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.