Описание
Ряд модулей SoftWLC поддерживает метрики в формате Prometheus. Для отображения и анализа полученных метрик используется Grafana.
Сервис | Адрес получения метрик |
---|---|
eltex-apb | http://<IP-адрес сервера>:8090/apb/api/metrics |
eltex-bruce | http://<IP-адрес сервера>:8008/actuator/prometheus |
eltex-jobs | http://<IP-адрес сервера>:9696/actuator/prometheus |
eltex-ems | http://<IP-адрес сервера>:9091/metrics |
eltex-mercury | http://<IP-адрес сервера>:6564/mercury/prometheus |
eltex-ngw | http://<IP-адрес сервера>:8040/actuator/prometheus |
eltex-pcrf | http://<IP-адрес сервера>:7070/metrics/prometheus |
eltex-radius | http://<IP-адрес сервера>:9812/metrics |
eltex-radius-nbi | http://<IP-адрес сервера>:9010/ |
eltex-papaya | http://<IP-адрес сервера>:9098/actuator/prometheus |
eltex-portal | http://<IP-адрес сервера>:9000/eltex_portal/api/metrics |
eltex-portal-constructor | http://<IP-адрес сервера>:9001/epadmin/actuator/prometheus |
eltex-wifi-cab | http://<IP-адрес сервера>:8085/actuator/prometheus |
node_exporter | http://<IP-адрес сервера>:9991/metrics |
Для мониторинга производительности сервера, на котором работает комплекс SoftWLC предполагается использование утилиты node_exporter.
Подготовка к развертыванию системы
Развертывать систему мониторинга рекомендуется на отдельном хосте, характеристики 4Gb RAM, 1 CPU, 100Gb HDD.
Так же на данный хост требуется установить пакеты docker, docker-compose.
Установка Node_Exporter
Node-Exporter может быть запущен в докере или как служба.
Пакет должен быть установлен на каждом сервере, используемом для функционирования SoftWLC или его компонентов.
Запуск Node_Exporter в докере
Обратим внимание, что используется не дефолтный порт сервиса, а 9991.
Создать папку:
sudo mkdir /opt/node_exporter/
В данной папке создать файл docker-compose.yml:
version: '3.4' services: node-exporter: container_name: node_exporter image: prom/node-exporter:v1.3.1 ports: - "9991:9100" volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: - '--path.procfs=/host/proc' - '--path.rootfs=/rootfs' - '--path.sysfs=/host/sys' - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)' restart: unless-stopped
Выполнить запуск сервиса командой:
sudo docker-compose up -d
Запуск Node-Exporter как службы
Скачать последнюю версию node_exporter-1.6.1.linux-amd64.tar.gz
wget http://archive.eltex-co.ru/wireless/help/softwlc-latest/node_exporter-1.6.1.linux-amd64.tar.gz
Создать директорию:
sudo mkdir /opt/node_exporter/
Распаковать архив в папку:
sudo tar xvzf node_exporter-1.3.1.linux-amd64.tar.gz -C /opt/node_exporter/
Создать симлинк:
sudo ln -s /opt/node_exporter/node_exporter-1.3.1.linux-amd64 /opt/node_exporter/run
Создать пользователя для запуска сервиса:
sudo useradd -rs /bin/false node_exporter
Создать файл сервиса:
sudo vim /etc/systemd/system/node_exporter.service
Прописать в /etc/systemd/system/node_exporter.service
[Unit] Description=Node Exporter After=networki-online.target [Service] EnvironmentFile=-/etc/sysconfig/node_exporter WorkingDirectory=/opt/node_exporter/run ExecStart=/opt/node_exporter/run/node_exporter --web.listen-address=:9991 Restart=on-abort RestartSec=60 User=node_exporter Group=node_exporter Type=simple [Install] WantedBy=multi-user.target
Обновить информацию в systemd:
sudo systemctl daemon-reload
Запустить сервис:
sudo systemctl start node_exporter
Включить автозапуск:
sudo systemctl enable node_exporter
Проверить статус сервиса:
sudo systemctl status node_exporter ● node_exporter.service - Node Exporter Loaded: loaded (/etc/systemd/system/node_exporter.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2022-04-06 13:42:32 +07; 1min 25s ago Main PID: 28664 (node_exporter) Tasks: 4 (limit: 4915) CGroup: /system.slice/node_exporter.service └─28664 /opt/node_exporter/run/node_exporter --web.listen-address=:9991
Установка Prometheus и Grafana
Запуск выполняется в докере. На сервер потребуется установить docker и docker-compose.
В приложенном архиве содержаться файлы конфигурации: softwlc-monitoring.zip
Чтобы скачать напрямую на сервер, воспользуйтесь следующей командой
wget http://archive.eltex-co.ru/wireless/help/softwlc-latest/softwlc-monitoring.zip
На хосте, предназначенном для работы системы мониторинга распаковать архив в папку:
sudo apt install unzip sudo unzip softwlc-monitoring.zip -d /opt
Сменить владельца папки, если он не "root":
chown -v root:root /opt/softwlc-monitoring/ chown -Rv root:root /opt/softwlc-monitoring/
Сменить разрешения для папок и файлов:
chmod -Rv 664 /opt/softwlc-monitoring/ chmod -v 755 /opt/softwlc-monitoring/ chmod -v 755 /opt/softwlc-monitoring/prometheus/ chmod -v 755 /opt/softwlc-monitoring/grafana/ chmod -v 755 /opt/softwlc-monitoring/grafana/provisioning/datasources/ chmod -v 755 /opt/softwlc-monitoring/grafana/provisioning/dashboards/
Отредактировать файл "/opt/softwlc-monitoring/prometheus/prometheus.yml", перечислив в нем адреса и порты всех служб :
Так же в данном файле надо перечислить все сервера с установленным Node-Exporter, с указанием реального адреса каждого сервера:
Для всех серверов, которые указаны в файле prometheus.yml, должен быть обеспечен доступ по соответствующим портам по протоколу TCP с сервера, на котором запущена система мониторинга!
Выполнить запуск:
sudo docker-compose up -d
После запуска сервисы будут доступны по адресам:
Prometheus:
http://<IP-адрес сервера>:9990
Grafana:
http://<IP-адрес сервера>:3000
После открытия стартовой страницы Grafana будет предложено ввести логин / пароль (по умолчанию admin / admin):
После успешного входы будет предложено сменить пароль:
Можно задать новый пароль или нажать "Skip", что бы вопрос более не задавался, при этом дефолтный пароль не будет сменен.
Откроется начальное окно Grafana.
Что бы увидеть список доступных панелей мониторинга надо нажать в панели слева кнопку
и в открывшемся меню выбрать "Manage".Откроется окно со списком панелей:
В случае отсутствия панелей есть вероятность неверной выдачи прав. Об этом могут свидетельствовать следующие логи docker контейнера.
grafana | t=2024-08-01T04:17:06+0000 lvl=eror msg="can't read datasource provisioning files from directory" logger=provisioning.datasources path=/etc/grafana/provisioning/datasources error="open /etc/grafana/provisioning/datasources: permission denied" grafana | t=2024-08-01T04:17:06+0000 lvl=eror msg="Failed to read plugin provisioning files from directory" logger=provisioning.plugins path=/etc/grafana/provisioning/plugins error="open /etc/grafana/provisioning/plugins: permission denied" grafana | t=2024-08-01T04:17:06+0000 lvl=eror msg="Can't read alert notification provisioning files from directory" logger=provisioning.notifiers path=/etc/grafana/provisioning/notifiers error="open /etc/grafana/provisioning/notifiers: permission denied" grafana | t=2024-08-01T04:17:06+0000 lvl=info msg="Live Push Gateway initialization" logger=live.push_http grafana | t=2024-08-01T04:17:06+0000 lvl=eror msg="can't read dashboard provisioning files from directory" logger=provisioning.dashboard path=/etc/grafana/provisioning/dashboards error="open /etc/grafana/provisioning/dashboards: permission denied"
Для решения данной проблемы можно прописать следующие команды из дирректории /opt/softwlc-monitoring:
Отключаем docker контейнер:
sudo docker-compose down
Переназначаем права:
chmod -R 755 prometheus/ chmod -R 755 grafana/
Запускаем контейнер:
sudo docker-compose up -d
После этого можно перейти к просмотру мониторинга нужного сервиса.
Для предотвращения случайных изменений рекомендуется добавить пользователя, который будет иметь только права просмотра.
Для этого надо нажать в панели слева кнопку
и затем нажать кнопку "New user". После ввести данные пользователя: "Name", "Username", "Password" и нажать "Create user". В дальнейшем все действия по мониторингу выполнять под данным пользователем.Приложения
Сайт Prometheus: https://prometheus.io/
Сайт Grafana: https://grafana.com/