Установка и настройка Prometheus

Добро пожаловать в подробное руководство по установке и настройке Prometheus в НАЙС ОС. В этом документе мы рассмотрим процесс установки, настройки и управления Prometheus. Prometheus — это система мониторинга и оповещения с открытым исходным кодом, которая используется для сбора и анализа метрик от различных сервисов и приложений. Понимание его установки и конфигурации является важным навыком для системных администраторов.

Установка Prometheus

Для установки Prometheus в НАЙС ОС используйте пакетный менеджер tdnf. Сначала скачайте и установите последний релиз Prometheus с официального сайта:

wget https://github.com/prometheus/prometheus/releases/download/v2.37.0/prometheus-2.37.0.linux-amd64.tar.gz

Распакуйте скачанный архив:

tar xvfz prometheus-2.37.0.linux-amd64.tar.gz

Переместите бинарные файлы в системные каталоги:

sudo mv prometheus-2.37.0.linux-amd64/prometheus /usr/local/bin/
sudo mv prometheus-2.37.0.linux-amd64/promtool /usr/local/bin/

Переместите файлы конфигурации и другие ресурсы:

sudo mv prometheus-2.37.0.linux-amd64/consoles /etc/prometheus/
sudo mv prometheus-2.37.0.linux-amd64/console_libraries /etc/prometheus/
sudo mv prometheus-2.37.0.linux-amd64/prometheus.yml /etc/prometheus/

Создайте пользователя и группу для Prometheus:

sudo useradd --no-create-home --shell /bin/false prometheus

Создайте необходимые каталоги и установите права:

sudo mkdir /var/lib/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus /etc/prometheus -R

Настройка Prometheus

Основной файл конфигурации Prometheus находится в /etc/prometheus/prometheus.yml. Рассмотрим основные параметры конфигурации.

Пример конфигурационного файла


global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  

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

Настройка systemd для Prometheus

Для управления Prometheus с помощью systemd создайте файл сервиса /etc/systemd/system/prometheus.service со следующим содержимым:


[Unit]
Description=Prometheus
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
  

Перезагрузите systemd для применения изменений:

sudo systemctl daemon-reload

Запустите и включите Prometheus при старте системы:

sudo systemctl start prometheus
sudo systemctl enable prometheus

Проверка состояния Prometheus

Чтобы проверить состояние Prometheus, выполните команду:

sudo systemctl status prometheus

Эта команда выведет информацию о состоянии службы Prometheus, включая её текущее состояние и последние журналы.

Настройка сбора метрик с узлов и сервисов

Для сбора метрик с различных узлов и сервисов добавьте их в файл prometheus.yml в разделе scrape_configs. Например, для сбора метрик с узла с адресом 192.168.1.100:


scrape_configs:
  - job_name: 'node_exporter'
    static_configs:
      - targets: ['192.168.1.100:9100']
  

Перезапустите Prometheus для применения изменений:

sudo systemctl restart prometheus

Установка Node Exporter

Node Exporter — это инструмент для сбора метрик о состоянии системы. Установите Node Exporter на узлах, с которых хотите собирать метрики:

wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz

Распакуйте скачанный архив:

tar xvfz node_exporter-1.3.1.linux-amd64.tar.gz

Переместите бинарный файл в системный каталог:

sudo mv node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin/

Создайте пользователя и группу для Node Exporter:

sudo useradd --no-create-home --shell /bin/false node_exporter

Создайте файл сервиса systemd для Node Exporter /etc/systemd/system/node_exporter.service:


