この質問をメーリングリストで何度か見ましたが、満足のいく答えがありませんでした。
パイプラインがスタックしていないことを監視するのに最適な方法はどれですか。クライアント-> logstash-> elasticsearch。
Logstash、特にelasticsearchはリソース不足の傾向があります。彼らはどちらも、中断したところから再開するのは素晴らしいですが、人々はウォッチャーをどのように見ていますか?
意見を歓迎します。
この質問をメーリングリストで何度か見ましたが、満足のいく答えがありませんでした。
パイプラインがスタックしていないことを監視するのに最適な方法はどれですか。クライアント-> logstash-> elasticsearch。
Logstash、特にelasticsearchはリソース不足の傾向があります。彼らはどちらも、中断したところから再開するのは素晴らしいですが、人々はウォッチャーをどのように見ていますか?
意見を歓迎します。
回答:
個人的に私は実際に、LS + ESの上流にある中央ロギングホストでredisがまだデキューしていることを確認します。
つまりredis-cli llen logstash
、いくつかの固定数よりも小さいです。
これは、ログがredisで表示されていることをまったく示していない可能性がありますが、これもチェックできると思います。
redis-cli info | grep total_commands_processed
増え続けるチェックのようなものでしょうか?
total_commands_processed
logstashのポーリングからではなく、info
コマンド自体からではなくても、常にインクリメントされませんか?
私の環境では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を返します。これも警告できます。
私たちはいくつかのアプローチを使用します: