September 19, 2024

Мониторинг серверов. Часть 1

Дата обновления 23/09/2024

Связка Prometheus+ Nodeexporter + Grafana позволит нам облегчить мониторинг состояния серверов. Это первая часть гайда, где мы научимся мониторить состояние всей нашей грибницы серверов.

Содержание

Оригинал

Введение

Для примера у меня будет ведущий сервер под названием Black, а метрики мы будем собирать с самого Black и с Pink, Red и Green.

Блок-схема сбора и передачи данных выглядит следующим образом:

На ведущий сервер (Black) устанавливается 3 программы:

Первая 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)

Нажимаем Import a dashboard

Далее переходим по ссылке и выбираем дашборду, которая нам подойдет и вводим ее id в графу 2 и нажимаем load.

При переходе по ссылке я выбрал дашборду с id 1860. Установим ее

Загружаем дашборду по id, прописываем ей назваие и источник информации наш Prometheus и нажимаем import.

Дашборда готова! Теперь можно сохранить ее в закладки.

Она появилась в разделе дашборды:

Всё! Базовая настройка мониторинга завершена. Присоединяйся к Нодатеке, устанавливай ноды вместе с нашей командой!