Adakah yang tahu alat untuk mendeteksi dan melaporkan pola berulang dalam file log? [Tutup]


12

Saya perlu memonitor beberapa file log berisik besar (500m / hari) dari aplikasi Java (log4j). Saat ini saya secara manual melihat file-file itu, ambil "ERROR" dan seterusnya. Namun harus memungkinkan alat untuk menemukan pola yang berulang dalam file, menghitungnya dan menyediakan menelusuri rincian entri individu. Adakah yang tahu alat seperti itu? Teks atau UI berbasis Web akan menyenangkan.


1
Bagi saya pertanyaan ini benar-benar menjerit perl.
John Gardeniers

Hmm mulai terlihat seperti saya harus menulis skrip bash dengan banyak greps. Saya berharap ada sesuatu yang tahu pola secara otomatis.
David Tinker

Serius, inilah perl diciptakan untuk. Anda dapat menulis skrip belajar mandiri untuk pola-pola itu, meskipun itu jelas di luar jangkauan di sini.
John Gardeniers

stackoverflow.com/questions/2590251/… memiliki solusi yang disebut Chainsaw.
John aka hot2use

datadoghq.com/blog/log-patterns <- sangat merekomendasikan, tetapi meskipun tidak gila mahal itu tidak super murah juga.
neokyle

Jawaban:


3

Saya pernah mendengar tentang orang yang menerapkan filter Bayesian pada file log untuk melihat hal-hal menarik dibandingkan entri log rutin. Mereka menggunakan filter spam, di mana entri rutin yang tidak menarik dianggap "baik" sementara yang tidak biasa dianggap sebagai "spam" dan menggunakan pewarnaan yang dapat mereka ubah.

Kedengarannya seperti mesin belajar hal bagi saya, tapi sekali lagi saya belum melihatnya beraksi, hanya mendengar tentang bir.


Ini sepertinya masuk akal bagi saya, dan Anda bahkan bisa memiliki asumsi yang sangat kuat sebelumnya (dalam pengertian Bayesian) tentang kata-kata tertentu yang selalu muncul di log server.
DrewConway

Ya ini akan melakukan pekerjaan. Adakah yang tahu implementasi yang bisa saya latih?
David Tinker

Orang bisa mulai dengan CRM114 kurasa. Atau tunggu sampai Drew Conway menerbitkan Machine Learning for Hacker-nya . Saya masih berusaha menemukan referensi asli untuk apa yang saya usulkan.
adamo

Ya! Saya membacanya kembali pada tahun 2005 di utas anggota bijak ini . Penulis email menyebutkan spamprobe .
adamo

6

Splunk sangat menakjubkan untuk hal-hal semacam ini. Saya menggunakannya secara internal untuk mengumpulkan semua log dan melakukan pencarian cepat melalui antarmuka berbasis browser yang sangat baik.


Sayangnya kita mungkin akan memerlukan versi yang tidak bebas dan ini sedikit mahal
David Tinker

3

syslog-ng memiliki fitur bernama patterndb. Anda dapat membuat pola dan mencocokkan entri log dengan mereka secara real time kemudian mengirim entri tersebut ke file log terpisah.


2

Saat melihat ke syslog-ng dan patterndb (+1 untuk jawaban itu, di atas), saya menjumpai alat berbasis web yang disebut ELSA: http://code.google.com/p/enterprise-log-search-and-archive/ . Ini F / OSS di perl, dengan antarmuka web, dan seharusnya sangat cepat.

Saya belum mencobanya, tapi begitu saya selesai memfilter menggunakan patterndb, saya akan mencoba ELSA.


1

Cobalah petit .
Saya tidak yakin apakah itu akan berfungsi dengan format log4j, tetapi Anda mungkin dapat menulis filter khusus untuk itu.
Petit tidak memiliki antarmuka web, ini menampilkan grafik di shell Anda (ASCII art ftw!).
Sangat berguna untuk segera melihat pesan yang berulang dan mencari tahu kapan itu terjadi atau mulai terjadi lebih sering.




0

Splunk biasanya merupakan solusi yang bagus untuk ini. Tetapi Anda menyebutkan bahwa itu terlalu mahal untuk Anda. Jadi saya sarankan Anda untuk melihat Logstash atau GrayLog .


-1

Anda dapat mencoba SEQREL's LogXtender, yang secara otomatis mendeteksi pola dan mengagregasi log yang serupa. Cara melakukannya adalah dengan membuat ekspresi reguler dengan cepat dan menggunakan regex yang di-cache untuk mencocokkan log lainnya. Dengan deteksi taksonomi tambahan, granularitas dapat ditambahkan. Versi gratis dapat diunduh di https://try.logxtender.net .

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.