← на главную

Алексей Батищев. Заметки обо всём, что происходит со мной и окружающим миром

Избранное: мои фото- и видеоработы, забрать своё из облаков, КЭНК
Навигация: все теги, посты по годам

Робот-лесник и ёлка

Сегодня расскажу про суровое, простое и полезное как топор в лесу кэнк-поделие, на разработку и запуск которого в пром ушло меньше часа времени.

Вот ELK-стек, в который собираются некоторые данные. Конечно, мы следим за хостами фермы через мониторинг. Но хотелось бы и смотреть и за состоянием самого сервиса, и — главное — вовремя узнавать если что-то пошло не так.

Выбираем сервак для размещения робота-лесника (в моём случае под виндой ибо фигачим быстро и грязно на павершеле). Пишем скрипт, в котором:

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

Итого, при проблемах с сервисом имеем своевременные оповещения, машины трудятся а человеки отдыхают.

Думал оформить свой скриптец в виде готового продукта, но в целом тула вышла специфичная под мои требования и легко воспроизводимая в нужном виде под требования чужие, так что ограничусь общим алгоритмом и описанием идеи.

КЭНК!
Слава роботам!