Привет, я Паша из Ozon. В рабочее время занимаюсь тестированием поиска, а по вечерам надеваю маску инди-разработчика. И моя самая частая задача — написать скрипт → залить его на сервер → периодически мониторить, что сервер доступен. Эта статья как раз и будет строиться вокруг последнего пункта.
Вы наверняка в курсе, что существуют Grafana, Prometheus, Kibana, LogDNA и другие инструменты для мониторинга, визуализации и анализа данных. C первыми двумя я вплотную познакомился в Ozon, а про Kibana слышал когда-то давно и только в паре со словом «логи». Чтобы графики в Grafana рисовать — придется штат аналитиков нанять (ба-дум-тсс). Для пет-проекта это перебор, нужно что-то сильно проще (с точки зрения стоимости, простоты настройки и удобства). Ниже расскажу, какие готовые инструменты для мониторинга небольших проектов я нашёл в пучинах интернета, а также оставлю комментарии и рекомендации по использованию.
Дашборд Netdata
С помощью Netdata можно отслеживать огромнейшее количество показателей: статистику использования процессора, потребления памяти, операций ввода-вывода и прочего. Netdata разработана для администраторов, DevOps и разработчиков. Так что если сложно — есть раздел с документацией, рекомендую на старте, помогает внести ясность по базовым метрикам и настройке алертов.
Плюсы
Как оказалось, я всё время искал то, что сделали разработчики Monitoror. Потрясающе гибкая (во всех смыслах) доска с поддержкой CI/CD провайдеров. Просто взгляните на скриншоты:
Источник: Google
Рабочий дашборд Monitoror
Устанавливается легко, через бинарник. Настраивается через JSON файл. Выглядит он примерно так:
{
"version": "2.0",
"columns": 3,
"tiles": [
{
"type": "HTTP-RAW",
"label": "plumber stars",
"params": {
"url": "https://github.com/pashkatrick/Plumber",
"regex": "(\\d+) users starred"
}
},
{
"type": "HTTP-RAW",
"label": "grpc-client",
"params": {
"url": "https://marketplace.visualstudio.com/items?itemName=pashkatrick.grpc-client",
"regex": "(\\d+) installs"
}
},
{
"type": "HTTP-RAW",
"label": "udecoder",
"params": {
"url": "https://marketplace.visualstudio.com/items?itemName=pashkatrick.vscode-udecoder",
"regex": "(\\d+) installs"
}
},
{
"type": "HTTP-RAW",
"label": "vscode-etcd",
"params": {
"url": "https://marketplace.visualstudio.com/items?itemName=pashkatrick.vscode-etcd",
"regex": "(\\d+) installs"
}
}
]
}
Кому интересно подробнее — оставлю ссылку на официальную документацию. От себя скажу лишь, что помимо HTTP-RAW есть HTTP-FORMATTED и HTTP-STATUS. Но это для типа плитки HTTP соответственно. Поддерживаются следующие типы плиток:
Скриншот из документации Monitoror
Плюсы
Например:
Рабочее пространство N8N
Есть хорошая статья с разбором мониторинга базы данных. Но покажу на своём примере:
Пусть каждые 15 сек отправляется запрос на все мои сайты, и если в ответ приходит НЕ «200 ОК», то отправляется уведомление о проблеме. После собираем отчёт по всем сайтам и отправляем его менеджеру на почту и в Notion.
Пара минут на придумывание flow + соединить всё стрелочками + пару часов на все credentials и API-ключи. Получается довольно быстро c полным соответствием поставленным требованиям.
Рабочее пространство N8N (1)
Плюсы
Скриншот из Hyperping (источник: Google)
На борту: мониторы сайтов, значение uptime'a за настроенные периоды (98% за год), отчёты, страница status page (которую можно показывать всем желающим, хвастаясь стабильностью), а также функция пинга сайтов из разных точек мира и VPN/Proxy запросы. Лично не пробовал, но звучит интересно.
Много функций — конечно, хорошо, но разделение на команды внутри сервиса и инцидент-менеджмент кажутся лишними... Лично мне только уведомления нужны на случай, если что-то сломается. Но тут уже на вкус и цвет.
Плюсы
Скриншот из Better Uptime
Если я не упомянул еще более крутые сервисы — сообщите мне любым способом, например, в комментариях к статье. Я увижу, запущу сервис, оценю и обновлю статью. Благодарю за внимание!
Вы наверняка в курсе, что существуют Grafana, Prometheus, Kibana, LogDNA и другие инструменты для мониторинга, визуализации и анализа данных. C первыми двумя я вплотную познакомился в Ozon, а про Kibana слышал когда-то давно и только в паре со словом «логи». Чтобы графики в Grafana рисовать — придется штат аналитиков нанять (ба-дум-тсс). Для пет-проекта это перебор, нужно что-то сильно проще (с точки зрения стоимости, простоты настройки и удобства). Ниже расскажу, какие готовые инструменты для мониторинга небольших проектов я нашёл в пучинах интернета, а также оставлю комментарии и рекомендации по использованию.
Disclaimer: все проекты рассматриваются с точки зрения маленького сайта/скрипта/бота/приложения, поэтому видение автора может сильно отличаться от видения enterprise-разработчиков.
Netdata
Из заголовка сайта проекта многое сразу понятно: Monitor everything in real time. For free. Про него уже есть статья на Хабре, не вижу смысла описывать детальнее. Очень просто устанавливается. Одна команда «скачать», вторая «запустить» — и графики уже можно смотреть.С помощью Netdata можно отслеживать огромнейшее количество показателей: статистику использования процессора, потребления памяти, операций ввода-вывода и прочего. Netdata разработана для администраторов, DevOps и разработчиков. Так что если сложно — есть раздел с документацией, рекомендую на старте, помогает внести ясность по базовым метрикам и настройке алертов.
Плюсы
- легко устанавливается;
- есть алерты;
- огромное количество метрик;
- «для DevOps».
- масштабирование (на кластер поставить нельзя, только отдельно на каждый сервер);
- нужно следить за логами (сколько их и где они);
- конфигурация через SSH;
- «для DevOps».
«Для DevOps» и в плюсах, и в минусах — зависит от того, кто читает. Я не смог настроить алерты, поэтому использую как дашборд: смотрю средние значения по нагрузке на CPU.
Monitoror
Предыдущий инструмент, Netdata, я нашел случайно по запросу "dashboard". Но это не совсем то, чего я хотел. Я бы хотел красивые плитки с простой и гибкой настройкой. Первое, что лежит на поверхности — Smashing. Но с ним у меня не задалось. Написан на Ruby, и я его даже запустить не смог, не то что настроить. А посмотрев обзоры и готовые доски — еще и не захотел.Как оказалось, я всё время искал то, что сделали разработчики Monitoror. Потрясающе гибкая (во всех смыслах) доска с поддержкой CI/CD провайдеров. Просто взгляните на скриншоты:
Устанавливается легко, через бинарник. Настраивается через JSON файл. Выглядит он примерно так:
{
"version": "2.0",
"columns": 3,
"tiles": [
{
"type": "HTTP-RAW",
"label": "plumber stars",
"params": {
"url": "https://github.com/pashkatrick/Plumber",
"regex": "(\\d+) users starred"
}
},
{
"type": "HTTP-RAW",
"label": "grpc-client",
"params": {
"url": "https://marketplace.visualstudio.com/items?itemName=pashkatrick.grpc-client",
"regex": "(\\d+) installs"
}
},
{
"type": "HTTP-RAW",
"label": "udecoder",
"params": {
"url": "https://marketplace.visualstudio.com/items?itemName=pashkatrick.vscode-udecoder",
"regex": "(\\d+) installs"
}
},
{
"type": "HTTP-RAW",
"label": "vscode-etcd",
"params": {
"url": "https://marketplace.visualstudio.com/items?itemName=pashkatrick.vscode-etcd",
"regex": "(\\d+) installs"
}
}
]
}
Кому интересно подробнее — оставлю ссылку на официальную документацию. От себя скажу лишь, что помимо HTTP-RAW есть HTTP-FORMATTED и HTTP-STATUS. Но это для типа плитки HTTP соответственно. Поддерживаются следующие типы плиток:
Плюсы
- дизайн и удобство;
- простая и понятная настройка.
- чем больше блоков — тем хуже читаемость;
- отсутствие алертов.
Поскольку оповещений нет — пришлось сделать свою парсилку логов. Это простой Python-скрипт, который внутри себя запускает Monitoror в debug-режиме, а после выполнения складывает логи рядом с собой. Соответственно, если ответ не «200 ок» — можно послать уведомление. Сыро, но, если будут звезды, можем докрутить до рабочего состояния.Сам я CI/CD не настраивал, не было необходимости. Жаль, алертов никаких, да и в проекте последняя активность была год назад. Но в целом очень нравится; все, что нужно — есть.
N8N (etc.)
Следующий пункт в обзоре — no-code платформы, где можно «собрать» систему оповещения под свои нужды.Например:
- Integromat,
- Albato (rus),
- N8N (круто),
- Corezoid (дороговато стало),
- IFTTT (интерфейс отличается),
- Zapier,
- Apix-Drive (rus).
Есть хорошая статья с разбором мониторинга базы данных. Но покажу на своём примере:
Пусть каждые 15 сек отправляется запрос на все мои сайты, и если в ответ приходит НЕ «200 ОК», то отправляется уведомление о проблеме. После собираем отчёт по всем сайтам и отправляем его менеджеру на почту и в Notion.
Пара минут на придумывание flow + соединить всё стрелочками + пару часов на все credentials и API-ключи. Получается довольно быстро c полным соответствием поставленным требованиям.
Плюсы
- абсолютная гибкость;
- несложная установка;
- хорошее комьюнити;
- документация/инструкции/туториалы;
- своих денег стоит.
- не нашел.
Крайне рекомендую N8N, к тому же можно добавлять свои/новые сервисы. Мейнтейнеры проекта проверяют пулл-реквест около недели и присылают рекомендации, если потребуются.
Уже не на коленке
На десерт оставил сервисы из категории «всё уже написано за нас». Установка не требуется, только регистрация. Рекомендую посмотреть:На борту: мониторы сайтов, значение uptime'a за настроенные периоды (98% за год), отчёты, страница status page (которую можно показывать всем желающим, хвастаясь стабильностью), а также функция пинга сайтов из разных точек мира и VPN/Proxy запросы. Лично не пробовал, но звучит интересно.
Много функций — конечно, хорошо, но разделение на команды внутри сервиса и инцидент-менеджмент кажутся лишними... Лично мне только уведомления нужны на случай, если что-то сломается. Но тут уже на вкус и цвет.
Плюсы
- SaaS и всё из него вытекающее;
- красиво и удобно;
- алерты, отчеты, интеграции.
- очень платно (начинаются от 30$ в месяц);
- бывает перегружен интерфейс (например, инцидент-менеджмент).
Я пользуюсь Better Uptime: интерфейс приятный и понятный, да ещё и раз в неделю приходит отчет по всем сайтам. Бесплатного тарифа хватает, но буду ещё тестировать уведомления в Slack/Telegram. Также хочу посмотреть на Proxy-пинг, который доступен по умолчанию, — интересно.
Конец
Не люблю стандартные итоги в стиле «выбор сервиса зависит от поставленной задачи», так что скажу так: пробуйте, пользуйтесь, делитесь опытом и находками!Если я не упомянул еще более крутые сервисы — сообщите мне любым способом, например, в комментариях к статье. Я увижу, запущу сервис, оценю и обновлю статью. Благодарю за внимание!
Мониторинг пет-проектов на коленке: Netdata, Monitoror, N8N
Инди-разработчик изучает мониторинг чужого проекта (кадр из «Кремниевой долины») Привет, я Паша из Ozon. В рабочее время занимаюсь тестированием поиска, а по вечерам надеваю маску инди-разработчика. И...
habr.com