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 и распакуйте скачанный архив:

    sudo suexport VERSION="2.45.1"wget 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:

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

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

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

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

    [Unit]Description=PrometheusWants=network-online.targetAfter=network-online.target[Service]User=prometheusGroup=prometheusExecStart=/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_librariesExecReload=/bin/kill -HUP $MAINPID[Install]WantedBy=default.target
  9. Запустите Prometheus:

    systemctl daemon-reloadsystemctl start prometheus.servicesystemctl 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.