Вчера познакомился с любопытной утилитой для мониторинга – 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 и т.д. У утилиты полноценная и понятная документация. Выглядит добротным и качественным проектом.