Мониторинг серверов. Часть 1
Связка Prometheus+ Nodeexporter + Grafana позволит нам облегчить мониторинг состояния серверов. Это первая часть гайда, где мы научимся мониторить состояние всей нашей грибницы серверов.
Содержание
Введение
Для примера у меня будет ведущий сервер под названием Black, а метрики мы будем собирать с самого Black и с Pink, Red и Green.
Блок-схема сбора и передачи данных выглядит следующим образом:
Первая Prometheus Server - это основная система сбора и хранения метрик на ведущем сервере. Она периодически опрашивает источники данных (такие как Node Exporter) и сохраняет метрики для последующего анализа.
Вторая Nodeexporter - это агент, который запускается на сервере и собирает системные метрики, такие как использование процессора, памяти, дискового пространства и т.д.
Prometheus Server опрашивает Node Exporter для получения этих метрик.
Третья Grafana - это инструмент для визуализации метрик. Он подключается к Prometheus (и другим источникам данных), чтобы отображать метрики в виде графиков и панелей, предоставляя удобный интерфейс для анализа данных.
На ведомых серверах устанавливается только одна программа - Nodeexporter.
Таким нехитрым образом мы за три скрипта запустим визуализацию параметров системы всех серверов. Будет выглядить так:
Быстрая установка:
[ -f "servers_monitoring.sh" ] && rm servers_monitoring.sh; wget -q https://raw.githubusercontent.com/Nodateka/Grafana/refs/heads/main/servers_monitoring.sh && chmod +x servers_monitoring.sh && [ -f "servers_monitoring.sh" ] && ./servers_monitoring.sh
[ -f "nodeexporter.sh" ] && rm servers_monitoring.sh; wget -q https://raw.githubusercontent.com/Nodateka/Grafana/refs/heads/main/nodeexporter.sh && chmod +x nodeexporter.sh && [ -f "nodeexporter.sh" ] && ./nodeexporter.sh
Скрипт удаления сервисов мониторинга:
[ -f "delete_monitoring.sh" ] && rm delete_monitoring.sh; wget -q https://raw.githubusercontent.com/Nodateka/Grafana/refs/heads/main/delete_monitoring.sh && chmod +x delete_monitoring.sh && [ -f "delete_monitoring.sh" ] && ./delete_monitoring.sh
Добавление серверов в Prometheus:
Открываем файл конфигурации prometheus.yml и прописываем параметры подключения для новых серверов:
nano /etc/prometheus/prometheus.yml
Добавляем все наши ведомые сервера:
Важно сохранять табуляцию и все пробелы.
- job_name : "название сервера"
static_configs:
- targets:
- ip cервера:9100
Для сохранения нажимаем ctrl+S, затем для выхода ctrl+X.
Выполняем перезагрузку сервиса prometheus:
sudo systemctl restart prometheus
Проверяем дашборду прометеус по адресу <ip>:9090 во вкладке targets. Сервера были добавлены.
Настройка Grafana
При первом входе логин/пароль admin/admin
Логинимся и устанавливаем свой пароль. Сохраняем его.
Итак мы попали на домашнюю страницу нашей Графаны. Приходим в вкладку connections.
Во вкладке Data sources видим, что Prometheus уже поключен. Осталось сформировать новую дашборду на основании данных из Prometheus.
Переходим во вкладку Dashboards (1) - New dashbord (2)
Далее переходим по ссылке и выбираем дашборду, которая нам подойдет и вводим ее id в графу 2 и нажимаем load.
При переходе по ссылке я выбрал дашборду с id 1860. Установим ее
Загружаем дашборду по id, прописываем ей назваие и источник информации наш Prometheus и нажимаем import.
Дашборда готова! Теперь можно сохранить ее в закладки.
Она появилась в разделе дашборды:
Всё! Базовая настройка мониторинга завершена. Присоединяйся к Нодатеке, устанавливай ноды вместе с нашей командой!