J'utilise zabbix dans mon environnement, mais je suppose que cette méthode pourrait également fonctionner dans d'autres configurations. J'ai configuré la commande suivante que zabbix est autorisé à utiliser :
UserParameter=elasticsearch.commits,/usr/bin/curl -s 'localhost:9200/_cat/count?v' | /bin/sed -n '2p' | /bin/awk '{print $3}'
Cela renverra le nombre d'enregistrements elasticsearch engagés au total. Je prends cette valeur et la divise par le nombre de secondes écoulées depuis le dernier échantillon (je vérifie toutes les minutes), si ce nombre tombe en dessous d'une limite arbitraire, je peux lancer une alerte. J'utilise également zabbix pour vérifier si le PID de logstash est mort, et je lance une alerte pour cela aussi, et j'exécute la commande suivante :
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/
Cela retournera 1 si la santé de l'amas est passée au rouge (le jaune et le vert sont corrects), ce qui me permet également de déclencher une alerte.