Ряд модулей 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 может быть запущен в докере или как служба.
Пакет должен быть установлен на каждом сервере, используемом для функционирования SoftWLC или его компонентов.
Обратим внимание, что используется не дефолтный порт сервиса, а 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-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 |
Запуск выполняется в докере. На сервер потребуется установить docker и docker-compose.
В приложенном архиве содержаться файлы конфигурации: softwlc-monitoring.zip
Чтобы скачать напрямую на сервер, воспользуйтесь следующей командой
wget http://archive.eltex-co.ru/wireless/help/softwlc-latest/softwlc-monitoring.zip |
На хосте, предназначенном для работы системы мониторинга распаковать архив в папку:
sudo tar xvzf softwlc-monitoring.tar.gz -C /opt |
Сменить владельца папки, если он не "root":
chown -v root:root /opt/softwlc-monitoring/ chhow -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", перечислив в нем адреса и порты всех служб :
scrape_configs: - job_name: 'EMS' metrics_path: '/' scrape_interval: 5s static_configs: - targets: ['softwlc.eltex.loc:9091'] - job_name: 'APB' metrics_path: '/apb/api/metrics' scrape_interval: 5s static_configs: - targets: ['softwlc.eltex.loc:8090'] - job_name: 'Mercury' metrics_path: '/mercury/prometheus' scrape_interval: 5s static_configs: - targets: ['softwlc.eltex.loc:6564'] - job_name: 'Portal' metrics_path: '/eltex_portal/api/metrics' scrape_interval: 5s static_configs: - targets: ['softwlc.eltex.loc:9000'] - job_name: 'NBI' metrics_path: '/' scrape_interval: 5s static_configs: - targets: ['softwlc.eltex.loc:9010'] - job_name: 'System' scrape_interval: 5s static_configs: - targets: ['softwlc.eltex.loc:9991'] - job_name: 'NGW' metrics_path: '/actuator/prometheus' scrape_interval: 5s static_configs: - targets: ['softwlc.eltex.loc:8040'] - job_name: 'PCRF' metrics_path: '/metrics/prometheus' scrape_interval: 5s static_configs: - targets: [ 'softwlc.eltex.loc:7070' ] - job_name: 'Papaya' metrics_path: '/actuator/prometheus' scrape_interval: 5s static_configs: - targets: [ 'softwlc.eltex.loc:9098' ] - job_name: 'RADIUS' metrics_path: '/metrics' scrape_interval: 5s static_configs: - targets: [ 'softwlc.eltex.loc:9812' ] - job_name: 'bruce' metrics_path: '/actuator/prometheus' scrape_interval: 5s static_configs: - targets: [ 'softwlc.eltex.loc:8008' ] - job_name: 'WiFi-Cab' metrics_path: '/actuator/prometheus' scrape_interval: 5s static_configs: - targets: [ 'softwlc.eltex.loc:8085' ] - job_name: 'Portal Constructor' metrics_path: '/epadmin/actuator/prometheus' scrape_interval: 5s static_configs: - targets: [ 'softwlc.eltex.loc:9001' ] - job_name: 'jobs' metrics_path: '/actuator/prometheus' scrape_interval: 5s static_configs: - targets: [ 'softwlc.eltex.loc:9696' ] |
Так же в данном файле надо перечислить все сервера с установленным Node-Exporter, с указанием реального адреса каждого сервера:
#Node-SoftWLC - job_name: 'Node-SoftWLC' scrape_interval: 5s static_configs: - targets: ['<IP-адрес сервера>:9991'] |
Для всех серверов, которые указаны в файле prometheus.yml, должен быть обеспечен доступ по соответствующим портам по протоколу TCP с сервера, на котором запущена система мониторинга! |
Выполнить запуск:
sudo docker-compose up -d |
После запуска сервисы будут доступны по адресам:
Prometheus:
http://<IP-адрес сервера>:9990 |
Grafana:
http://<IP-адрес сервера>:3000 |
После открытия стартовой страницы Grafana будет предложено ввести логин / пароль (по умолчанию admin / admin):
После успешного входы будет предложено сменить пароль:
Можно задать новый пароль или нажать "Skip", что бы вопрос более не задавался, при этом дефолтный пароль не будет сменен.
Откроется начальное окно Grafana.
Что бы увидеть список доступных панелей мониторинга надо нажать в панели слева кнопку и в открывшемся меню выбрать "Manage".
Откроется окно со списком панелей:
После этого можно перейти к просмотру мониторинга нужного сервиса.
Для предотвращения случайных изменений рекомендуется добавить пользователя, который будет иметь только права просмотра.
Для этого надо нажать в панели слева кнопку и затем нажать кнопку "New user". После ввести данные пользователя: "Name", "Username", "Password" и нажать "Create user". В дальнейшем все действия по мониторингу выполнять под данным пользователем.
Сайт Prometheus: https://prometheus.io/
Сайт Grafana: https://grafana.com/