Установка и настройка мониторинга/алертинга Prometheus+Grafana
Материал от G7
В данной статье разберем как установить и настроить связку для мониторинга: Node Exporter - Prometheus - Grafana, загрузим красивый и удобный дашборд и добавим на него все наши сервера
- Введение
- Что такое Prometheus, Grafana
- Что будем делать
- Последовательность действий
- Установка Node Exporter на отслеживаемый сервер
- Установка сервера-обработчика
- Установка и настройка Grafana
- Установка
- Добавление Data Source
- Заполнение нодами
Введение
Что такое Prometheus, Grafana
Grafana и Prometheus представляют собой мощный дуэт для мониторинга и визуализации метрик в реальном времени. Grafana — это ведущий инструмент для создания информативных, интерактивных дашбордов, который позволяет пользователям легко и наглядно отслеживать производительность, логи и тревоги. Prometheus, с другой стороны, является системой мониторинга и алертинга с открытым исходным кодом, предназначенной для сбора метрик в высоко динамичной среде контейнеризации.
Сочетание этих двух инструментов дает IT-специалистам, системным администраторам и разработчикам возможность не только собирать детальные метрики со всех уголков их систем, но и превращать эти данные в понятные и легко интерпретируемые визуализации. Это обеспечивает глубокое понимание производительности приложений и инфраструктуры, что критически важно для быстрого реагирования на проблемы и эффективного планирования ресурсов.
Мы не зарабатываем на Вас. Просто подпишитесь на наш канал ТГ и получайте эксклюзивную информацию о нодах и технологиях web3 и не только, раньше всех! Вокруг Крипты и Youtube👍
Что будем делать
В этой статье мы проведем вас через все этапы: от установки Grafana и Prometheus на вашей системе до импортирования дашборда, который будет отслеживать ключевые метрики вашего сервера.
Последовательность действий
1) Установить на сервер с нодой, программное обеспечение node-exporter. Этот инструмент предназначен для сбора и передачи информации о работе аппаратных ресурсов.
2) Арендовать минимальный сервер (1 CPU, 1 RAM, 10 GB), который будет выполнять функции обработчика узлов. На этом сервере следует установить Prometheus для сбора данных от node-exporter, а также Grafana для их наглядного отображения.(так же можно подселить эту связку к Uptime Kuma, порты у них не конфликтуют)
Установка 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 нашего сервера, на который мы только что поставили экспортер
И увидим все метрики, которые экспортируются
Установка сервера-обработчика
Нам необходимо арендовать сервер, на который будут отсылаться все наши метрики, этот же сервер будет их обрабатывать и показывать нам красивую картинку дашборда
Заходим на наш второй сервер(нода-обработчик)
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
Открываем конфиг нашего Prometheus для настройки
nano $HOME/prometheus/prometheus.yml
В место красной стрелки вписываем ip на который мы устанавливали node_exporter
Для сохранения и выхода из nano(редактора текста) последовательно нажимаем(проверьте что стоит eng раскладка)
Далее выдаем права на исполнение нашего файла
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.
Здесь мы видим сервер на котором стоит обработчик(localhost) и сервер на который мы ставили экспортер
Установка и настройка Grafana
Установка
Теперь на этот же сервер с Prometheus мы устанавливаем 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 сервера, на который мы установили prometheus и grafana.
Далее задаем свой пароль и попадаем в дашборд
Добавление Data Source
Нажимаем на кнопку Data Sources
В графе URL вводим http://<IP_ADDRESS>:9090 , где <IP_ADDRESS> - ip сервера на котором стоит прометеус и графана. После чего нажимаем Save & test
Далее переходим в импорт дашбордов
Переходим на гитхаб и качаем файл с дашбордом
Нажимаем кнопку импорт и попадем в наш дашборд
После того как мы убедились что все работает, нам необходимо заполнить дашборд нашими нодами
Заполнение нодами
Устанавливаем на все сервера, которые хотим отслеживать node_exporter, командой из первого раздела.
После того как установили все node_exporter переходим на сервер с prometheus+grafana
На сервере с прометеусом и графаной переходим в конфиг прометеуса
nano $HOME/prometheus/prometheus.yml
И переделываем его под множество нод. Строго соблюдаем пробелы
Нас интересует только раздел static_configs.
targets - это сервер на которую мы устанавливали ноду-экспортёр и откуда желаем собирать метрики.
label - название этого сервера для отображения в графане.
targets: [<IP>:9100] - меняем только IP.
label: "<label>" - меняем на своё название сервера.
scrape_configs: - job_name: "node_exporter" static_configs: - targets: [<IP-1>:9100] labels: label: "<label_1>" - targets: [<IP-2>:9100] labels: label: "<label_2>" - targets: [<IP-3>:9100] labels: label: "<label_3>" И так до бесконечности
Далее для сохранения нажимаем последовательно
После того как прописали все наши ноды сохраняем и перезапускаем
sudo systemctl daemon-reload && \sudo systemctl enable grafana-server && \sudo systemctl restart grafana-server && \sudo systemctl restart prometheusd
Получаем красивый и аккуратный дашборд с всеми нашими серверами
Если вы удалили или переименовали сервер, то у вас он может не удалиться или задублироваться, делать ничего не надо, через время само все исчезнет
Спасибо за прочтение! Пожалуйста, поделитесь своим отзывом в комментариях и подпишитесь на меня в социальных сетях, если вам понравилась статья. Я также создал сообщество Telegram, где мы можем собираться и обсуждать интересные темы, связанные с криптовалютой. Вы можете присоединиться к нам и принять участие в обсуждении → Telegram: Contact @razgules