Я использую zabbix в своей среде, но я полагаю, что этот метод может работать и в других установках. Я настроил следующую команду, которую zabbix разрешено использовать:
UserParameter=elasticsearch.commits,/usr/bin/curl -s 'localhost:9200/_cat/count?v' | /bin/sed -n '2p' | /bin/awk '{print $3}'
Это вернет количество зафиксированных записей эластичного поиска. Поэтому я беру это значение и делю на количество секунд, прошедшее с момента, когда я взял последний образец (проверяю каждую минуту), если это число падает ниже произвольного предела, я могу предупредить его. Я также использую zabbix, чтобы проверить, не умер ли PID logstash, и отключить его, а также выполнить следующую команду:
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, если состояние кластера стало красным (желтый и зеленый в порядке), что я также могу предупредить.