Мониторинг 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 будут развернуты на отдельных ВМ.
-
Создайте виртуальную сеть, например,
monitoring-net
. -
Создайте ВМ для сервера Prometheus:
- имя:
Centos_8_5_Prometheus
; - операционная система: CentOS 8.4;
- сеть:
monitoring-net
; - публичный IP-адрес: назначьте его, в качестве примера приведен
87.239.239.239
; - группы безопасности:
default
,all
.
Внутренний IP-адрес созданного инстанса:
10.0.3.7
. - имя:
-
- имя:
Redis-5
; - СУБД: Redis 5;
- тип конфигурации: Single;
- сеть:
monitoring-net
;
Внутренний IP-адрес созданного инстанса:
10.0.3.13
. - имя:
-
Разверните Grafana 10 в сети
monitoring-net
.
-
Установите расширение Node exporter для инстанса БД
Redis-5
. При установке укажите параметрlisten_port
=9100
. -
Подключитесь к ВМ
Centos_8_5_Prometheus
. -
Скачайте 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
-
Скопируйте содержимое репозитория
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/
-
(Опционально) Удалите файлы из временной папки:
rm -rf /tmp/prometheus-$VERSION.linux-amd64
-
Создайте группу и пользователя
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
-
В файле
/etc/prometheus/prometheus.yml
добавьте содержимое в блокscrape_configs
:1- job_name: "node" 2 scrape_interval: 10s 3 static_configs: 4 - targets: ["10.0.3.13:9100"]
-
Создайте сценарий запуска 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
-
Запустите Prometheus:
1systemctl daemon-reload 2systemctl start prometheus.service 3systemctl enable prometheus.service
-
Убедитесь, что Prometheus работает корректно:
systemctl status prometheus.service
Вывод команды должен содержать статус
active
. -
Подождите несколько минут, чтобы накопились данные.
-
Перейдите по адресу
http://87.239.239.239:9090
.Откроется веб-интерфейс сервера Prometheus.
-
(Опционально) Ознакомьтесь с доступными данными:
- Сформируйте поисковый запрос, чтобы просмотреть данные в табличном виде.
- Откройте шаблонные наборы графиков по адресу
http://87.239.239.239:9090/consoles/index.html.example
.
-
(Опционально) Отвяжите плавающий адрес от ВМ
Centos_8_5_Prometheus
.
- Перейдите в веб-интерфейс Grafana.
- Добавьте новый источник данных (data source): в Prometheus server URL укажите
http://10.0.3.7:9090
. - Установите наборы графиков для визуализации получаемых данных, например, импортировав готовый вариант — Node Exporter Full.
-
Создайте тестовую нагрузку на ВМ
Redis-5
удобным для вас способом. -
Убедитесь в изменении показателей графиков Grafana.
Созданные ресурсы тарифицируются и расходуют квоты. Если они вам больше не нужны: