Prometheus - это бесплатное программное приложение, используемое для мониторинга событий и оповещения. Он записывает метрики в реальном времени в базу данных временных рядов, построенную с использованием модели HTTP-запроса, с гибкими запросами и оповещениями в режиме реального времени.
Про подключение экспортеров и Grafana будет рассказано в отдельных статьях.
Создаем пользователя для записка Prometheus
1 | adduser --no-create-home --disabled-login --shell /bin/false --gecos "Prometheus Monitoring User" prometheus |
Создаем директории для хранения данных и конфигурации
1 2 | mkdir -p /opt/data/prometheus mkdir -p /opt/configs/ |
Добавляем права на директорию где будут хранится данные
1 | chown -R prometheus:prometheus /opt/data/prometheus |
Скачиваем последнюю версию Prometheus, на данный момент Prometheus 2.33.4
1 | wget https://github.com/prometheus/prometheus/releases/download/v2.33.4/prometheus-2.33.4.linux-amd64.tar.gz |
распаковываем скачанный архив в opt
1 | tar xzf prometheus-2.33.4.linux-amd64.tar.gz -C /opt/ |
За счет использования при запуске указания конкретной версии, можно обеспечить обновление до новой версии путем изменения одного файла и перезапуска сервиса. Так же при необходимости можно будет вернутся на предыдущую версию.
необходимо создать файл сервиса /etc/systemd/system/prometheus.service со следующем текстом
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | [Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/opt/prometheus-2.33.4.linux-amd64/prometheus \ --config.file /opt/configs/prometheus.yml \ --storage.tsdb.path /opt/data/prometheus/ \ --web.enable-admin-api --web.enable-lifecycle \ --web.console.templates=/opt/prometheus/consoles \ --web.console.libraries=/opt/prometheus/console_libraries \ --storage.tsdb.retention.time=180d [Install] WantedBy=multi-user.target |
создаем пустой файл конфигурации
1 | > /opt/configs/prometheus.yml |
устанавливаем и запускаем сервис
1 2 3 | systemctl daemon-reload systemctl enable prometheus systemctl restart prometheus |
открываем порт 9090
1 | ufw allow 9090/tcp |
Теперь мы можем зайти в браузере в веб консоль и начать использовать Prometheus
Базовый конфиг /opt/configs/prometheus.yml (без экспортеров)
1 2 3 4 5 6 7 8 9 10 | global: scrape_interval: 30s scrape_timeout: 10s evaluation_interval: 20s scrape_configs: - job_name: pushgateway honor_labels: true static_configs: - targets: - '<ip>:9091' |
<ip> - IP адрес сетевого интерфейса.
для применения настроек необходимо перезапустить сервис
1 | systemctl restart prometheus |