[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target
  

Перезагрузите systemd для применения изменений:

sudo systemctl daemon-reload

Запустите и включите Node Exporter при старте системы:

sudo systemctl start node_exporter
sudo systemctl enable node_exporter

Настройка оповещений в Prometheus

Prometheus поддерживает оповещения через Alertmanager. Рассмотрим процесс настройки оповещений и интеграции с Alertmanager.

Установка Alertmanager

Скачайте и установите Alertmanager:

wget https://github.com/prometheus/alertmanager/releases/download/v0.24.0/alertmanager-0.24.0.linux-amd64.tar.gz

Распакуйте скачанный архив:

tar xvfz alertmanager-0.24.0.linux-amd64.tar.gz

Переместите бинарные файлы в системные каталоги:

sudo mv alertmanager-0.24.0.linux-amd64/alertmanager /usr/local/bin/

Создайте необходимые каталоги и установите права:

sudo mkdir /etc/alertmanager
sudo mkdir /var/lib/alertmanager
sudo chown alertmanager:alertmanager /etc/alertmanager /var/lib/alertmanager -R

Создайте пользователя и группу для Alertmanager:

sudo useradd --no-create-home --shell /bin/false alertmanager

Настройка Alertmanager

Создайте файл конфигурации /etc/alertmanager/alertmanager.yml со следующим содержимым:


global:
  resolve_timeout: 5m

route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 12h
  receiver: 'email-notifications'

receivers:
- name: 'email-notifications'
  email_configs:
  - to: 'your_email@example.com'
    from: 'alertmanager@example.com'
    smarthost: 'smtp.example.com:587'
    auth_username: 'your_email@example.com'
    auth_identity: 'your_email@example.com'
    auth_password: 'your_password'
  

Создайте файл сервиса systemd для Alertmanager /etc/systemd/system/alertmanager.service:


[Unit]
Description=Alertmanager
Wants=network-online.target
After=network-online.target

[Service]
User=alertmanager
Group=alertmanager
Type=simple
ExecStart=/usr/local/bin/alertmanager \
  --config.file=/etc/alertmanager/alertmanager.yml \
  --storage.path=/var/lib/alertmanager

[Install]
WantedBy=multi-user.target
  

Перезагрузите systemd для применения изменений:

sudo systemctl daemon-reload

Запустите и включите Alertmanager при старте системы:

sudo systemctl start alertmanager
sudo systemctl enable alertmanager

Настройка правил оповещения в Prometheus

Добавьте правила оповещения в файл /etc/prometheus/prometheus.yml:


rule_files:
  - "alert.rules"

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - "localhost:9093"
  

Создайте файл /etc/prometheus/alert.rules со следующим содержимым:


groups:
- name: example
  rules:
  - alert: InstanceDown
    expr: up == 0
    for: 1m
    labels:
      severity: 'critical'
    annotations:
      summary: "Instance {{ $labels.instance }} down"
      description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 1 minute."
  

Перезапустите Prometheus для применения изменений:

sudo systemctl restart prometheus

Мониторинг и обслуживание Prometheus

Мониторинг и обслуживание Prometheus являются важными задачами для обеспечения его стабильной работы. Рассмотрим основные методы мониторинга и обслуживания Prometheus.

Проверка состояния метрик

Используйте веб-интерфейс Prometheus для просмотра собранных метрик. Перейдите в браузере по адресу http://your_server_ip:9090 и используйте интерфейс для выполнения запросов и просмотра метрик.

Просмотр логов Prometheus

Логи Prometheus содержат важную информацию о работе сервера и помогают выявлять проблемы. Логи находятся в каталоге /var/log/prometheus. Для просмотра логов используйте команду tail:

sudo tail -f /var/log/prometheus/prometheus.log

Обновление Prometheus

Регулярно обновляйте Prometheus для получения новых функций и исправлений безопасности. Используйте следующий процесс для обновления Prometheus:

  1. Скачайте последнюю версию Prometheus с официального сайта.
  2. Распакуйте архив и замените существующие бинарные файлы новыми версиями.
  3. Перезапустите Prometheus для применения обновлений.

Пример команд:

wget https://github.com/prometheus/prometheus/releases/download/v2.38.0/prometheus-2.38.0.linux-amd64.tar.gz
tar xvfz prometheus-2.38.0.linux-amd64.tar.gz
sudo mv prometheus-2.38.0.linux-amd64/prometheus /usr/local/bin/
sudo mv prometheus-2.38.0.linux-amd64/promtool /usr/local/bin/
sudo systemctl restart prometheus

Настройка Grafana для визуализации метрик

Grafana — это мощный инструмент для визуализации метрик. Рассмотрим процесс установки и настройки Grafana для работы с Prometheus.

Установка Grafana

Для установки Grafana добавьте репозиторий Grafana и установите ключ GPG:

sudo rpm --import https://packages.grafana.com/gpg.key

Добавьте репозиторий Grafana в файл /etc/yum.repos.d/grafana.repo со следующим содержимым:


[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
  

Теперь установите Grafana с помощью следующей команды:

sudo tdnf install -y grafana

Запуск и настройка Grafana

Запустите Grafana с помощью systemd:

sudo systemctl start grafana-server

Для автоматического запуска Grafana при загрузке системы выполните команду:

sudo systemctl enable grafana-server

Настройка источника данных в Grafana

Перейдите в веб-интерфейс Grafana по адресу http://your_server_ip:3000. Войдите в систему с учетными данными по умолчанию (admin/admin).

Перейдите в раздел Configuration > Data Sources и добавьте новый источник данных Prometheus, указав URL http://localhost:9090.

Создание дашбордов в Grafana

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

Заключение

Мы рассмотрели основные аспекты установки, настройки и управления Prometheus в НАЙС ОС. Prometheus предоставляет мощные возможности для мониторинга и оповещения, а понимание его настройки является важным навыком для системных администраторов. Продолжайте изучать и применять эти знания на практике для создания стабильных и эффективных систем мониторинга.