January 28

Установка и настройка мониторинга 

На примере Prometheus+Grafana+Node_exporter+autonomys_exporter

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

Что мы будем делать

В этой статье мы шаг за шагом разберем, как установить Grafana и Prometheus на вашу систему, а также импортировать дашборд для отслеживания ключевых метрик вашего сервера.

1) Node-exporter

Устанавливаем на сервер, который хотим видеть на графике node-exporter

. <(wget -qO- https://raw.githubusercontent.com/g7AzaZLO/NodeExporter-autoinstaller/main/NodeExporter-auto-install.sh)

Можно проверить, что все хорошо установилось
sudo journalctl -u exporterd -f

**Также можно посмотреть список метрик, которые отдает сервер

Зайти по адресу http://<IP_ADDRESS>:9100/metrics , где <IP_ADDRESS> - ip нашего сервера

2) Prometheus

Устанавливаем на этот же или любой другой сервер Prometheus, он служит как агрегатор метрик и понадобится нам в единичном количестве

Скачиваем и устанавливаем

wget https://github.com/prometheus/prometheus/releases/download/v2.28.1/prometheus-2.28.1.linux-amd64.tar.gz && \tar xvf prometheus-2.28.1.linux-amd64.tar.gz && \rm prometheus-2.28.1.linux-amd64.tar.gz && \mv prometheus-2.28.1.linux-amd64 prometheus

Добавляем в список целей наш сервер (на котором установлен node-exporter)
Открываем конфиг нашего Prometheus для настройки

nano $HOME/prometheus/prometheus.yml

Добавляем в таргеты наш node-exporter (ip-server + port)

Пример:

Выдаем права на исполнение нашего файла

chmod +x $HOME/prometheus/prometheus

Создаем сервисный файл для запуска при старте

sudo tee /etc/systemd/system/prometheusd.service > /dev/null <<EOF
[Unit]
Description=node_exporter
After=network-online.target
[Service]
User=$USER
ExecStart=$HOME/prometheus/prometheus --config.file="$HOME/prometheus/prometheus.yml" 
Restart=always 
RestartSec=3 
LimitNOFILE=65535 
[Install] 
WantedBy=multi-user.target 
EOF

После чего запускаем сервис

sudo systemctl daemon-reload && \sudo systemctl enable prometheusd && \sudo systemctl restart prometheusd

Проверять логи можно так
sudo journalctl -u prometheusd -f

Также можно проверить, видна ли цель для мониторинга(наш сервер с экспортером(ми))

Переходим в браузере по адресу:

http://<IP_ADDRESS>:9090/targets

где <IP_ADDRESS> - IP сервера, на который мы только что установили prometheus.

3) Grafana

Графана нам служит для красивого отображения метрик и создания простейших алертов в мессенджеры или на почту

Устанавливаем на любом сервере, в моем случае сервер тот же, где расположен прометеус:

sudo apt-get install -y adduser libfontconfig1 && \wget https://dl.grafana.com/oss/release/grafana_8.0.6_amd64.deb && \sudo dpkg -i grafana_8.0.6_amd64.deb

*можно установить версию свежее

Запускаем и активируем сервис графаной

sudo systemctl daemon-reload && \sudo systemctl enable grafana-server && \sudo systemctl restart grafana-server

Проверить логи можно так:

sudo journalctl -u grafana-server -f

Наконец, заходим в графану, по-умолчанию путь следующий:


http://<IP_ADDRESS>:3000, где <IP_ADDRESS> - IP сервера, на который мы установили grafana.

логин : admin

пароль: admin

*Обязательно смените пароль

4) Добавляем Data Source

Необходимо показать графане, откуда брать данные для построения графиков.

В нашем случае это прометеус

5) Импортируем и редактируем графики

У графаны есть своя галерея дашбордов, в нашем случае подойдет этот:

https://grafana.com/grafana/dashboards/1860-node-exporter-full/

Его можно импортиртировать по ID или целиком

По итогу получаем нечто похожее

Это только базовый дашборд для отслеживания основных метрик сервера, их существует великое множество и легко можно кастомизировать.

В следующей части мы поговорим об алертах и экспортере метрик для Autonomys (Subspace)