Содержание

Prometheus: установка и настройка

Prometheus используемое для мониторинга событий и оповещения. Он записывает метрики в реальном времени в базу данных временных рядов (time series), построенную с использованием модели HTTP-запроса, с гибкими запросами и оповещениями в режиме реального времени. Интересной особенностью Prometheus является то, что он сам тянет метрики с заданного множества сервисов (делает pull).

В репозиториях Ubuntu как правило неактуальная версия Prometheus, поэтому устанавливаем руками.

Создаем пользователя и папки

useradd -M -r -s /bin/false prometheus
mkdir /etc/prometheus /var/lib/prometheus
chown prometheus:prometheus /var/lib/prometheus

Загрузка и распаковка

Официальный сайт: https://prometheus.io/download/

На момент написания заметки последняя версия prometheus-2.20.0.linux-amd64.tar.gz

wget https://github.com/prometheus/prometheus/releases/download/v2.20.0/prometheus-2.20.0.linux-amd64.tar.gz
tar xzf prometheus-2.20.0.linux-amd64.tar.gz

Копирование файлов

cp prometheus-2.20.0.linux-amd64/{prometheus,promtool} /usr/local/bin/
chown prometheus:prometheus /usr/local/bin/{prometheus,promtool}
cp -r prometheus-2.20.0.linux-amd64/{consoles,console_libraries} /etc/prometheus/
cp prometheus-2.20.0.linux-amd64/prometheus.yml /etc/prometheus/prometheus.yml
chown -R prometheus:prometheus /etc/prometheus

Настройка и запуск службы

Создаем файл /etc/systemd/system/prometheus.service с содержимым:

[Unit]
Description=Prometheus Time Series Collection and Processing Server
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
    --config.file /etc/prometheus/prometheus.yml \
    --storage.tsdb.path /var/lib/prometheus/ \
    --web.console.templates=/etc/prometheus/consoles \
    --web.console.libraries=/etc/prometheus/console_libraries

[Install]
WantedBy=multi-user.target

Настраиваем запуск службы:

systemctl daemon-reload
systemctl enable prometheus
systemctl start prometheus

Проверяем:

systemctl status prometheus

Разрешаем порт 9090 в фаеволе:

ufw allow 9090

Но лучше только из внутренней сети:

ufw allow from 192.168.100.0/24 to any port 9090

И заходим на веб-интерфейс: http:<server_IP>:9090