Вчера познакомился с любопытной утилитой для мониторинга — Monika. Такое душевное название 😄 Автор объясняет, что это от индонезийского «Monitoring Berkala», что переводится как «periodic monitoring». Странное у него представление о сокращениях. Нам, потомкам советский людей, такое трудно понять.
https://github.com/hyperjumptech/monika
https://monika.hyperjump.tech/overview
Автор не поленился и расписал, зачем он придумал еще одну утилиту для мониторинга. Во второй ссылке подробно описано в разделах Motivation и Not just another tool.
В целом, мне суть и концепция понравились. Это утилита, которая способна выполнять различные сценарии веб проверок (не только пинги и коды ответа) и отправлять оповещения различными способами. А все настройки хранятся в одном json файле. Получается хорошее решение для автоматизации, когда надо что-то собрать, протестировать и отправить результат.
Monika написана под node.js, так что без проблем запускается либо через ноду, либо в докере, примерно так:
docker run -v ${PWD}/monika.json:/config/monika.json hyperjump/monika:latest
Конфиг тоже очень простой и наглядный. Пример проверки с отправкой оповещения по smtp.
{
«notifications»: [
{
«id»: «unique-id-smtp»,
«type»: «smtp»,
«data»: {
«recipients»: [«YOUR_EMAIL_ADDRESS_HERE»],
«hostname»: «smtp.gmail.com«,
«port»: 587,
«username»: «YOUR_GMAIL_ACCOUNT»,
«password»: «YOUR_GMAIL_PASSWORD_OR_APP_PASSWORD»
}
}
],
«probes»: [
{
«id»: «1»,
«name»: «Monika Landing Page»,
«description»: «Landing page of awesome Monika»,
«interval»: 10,
«requests»: [
{
«url»: «https://hyperjumptech.github.io/monika«,
«timeout»: 7000
}
],
«alerts»: [«status-not-2xx»]
}
]
}
Оповещения поддерживаются во все популярные направления — smtp, slack, telegram, webhook, whatsapp, discord и т.д. У утилиты полноценная и понятная документация. Выглядит добротным и качественным проектом.