VK Cloud logo
Обновлена18 декабря 2023 г. в 15:36

Мониторинг Redis с помощью Prometheus, Node exporter и Grafana

Prometheus — сервер, предназначенный для сбора и хранения метрик, получаемых от процессов (exporters). Накопленные данные можно смотреть как через веб-интерфейс Prometheus, так и через отдельные средства визуализации, например, Grafana.

Данная инструкция поможет:

  • развернуть сервер Prometheus 2.45.1 в операционной системе CentOS 8.4 в VK Cloud;
  • установить расширение Node exporter в СУБД Redis 5 конфигурации Single;
  • настроить визуализацию данных из Redis в Prometheus и Grafana 10.

Сервер Prometheus, СУБД и Grafana будут развернуты на отдельных ВМ.

Подготовительные шаги

  1. Создайте виртуальную сеть, например, monitoring-net.

  2. Создайте ВМ для сервера Prometheus:

    • имя: Centos_8_5_Prometheus;
    • операционная система: CentOS 8.4;
    • сеть: monitoring-net;
    • публичный IP-адрес: назначьте его, в качестве примера приведен 87.239.239.239;
    • группы безопасности: default, all.

    Внутренний IP-адрес созданного инстанса: 10.0.3.7.

  3. Создайте инстанс БД:

    • имя: Redis-5;
    • СУБД: Redis 5;
    • тип конфигурации: Single;
    • сеть: monitoring-net;

    Внутренний IP-адрес созданного инстанса: 10.0.3.13.

  4. Разверните Grafana 10 в сети monitoring-net.

2. Установите и настройте Prometheus

  1. Установите расширение Node exporter для инстанса БД Redis-5. При установке укажите параметр listen_port = 9100.

  2. Подключитесь к ВМ Centos_8_5_Prometheus.

  3. Скачайте Prometheus и распакуйте скачанный архив:

    1sudo su
    2export VERSION="2.45.1"
    3wget https://github.com/prometheus/prometheus/releases/download/v$VERSION/prometheus-$VERSION.linux-amd64.tar.gz -O - | tar -xzv -C /tmp
  4. Скопируйте содержимое репозитория prometheus-2.45.1.linux-amd64:

    1mkdir /etc/prometheus
    2mkdir /var/lib/prometheus
    3cp /tmp/prometheus-$VERSION.linux-amd64/prometheus /usr/local/bin
    4cp /tmp/prometheus-$VERSION.linux-amd64/promtool /usr/local/bin
    5cp -r /tmp/prometheus-$VERSION.linux-amd64/consoles /etc/prometheus
    6cp -r /tmp/prometheus-$VERSION.linux-amd64/console_libraries /etc/prometheus
    7cp /tmp/prometheus-$VERSION.linux-amd64/prometheus.yml /etc/prometheus/
  5. (Опционально) Удалите файлы из временной папки:

    rm -rf /tmp/prometheus-$VERSION.linux-amd64
  6. Создайте группу и пользователя prometheus, назначьте ему права на связанные репозитории:

    1groupadd --system prometheus
    2useradd --system -g prometheus -s /bin/false prometheus
    3chown -R prometheus:prometheus /var/lib/prometheus /etc/prometheus
    4chown prometheus:prometheus /usr/local/bin/prometheus /usr/local/bin/promtool
  7. В файле /etc/prometheus/prometheus.yml добавьте содержимое в блок scrape_configs:

    1- job_name: "node"
    2  scrape_interval: 10s
    3  static_configs:
    4    - targets: ["10.0.3.13:9100"]
  8. Создайте сценарий запуска Prometheus /etc/systemd/system/prometheus.service с содержимым:

    1[Unit]
    2Description=Prometheus
    3Wants=network-online.target
    4After=network-online.target
    5
    6[Service]
    7User=prometheus
    8Group=prometheus
    9ExecStart=/usr/local/bin/prometheus \
    10    --config.file /etc/prometheus/prometheus.yml \
    11    --storage.tsdb.path /var/lib/prometheus \
    12    --web.console.templates=/etc/prometheus/consoles \
    13    --web.console.libraries=/etc/prometheus/console_libraries
    14ExecReload=/bin/kill -HUP $MAINPID
    15[Install]
    16WantedBy=default.target
  9. Запустите Prometheus:

    1systemctl daemon-reload
    2systemctl start prometheus.service
    3systemctl enable prometheus.service
  10. Убедитесь, что Prometheus работает корректно:

    systemctl status prometheus.service

    Вывод команды должен содержать статус active.

  11. Подождите несколько минут, чтобы накопились данные.

  12. Перейдите по адресу http://87.239.239.239:9090.

    Откроется веб-интерфейс сервера Prometheus.

  13. (Опционально) Ознакомьтесь с доступными данными:

  14. (Опционально) Отвяжите плавающий адрес от ВМ Centos_8_5_Prometheus.

3. Настройте визуализацию данных в Grafana

  1. Перейдите в веб-интерфейс Grafana.
  2. Добавьте новый источник данных (data source): в Prometheus server URL укажите http://10.0.3.7:9090.
  3. Установите наборы графиков для визуализации получаемых данных, например, импортировав готовый вариант — Node Exporter Full.

4. (Опционально) Проверьте данные мониторинга после тестовой нагрузки

  1. Создайте тестовую нагрузку на ВМ Redis-5 удобным для вас способом.

  2. Убедитесь в изменении показателей графиков Grafana.

Удалите неиспользуемые ресурсы

Созданные ресурсы тарифицируются и расходуют квоты. Если они вам больше не нужны:

  1. Удалите развернутые виртуальные машины.
  2. Удалите виртуальную машину с Grafana.
  3. Удалите плавающий IP-адрес, назначенный виртуальной машине Centos_8_5_Prometheus.
  4. Удалите порт, которому назначен виртуальный IP-адрес.
  5. Удалите сеть monitoring-net.