Встроенные компоненты мониторинга

Тип статьиЗнания
КомпетенцииАдминистратор
Необходимые праваАдмин в платформе
Версия платформы2.19.1/2.20
Статус
БЕТА
Сложность легко
Полезные ссылкиhttps://grafana.com/ 
https://grafana.com/docs/loki/latest/
https://grafana.com/docs/loki/latest/clients/promtail/
https://prometheus.io/docs/introduction/overview/
https://prometheus.io/docs/guides/node-exporter/
https://prometheus.io/docs/guides/cadvisor/
Логирование и мониторинг системы
Дополнительные сведенияUbuntu 18.04/20.04

Введение


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

Компоненты мониторинга – это по сути отдельные Docker сервисы, которые описаны в файле grafana.yml из дистрибутива платформы.


1. Определение компонентов.


Loki – система для агрегации и хранения логов. Простыми словами: база данных всех логов платформы со всех ее компонентов.

Promtail – сервис для сбора логов и передачи их на хранение в Loki. Данный компонент гораздо более универсален и работает не только с Loki, но в нашем случае его можно назвать агентом для сбора логов компонента Loki. Принцип такой же, как и у Zabbix агента, например.

Prometheus – система мониторинга и оповещений. В нашем случае агрегирует и хранит метрики использования ресурсов сервера.

Node-exporter – собирает метрики использования ресурсов хоста (сервера с платформой) и передает их на хранение в Prometheus. Например, загрузка CPU, использование RAM, нагрузка на сеть.

Cadvisor – собирает метрики использования ресурсов сервера Docker контейнерами и аналогично Node-exporter передает их в Prometheus.

Grafana – компонент для визуализации данных на дэшборах. По сути мы видим в виде графиков информацию из Prometheus и Loki.


2. Описание работы.


Prometheus постоянно опрашивает Node-exporter и Cadvisor и получает актуальные данные в стандартизированном, понятном ему формате. В Prometheus также прописаны внутрисетевые пути до Node-exporter и Cadvisor. По умолчанию метрики хранятся 7 дней.

Promtail парсит JSON файлики логов Docker по настроенным правилам. Он регулярно с заданной периодичностью проходится по всем логам, берет оттуда информацию и передает на хранение в Loki.

Grafana является конечной точкой визуализации всех логов и метрик, где на основе запросов на языке PromQL строятся дэшборды. На данный момент (02.2021 версия платформы 2.20) редактирование дэшбордов в Grafana отключено на уровне Docker образа. То есть пользоваться можно только тем что есть и уже настроено в разделе мониторинга в веб администрировании платформы.