Робот-лесник и ёлка
Сегодня расскажу про суровое, простое и полезное как топор в лесу кэнк-поделие, на разработку и запуск которого в пром ушло меньше часа времени.
Вот ELK-стек, в который собираются некоторые данные. Конечно, мы следим за хостами фермы через мониторинг. Но хотелось бы и смотреть и за состоянием самого сервиса, и — главное — вовремя узнавать если что-то пошло не так.
Выбираем сервак для размещения робота-лесника (в моём случае под виндой ибо фигачим быстро и грязно на павершеле). Пишем скрипт, в котором:
- читаем список FQDN нод нашей ёлки из конфига скрипта
- проходим по списку, проверяя доступность хостов по сети (через Test-NetConnection -port 9200). Если какая-то нода не пингуется или не отвечает по 9200 — алертим админу
- если есть хоть одна живая нода — запрашиваем у неё статус через API «https://cluster.com/_cluster/health?pretty». В полученном json пырим в «status», если он не «green» — запрашиваем более подробную диагностику через «https://cluster.com/_nodes/process?pretty» и тоже всё алертим админу.
- куда алертим? Ну лично мне удобней получать такое в почту и в специальный аварийный чят в телеге.
- повторяем проверку (дёргаем скрипт планировщиком на сервере с нужной периодичностью)
Итого, при проблемах с сервисом имеем своевременные оповещения, машины трудятся а человеки отдыхают.
Думал оформить свой скриптец в виде готового продукта, но в целом тула вышла специфичная под мои требования и легко воспроизводимая в нужном виде под требования чужие, так что ограничусь общим алгоритмом и описанием идеи.
КЭНК!
Слава роботам!