Bagaimana cara terbaik untuk memonitor logstash?

8

Saya telah melihat pertanyaan ini di milis beberapa kali tetapi belum memiliki jawaban yang memuaskan.

Bagaimana cara terbaik untuk memantau bahwa pipa tidak macet? Klien -> logstash -> elasticsearch.

Logstash dan terutama elasticsearch rentan terhadap kelaparan sumber daya. Mereka berdua fantastis dalam mengambil di mana mereka tinggalkan tetapi bagaimana, tepatnya, orang-orang menonton pengamat mereka?

Pendapat diterima.

Dan Garthwaite
sumber
Mungkin bisa membantu ini. Bagaimana memeriksa pulsa
Logstash

Jawaban:

2

Secara pribadi saya benar-benar memeriksa bahwa redis masih keluar pada host logging pusat, yang merupakan hulu dari LS + ES.

yaitu: redis-cli llen logstashkurang dari beberapa nomor tetap.

Ini mungkin tidak menunjukkan bahwa log muncul dalam redis sama sekali, tetapi itu bisa diperiksa juga kurasa.

Sesuatu seperti memeriksa yang redis-cli info | grep total_commands_processedterus meningkat, mungkin?

Sirex
sumber
Bukankah itu terus meningkat karena semakin banyak log masuk? Kami akan membutuhkan jumlah total LPOP. Atau mungkin memperingatkan ketika LLEN menjadi terlalu besar?
Dan Garthwaite
ya. Saya mengucapkannya dengan buruk, saya memeriksa bahwa llen kurang dari beberapa nomor, dan mengingatkan jika tidak.
Sirex
Tidak akan total_commands_processedselalu bertambah, jika bukan dari polling logstash maka dari infoperintah itu sendiri?
Dan Garthwaite
2

Saya menggunakan zabbix di lingkungan saya, tetapi saya kira metode ini bisa bekerja di pengaturan lain juga. Saya telah mengkonfigurasi perintah berikut agar zabbix diizinkan untuk digunakan:

UserParameter=elasticsearch.commits,/usr/bin/curl -s 'localhost:9200/_cat/count?v' | /bin/sed -n '2p' | /bin/awk '{print $3}'

Ini akan mengembalikan jumlah catatan elasticsearch yang dilakukan total. Jadi saya mengambil nilai ini dan membaginya dengan jumlah detik sejak saya mengambil sampel terakhir (saya periksa setiap menit), jika angka ini turun di bawah batas sewenang-wenang saya dapat mengingatkan itu. Saya juga menggunakan zabbix untuk memeriksa apakah PID logstash telah mati, dan lansiran juga, dan jalankan perintah berikut:

UserParameter=elasticsearch.health,/usr/bin/curl -s 'http://localhost:9200/_cluster/health?pretty=true' | /bin/sed -n '3p' | /bin/awk -F'\"' '{print $4}' | /bin/sed s/yellow/0/ | /bin/sed s/green/0/ | /bin/sed s/red/1/

Ini akan mengembalikan 1 jika kesehatan cluster menjadi merah (kuning dan hijau baik-baik saja), yang juga dapat saya waspadai.

Gemuruh
sumber
0

Periksa untuk melihat bahwa log per detik di titik akhir akhir Anda (misalnya elasticsearch) di atas beberapa baseline.

Yaitu, lakukan pemeriksaan ujung ke ujung, jika hasil akhir Anda bekerja dengan benar, Anda tahu bahwa semua langkah dalam pipa bekerja dengan benar.

Jika Anda sering mengalami masalah, atau perlu introspeksi yang lebih baik, mulailah menginstruksikan setiap bagian pipa seperti redis seperti yang disarankan di atas.

dmourati
sumber
0

Kami menggunakan beberapa pendekatan:

  1. Monit , untuk mendengarkan port Elastic dan Logstash dan restart mereka
  2. Untuk kasus-kasus ketika sesuatu yang buruk terjadi, dan semuanya berada di tempat dari calon monit, tetapi log tidak dikonsumsi / disimpan ada skrip sederhana, yang memeriksa indeks aktif setiap jam dan peringatan dalam hitungan dokumen kasus tidak berubah dalam jam terakhir.
Constantine Korobov
sumber