logstashを監視するのに最適な方法は?


8

この質問をメーリングリストで何度か見ましたが、満足のいく答えがありませんでした。

パイプラインがスタックしていないことを監視するのに最適な方法はどれですか。クライアント-> logstash-> elasticsearch。

Logstash、特にelasticsearchはリソース不足の傾向があります。彼らはどちらも、中断したところから再開するのは素晴らしいですが、人々はウォッチャーをどのように見ていますか?

意見を歓迎します。


ヘルプこのかもしれLogstashの脈拍を確認する方法
jBee

回答:


2

個人的に私は実際に、LS + ESの上流にある中央ロギングホストでredisがまだデキューしていることを確認します。

つまりredis-cli llen logstash、いくつかの固定数よりも小さいです。

これは、ログがredisで表示されていることをまったく示していない可能性がありますが、これもチェックできると思います。

redis-cli info | grep total_commands_processed増え続けるチェックのようなものでしょうか?


ログが増えるにつれ、それは増え続けるのではないでしょうか?LPOPの総数が必要になります。または、LLENが大きくなりすぎたときに警告することもできますか?
Dan Garthwaite、2014

ええ。私はそれをひどく言いました、私はllenがいくつかの数より少ないことを確認し、そうでない場合は警告します。
Sirex 2014

total_commands_processedlogstashのポーリングからではなく、infoコマンド自体からではなくても、常にインクリメントされませんか?
Dan Garthwaite、2014

2

私の環境ではzabbixを使用していますが、この方法は他のセットアップでも機能すると思います。zabbixが使用できる次のコマンドを構成しました。

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

これにより、コミットされたElasticsearchレコードの総数が返されます。したがって、この値を取得し、最後のサンプルを取得してからの秒数で除算します(毎分チェックします)。この数が任意の制限を下回った場合は、警告することができます。また、zabbixを使用して、logstash PIDが停止したかどうかを確認し、それも警告し、次のコマンドを実行します。

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/

クラスターのヘルスが赤になった場合(黄と緑は大丈夫)、これは1を返します。これも警告できます。


0

最終エンドポイント(elasticsearchなど)の1秒あたりのログがベースラインを上回っていることを確認します。

つまり、エンドツーエンドのチェックを実行します。最終結果が正しく機能していれば、パイプラインのすべてのステップが正しく機能していることがわかります。

問題が頻繁に発生する場合、またはより適切な内省が必要な場合は、上記のように、redisのようにパイプラインの各部分の計測を開始します。


0

私たちはいくつかのアプローチを使用します:

  1. Monit、ElasticおよびLogstashポートをリッスンして再起動する
  2. 何か問題が発生し、monitの予測からすべてが整っているが、ログが消費/保存されていない場合、単純なスクリプトがあり、アクティブなインデックスを1時間ごとにチェックし、ドキュメント数が最後の1時間で変更されていない場合にアラートを出します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.