Как это сделано у нас: мониторинг


Когда нужно следить за работой одного сервера, можно обойтись подключением по ssh и запущенным htop / atop / top или другим инструментом для проверки состояния работы сервера. Когда серверов становится больше, возникает проблема: нужно следить за основными параметрами всех серверов, а в идеале — получать уведомления в случае аномального изменения параметров того или иного сервера.

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

* * *

Для мониторинга состояния работы серверов мы используем связку инструментов Netdata + Grafana, как хранилище данных — Prometheus. 

Netdata — служба, запускаемая на серверах. Ежесекундно она собирает и сохраняет информацию о текущем состоянии сервера. Количество параметров в некоторых случаях поражает своим количеством. 

netdata on vh-02.airy.host, collects every second 7 664 metrics, presented as 2 344 charts and monitored by 145 alarms, using 251 MB of memory for 2 hours, 14 mins and 52 secs of real-time history.

Prometheus выступает хранилищем данных. Каждые 10 секунд происходит обращение к серверам с Netdata, сбор информации и сохранение на сервер. 

И, наконец, Grafana — графическая оболочка, которая обрабатывает данные, хранимые в Prometheus. Grafana предоставляет возможность посмотреть данные в формате графиков, а также осуществляет отправку уведомлений, если что-то работает не так, как должно работать. 

Таким образом, мы получаем всю информацию с минимальной задержкой в 10-15 секунд, что позволяет следить за работой серверов практически в реальном времени. 

Grafana и Prometheus работают на отдельном физическом сервере, по этому работа мониторинга не зависит от работы других наших серверов. К сожалению, вариант поломки мониторинга возможен — это нельзя отрицать. По этому, мы используем также сторонний сервис мониторинга нашего сервера мониторинга, что позволяет узнать о любых проблемах и оперативно среагировать для их решения. 

Использование мониторинга позволяет нам реагировать на проблемы столь быстро, что, когда нам пишет клиент о проблеме (иногда это происходит через минуты после возникновения проблемы), мы уже занимаемся решением проблемы.

Опубликовано 19.05.2018