2.9.26.2 Настройка Prometheus с применением системы визуализации данных Grafana
Скачать документ Установка и настройка Prometheus на сервере
Установка экспортера на целевом (клиентском) сервере
Установка и настройка Grafana
Завершение установки
Окружение
- Версия РЕД ОС: 7.3
- Конфигурация: Сервер графический
- Версия ПО: grafana 7.5.11-1, golang-github-prometheus 2.30.0-2
Prometheus — программное обеспечение с открытым исходным кодом, используемое для мониторинга различных систем (например, нагрузки на сервер). В prometheus происходит запись метрик в реальном времени в базу данных временных рядов.
Установка и настройка Prometheus на сервере
На время установки и настройки необходимо отключить SELinux (потребуются права суперпользователя или администратора системы):
setenforce 0 && sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config
Дальнейшие действия также выполняются с правами пользователя root или администратора системы, если не указано иное.
Параметр SELINUXTYPE=targeted
изменять не нужно.
Для установки prometheus выполните команду:
dnf install golang-github-prometheus
Запустите prometheus и добавьте его в автозагрузку:
systemctl enable prometheus --now
Проверьте статус службы:
systemctl status prometheus
В статусе должно отображаться active(running).
Мониторинг можно производить через веб-интерфейс, введя в адресную строку браузера http://<IP-адрес_сервера>:9090/graph
.
Установка экспортера на целевом (клиентском) сервере
Экспортер — программное обеспечение (клиентская часть), задача которого заключается в экспорте информации о машине в формате, понятном Prometheus. Устанавливается и настраивается непосредственно на клиентском сервере. Существует множество экспортеров для разных систем и сервисов. Большое количество экспортеров доступно на официальном сайте.
В качестве примера будет рассмотрена настройка одного из самых популярных экспортеров - Node Exporter, который собирает множество системных метрик (процессор, память и т.д.) для оценки состояния сервера и его нагрузки.
Для установки экспортера скачайте последнюю версию программы на официальном сайте либо используйте команду:
wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz
Перейдите в каталог со скачанным архивом (в примере /home/user/Загрузки) и распакуйте его:
cd /home/user/Загрузки tar -xvzf node_exporter-1.5.0.linux-amd64.tar.gz
Затем создайте пользователя nodeusr:
useradd -rs /bin/false nodeusr
Установите экспортер путем копирования:
mv node_exporter-1.5.0.linux-amd64/node_exporter /usr/local/bin/
Создайте службу для запуска:
nano /etc/systemd/system/node_exporter.service
со следующим содержимым:
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=nodeusr
Group=nodeusr
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
Запустите node_exporter и добавьте его в автозагрузку:
systemctl enable node_exporter --now
Проверьте статус службы:
systemctl status node_exporter
В статусе должно отображаться active(running).
Для отображения метрик введите в адресную строку браузера http://<IP-адрес_сервера>:9100/metrics
.
На сервере откройте конфигурационный файл (необходимы права суперпользователя):
nano /etc/prometheus/prometheus.yml
и дополните секцию scrape_configs
следующими строками:
- job_name: 'node_1'
static_configs:
- targets: ['<IP-адрес_клиентского_сервера>:9100']
Для применения изменений перезапустите prometheus:
systemctl restart prometheus
Если после перезапуска prometheus в статусе отображается failed, необходимо проверить корректность заполнения файла конфигурации. Ошибки отображаются в логе /var/log/messages.
Мониторинг можно производить через веб-интерфейс, введя в адресную строку браузера http://<IP-адрес_сервера_Prometheus>:9090/targets
.
Установка и настройка Grafana
Grafana — платформа с открытым исходным кодом для визуализации, мониторинга и анализа данных. Grafana позволяет пользователям создавать дашборды с панелями, каждая из которых отображает определенные показатели в течение установленного периода времени. Каждый дашборд универсален, поэтому его можно настроить для конкретного проекта или с учетом любых потребностей разработки и/или бизнеса.
Установка Grafana
Для установки Grafana выполните команду:
dnf install grafana
Запустите grafana-server и добавьте его в автозагрузку:
systemctl enable grafana-server --now
Проверьте статус сервера:
systemctl status grafana-server
В статусе должно отображаться active(running).
Настройка Grafana
Веб-интерфейс доступен по адресу http://<IP-адрес>:3000/
.
Логин и пароль для входа: admin/admin. При первом входе будет запрошена смена пароля.
Далее добавьте источник данных для Grafana, выбрав Configuration - Data Sources - Add data source.
Выберите из списка Prometheus и нажмите Select.
В настройках укажите IP-адрес и порт сервера с Prometheus, остальные настройки ситуативны и устанавливаются по желанию. Для сохранения настроек нажмите Save & Test.
Загрузка дашбордов
Существует множество готовых дашбордов (в формате JSON), которые можно импортировать. Например, id=9614 или id=13978. Наиболее универсальным является id=1860, его можно скачать по ссылке (в примере использована ревизия 27).
Для указанных в Окружении версий Prometheus и Grafana могут быть использованы дашборды с ревизией 27 и ниже. В случае использования ревизий 28 и выше при работе могут возникнуть ошибки.
Для импорта дашборда выберите Create - Import.
Далее, нажав Upload JSON file, выберите скачанный раннее JSON-файл. В появившемся окне Options выберите Prometheus и нажмите Import.
Загруженный дашборд 1860 выглядит следующим образом:
Каталог с данными prometheus располагается по пути /var/lib/prometheus.
Завершение установки
После завершения установки и настройки необходимо включить и донастроить SELinux на сервере и клиенте.
Для этого в конфигурационном файле /etc/selinux/config необходимо установить значение SELINUX=enforcing
.
После этого перезапустите систему:
reboot
После перезапуска необходимо проверить наличие конфликтов с SELinux.
Перейдите в Главное меню - Системные - Диагностика SELinux и выполните диагностику.
Если оповещений о конфликтах нет, то дальнейшие действия выполнять не нужно, в ином случае SELinux выдаст оповещение об ошибке. Чтобы получить более подробную информацию об ошибке и её решении, перейдите во вкладку «Подробности».
SELinux предложит набор команд, предназначенный для решения возникшей ошибки.
Например, на стороне экспортера необходимо создать локальный модуль политики:
ausearch -c 'node_exporter' --raw | audit2allow -M my-nodeexporter semodule -i my-nodeexporter.pp
После выполнения всех необходимых действий потребуется перезагрузка экспортера:
systemctl restart node_exporter.service
Дата последнего изменения: 06.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.