Uso zabbix en mi entorno, pero supongo que este método también podría funcionar en otras configuraciones. He configurado el siguiente comando que zabbix puede usar:
UserParameter=elasticsearch.commits,/usr/bin/curl -s 'localhost:9200/_cat/count?v' | /bin/sed -n '2p' | /bin/awk '{print $3}'
Esto devolverá el número total de registros elásticos de búsqueda comprometidos. Así que tomo este valor y lo divido por el número de segundos desde que tomé la última muestra (verifico cada minuto), si este número cae por debajo de un límite arbitrario, puedo alertarlo. También utilizo zabbix para verificar si el PID logstash ha muerto, y también alertarlo, y ejecutar el siguiente comando:
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/
Esto devolverá 1 si la salud del clúster se ha vuelto roja (amarillo y verde están bien), lo que también puedo alertar.