Система мониторинга - набор инструментов, позволяющих снимать метрики с узлов инфраструктуры и сохранять их в бд для дальнейшего анализа Метрики - значения, которые может передавать система (загрузку CPU, памяти или сети например) Узлы инфраструктуры - серверы, виртуальные машины, сетевое оборудование и т.д.
Prometheus - сервер, который периодически подключается к агентам, собирает с них метрики и далее записывает их в бд
Часто интегрируется с Grafana, позволяя настраивать alerts и анализировать данные с помощью встроенного языка PromQL
Сбор метрик осуществляется pull моделью (опрос агентов сервером по HTTP протоколу)
Prometheus сервер - бинарный файл, содержащий внутри себя:
базу данных TSDB (Time Series Database) для хранения метрик
http сервер для работы веб-интерфейса
модуль retrieval, опрашивающий агентов и получающий от них метрики
модуль service discovery, определяющий цели мониторинга
модуль alerting, отправля.obq сообщения о проблемах в Alertmanager
На хостах устанавливаются агенты - экспортеры, которые отдают Prometheus необходимые метрики
Alertmanager - отдельный сервис:
принимает оповещения о проблемах от Prometheus
фильтрует оповещения
отправляет оповещения в необходимые каналы оповещений
Возможно подключать к Prometheus дополнительные сервисы типа Grafana, чтоб забирать из него данные для последующей обработки
Установка Prometheus
Самый простой и надежный способ - запуск через Docker:
docker run -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
В примере выше подключен имеющийся заранее в ОС конфигурационный файл prometheus.yml
Скачать и установить в виде бинарника как сервис в ОС по старинке можно так:
root@serv:~# cd /opt/
root@serv:/opt# wget https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-amd64.tar.gz
root@serv:/opt# tar zxf prometheus-2.26.0.linux-amd64.tar.gz
root@serv:/opt# mv prometheus-2.26.0.linux-amd64 prometheus
основные файлы root@serv:/opt/prometheus# ls -l:
console_libraries - директория, содержащая библиотеки для html шаблонов
consoles - директория, содержащая шаблоны html страниц для веб-интерфейса
prometheus - исполняемый файл Prometheus сервера
prometheus.yml - конфигурационный файл Prometheus
promtool - утилита проверки конфигурации, работы с TSDB и получения метрик
Создадим директорию для хранения данных:
root@serv:/opt/prometheus# mkdir data
Вариант запуска "в ручную":
root@serv:/opt/prometheus# ./prometheus --storage.tsdb.path="/opt/prometheus/data/"
Вариант запуска через сервис systemd:
root@serv:/opt/prometheus# useradd -s /sbin/nologin -d /opt/prometheus prometheus
root@serv:/opt/prometheus# chown -R prometheus:prometheus /opt/prometheus
root@serv:/opt/prometheus# cat /etc/systemd/system/prometheus.service