Ряд модулей 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 |
| eltex-wifi-sa | http://<IP-адрес сервера>:8042/metrics/meter |
| eltex-ott-paul | http://<IP-адрес сервера>:8097/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 |
Утилита запускается в контейнере. Для возможности получения информации о состоянии потребуется предварительная настройка eltex-radius.
Запуск eltex-radius-exporter выполняется в контейнере, все параметры конфигурации задаются в файле "docker-compose.yml".
Пример конфигурации docker-compose.yml:
version: '3' services: eltex-radius-exporter: container_name: eltex-radius-exporter image: hub.eltex-co.ru/softwlc/eltex-radius-exporter:<SoftWLC version>-<tag> ports: - "9812:9812/tcp" environment: - RADIUS_ADDRESS=eltex-radius:18123 - RADIUS_SECRET=eltex - RADIUS_TIMEOUT=1000 - TZ=Asia/Novosibirsk |
В случае запуска eltex-radius и eltex-radius-exporter на одном хосте рекомендуется использовать один файл конфигурации "docker-compose.yml".
Особенностями конфигурации в этом случае является использование режима "network_mode: host", что бы была возможность реализовать взаимодействие через адрес 127.0.0.1 (localhost).
Добавить конфигурацию eltex-radius-exporter в файл "docker-compose.yml":
version: '3'
services:
eltex-radius:
container_name: eltex-radius
network_mode: host
image: hub.eltex-co.ru/softwlc/eltex-radius:<SoftWLC version>-<tag>
env_file: eltex-radius.env
volumes:
# Eltex OUI list
- /usr/share/oui-base/oui-freeradius.txt:/usr/share/oui-base/oui-freeradius.txt:ro
# Eltex-Radius-NBI certificates
- ./eltex-radius/certs/ca/wireless-ca.crt:/etc/eltex-radius/certs/ca/default.pem:ro
- ./eltex-radius/certs/server.crt:/etc/eltex-radius/certs/server.crt:ro
- ./eltex-radius/certs/server.key:/etc/eltex-radius/certs/server.key:ro
eltex-radius-exporter:
container_name: eltex-radius-exporter
image: hub.eltex-co.ru/softwlc/eltex-radius-exporter:<SoftWLC version>-<tag>
network_mode: host
environment:
- RADIUS_ADDRESS=127.0.0.1:18123
- RADIUS_SECRET=eltex
- RADIUS_TIMEOUT=1000
- TZ=Asia/Novosibirsk |
Проконтролировать, что в файле переменных окружения "eltex-radius" "eltex-radius.env" указаны дефолтные значения для секции "Status-Server settings":
# ! Настройки приложения ! # # Ports on which server will listen RADIUS_AUTH_PORT=1812 RADIUS_ACCT_PORT=1813 RADIUS_INNER_TUNNEL_PORT=18121 # MySQL database RADIUS_DB_HOST=localhost RADIUS_DB_PORT=3306 RADIUS_DB_LOGIN=radius RADIUS_DB_PASSWORD=radpass RADIUS_DB_NAME=radius # PCRF # If you setting RADIUS_PCRF_ENABLED=0, then you also should enable accounting port listening in "default" server RADIUS_PCRF_HOST=127.0.0.1 RADIUS_PCRF_PORT=7080 RADIUS_PCRF_ENABLED=1 # EAP RADIUS_CA_CERT_NAME=default.pem RADIUS_TLS_KEY_PASSWORD=eltex # Proxying RADIUS_PROXY_AUTH=0 RADIUS_PROXY_DOMAIN_REGEX=^(.+\.)?enterprise\.root$ RADIUS_PROXY_HOST=127.0.0.1 RADIUS_PROXY_PORT=18121 RADIUS_PROXY_SECRET=eltex # Ubiquity vendor detection RADIUS_UBI_VENDOR_REGEX=Apple|Ubiquiti RADIUS_VENDOR_GROUP_ENABLED=1 # Settings of runtime NAS discovery RADIUS_DYNAMIC_CLIENTS=false RADIUS_DYNAMIC_CLIENT_SUBNET=192.168.0.0/16 RADIUS_DYNAMIC_CLIENT_LIFETIME=3600 RADIUS_DYNAMIC_CLIENT_RATE_LIMIT=false # Proxy SSID RADIUS_PROXY_SSID_ENABLED=0 RADIUS_PROXY_SSID_VALUE=EAP_TLS RADIUS_PROXY_SSID_HOST=127.0.0.1 RADIUS_PROXY_SSID_PORT=18122 RADIUS_PROXY_SSID_SECRET=eltex # Status-Server settings RADIUS_STATUS_HOST=127.0.0.1 RADIUS_STATUS_PORT=18123 RADIUS_STATUS_CLIENT_HOST=127.0.0.1 RADIUS_STATUS_CLIENT_SECRET=eltex #TIMEZONE TZ=Asia/Novosibirsk |
Выполнить запуск контейнера:
| sudo docker-compose up -d |
|---|
Если контейнеры eltex-radius и eltex-radius-exporter работаю на разных хостах - в их настройках надо будет указать реальные адреса для получения информации.
На хосте, где запущен "eltex-radius" в файле настроек переменных окружения "eltex-radius.env" указать значения переменных в секции "Status-Server settings":
# ! Настройки приложения ! # # Ports on which server will listen RADIUS_AUTH_PORT=1812 RADIUS_ACCT_PORT=1813 RADIUS_INNER_TUNNEL_PORT=18121 # MySQL database RADIUS_DB_HOST=localhost RADIUS_DB_PORT=3306 RADIUS_DB_LOGIN=radius RADIUS_DB_PASSWORD=radpass RADIUS_DB_NAME=radius # PCRF # If you setting RADIUS_PCRF_ENABLED=0, then you also should enable accounting port listening in "default" server RADIUS_PCRF_HOST=127.0.0.1 RADIUS_PCRF_PORT=7080 RADIUS_PCRF_ENABLED=1 # EAP RADIUS_CA_CERT_NAME=default.pem RADIUS_TLS_KEY_PASSWORD=eltex # Proxying RADIUS_PROXY_AUTH=0 RADIUS_PROXY_DOMAIN_REGEX=^(.+\.)?enterprise\.root$ RADIUS_PROXY_HOST=127.0.0.1 RADIUS_PROXY_PORT=18121 RADIUS_PROXY_SECRET=eltex # Ubiquity vendor detection RADIUS_UBI_VENDOR_REGEX=Apple|Ubiquiti RADIUS_VENDOR_GROUP_ENABLED=1 # Settings of runtime NAS discovery RADIUS_DYNAMIC_CLIENTS=false RADIUS_DYNAMIC_CLIENT_SUBNET=192.168.0.0/16 RADIUS_DYNAMIC_CLIENT_LIFETIME=3600 RADIUS_DYNAMIC_CLIENT_RATE_LIMIT=false # Proxy SSID RADIUS_PROXY_SSID_ENABLED=0 RADIUS_PROXY_SSID_VALUE=EAP_TLS RADIUS_PROXY_SSID_HOST=127.0.0.1 RADIUS_PROXY_SSID_PORT=18122 RADIUS_PROXY_SSID_SECRET=eltex # Status-Server settings RADIUS_STATUS_HOST=<IP-адрес, на котором ожидаются запросы от eltex-radius-exporter> RADIUS_STATUS_PORT=18123 RADIUS_STATUS_CLIENT_HOST=<IP-адрес, с которого ожидаются запросы от eltex-radius-exporter> RADIUS_STATUS_CLIENT_SECRET=eltex #TIMEZONE TZ=Asia/Novosibirsk |
Перезапустить сервис:
| sudo docker-compose up -d |
|---|
На хосте, где выполняется запуск "eltex-radius-exporter" в файле конфигурации "docker-compose.yml" настроить:
version: '3'
services:
eltex-radius-exporter:
container_name: eltex-radius-exporter
image: hub.eltex-co.ru/softwlc/eltex-radius-exporter:<SoftWLC version>-<tag>
ports:
- "9812:9812/tcp"
environment:
- RADIUS_ADDRESS=<IP-адрес eltex-radius>:18123
- RADIUS_SECRET=eltex
- RADIUS_TIMEOUT=1000
- TZ=Asia/Novosibirsk |
Запустить контейнер:
| sudo docker-compose up -d |
|---|
"Eltex-radius-exporter" может быть запущен на любом хосте, в т.ч. и на одном хосте с сервисом "eltex-radius". При запуске на одном хосте в конфигурации потребуется использование режима "network_mode: host" для контейнера, что бы была возможность реализовать взаимодействие через адрес 127.0.0.1 (localhost).
Проконтролировать, что в файле конфигурации "eltex-radius" "/etc/eltex-radius/local.conf" указаны дефолтные значения в разделе "Status-Server settings":
# Ports on which the server will listen auth_port=1812 #acct_port=1813 inner_tunnel_port=18121 # MySQL database db_host="localhost" db_port=3306 db_login="radius" db_password="radpass" db_name="radius" # PCRF # If you setting pcrf_enabled=0, then you also should enable accounting port listening in "default" server pcrf_host="127.0.0.1" pcrf_port=7080 pcrf_enabled=1 # EAP ca_cert_name="local.pem" tls_key_password="1234" # Proxying proxy_auth=0 proxy_domain_regex="^(.+\.)?enterprise\.root$" proxy_host="127.0.0.1" proxy_port=18121 proxy_secret="eltex" # Ubiquity vendor detection ubi_vendor_regex="Apple|Ubiquiti" vendor_group_enabled=1 # Settings of runtime NAS discovery dynamic_clients=false dynamic_client_subnet=192.168.0.0/16 dynamic_client_lifetime=3600 dynamic_client_rate_limit=false # Proxy SSID (for example to eltex-eap-tls) #139679 proxy_ssid_enabled=0 proxy_ssid_value="EAP_TLS" proxy_ssid_host="127.0.0.1" proxy_ssid_port=18122 proxy_ssid_secret="eltex" # Status-Server settings status_host="127.0.0.1" status_port=18123 status_client_host="127.0.0.1" status_client_secret="eltex" #TIMEZONE TZ=Asia/Novosibirsk |
При необходимости исправить их и выполнить перезапуск "eltex-radius":
| sudo systemctl restart eltex-radius |
|---|
Сконфигурировать файл docker-compose.yml для запуска eltex-radius-exporter:
version: '3' services: eltex-radius-exporter: container_name: eltex-radius-exporter image: hub.eltex-co.ru/softwlc/eltex-radius-exporter:<SoftWLC version>-<tag> network_mode: host environment: - RADIUS_ADDRESS=127.0.0.1:18123 - RADIUS_SECRET=eltex - RADIUS_TIMEOUT=1000 - TZ=Asia/Novosibirsk |
Запустить контейнер:
sudo docker-compose up -d |
|---|
Указать в файле конфигурации "eltex-radius" "/etc/eltex-radius/local.conf" настройки в разделе "Status-Server settings":
# Ports on which the server will listen auth_port=1812 #acct_port=1813 inner_tunnel_port=18121 # MySQL database db_host="localhost" db_port=3306 db_login="radius" db_password="radpass" db_name="radius" # PCRF # If you setting pcrf_enabled=0, then you also should enable accounting port listening in "default" server pcrf_host="127.0.0.1" pcrf_port=7080 pcrf_enabled=1 # EAP ca_cert_name="local.pem" tls_key_password="1234" # Proxying proxy_auth=0 proxy_domain_regex="^(.+\.)?enterprise\.root$" proxy_host="127.0.0.1" proxy_port=18121 proxy_secret="eltex" # Ubiquity vendor detection ubi_vendor_regex="Apple|Ubiquiti" vendor_group_enabled=1 # Settings of runtime NAS discovery dynamic_clients=false dynamic_client_subnet=192.168.0.0/16 dynamic_client_lifetime=3600 dynamic_client_rate_limit=false # Proxy SSID (for example to eltex-eap-tls) #139679 proxy_ssid_enabled=0 proxy_ssid_value="EAP_TLS" proxy_ssid_host="127.0.0.1" proxy_ssid_port=18122 proxy_ssid_secret="eltex" # Status-Server settings status_host="<IP-адрес, на котором ожидаются запросы от eltex-radius-exporter>" status_port=18123 status_client_host="<IP-адрес, с которого ожидаются запросы от eltex-radius-exporter>" status_client_secret="eltex" #TIMEZONE TZ=Asia/Novosibirsk |
Выполнить перезапуск сервиса eltex-radius:
sudo systemctl restart eltex-radius |
|---|
Сконфигурировать файл "docker-compose.yml" для запуска eltex-radius-exporter:
version: '3'
services:
eltex-radius-exporter:
container_name: eltex-radius-exporter
image: hub.eltex-co.ru/softwlc/eltex-radius-exporter:<SoftWLC version>-<tag>
ports:
- "9812:9812/tcp"
environment:
- RADIUS_ADDRESS=<IP-адрес eltex-radius>:18123
- RADIUS_SECRET=eltex
- RADIUS_TIMEOUT=1000
- TZ=Asia/Novosibirsk |
Запустить контейнер:
sudo docker-compose up -d |
|---|
Что бы просмотреть вывод метрик - надо открыть в браузере адрес "http://<IP-адрес eltex-radius-exporter>:9812/metrics".
Если вывод имеет вид:
# HELP freeradius_hup_time Epoch timestamp when the server hang up (If start == hup, it hasn't been hup'd yet)
# TYPE freeradius_hup_time gauge
freeradius_hup_time{address="127.0.0.1:18123"} 1.731634177e+09
# HELP freeradius_queue_len_acct Acct queue length
# TYPE freeradius_queue_len_acct gauge
freeradius_queue_len_acct{address="127.0.0.1:18123"} 0
# HELP freeradius_queue_len_auth Auth queue length
# TYPE freeradius_queue_len_auth gauge
freeradius_queue_len_auth{address="127.0.0.1:18123"} 0
# HELP freeradius_queue_len_detail Detail queue length
# TYPE freeradius_queue_len_detail gauge
freeradius_queue_len_detail{address="127.0.0.1:18123"} 0
# HELP freeradius_queue_len_internal Interal queue length
# TYPE freeradius_queue_len_internal gauge
freeradius_queue_len_internal{address="127.0.0.1:18123"} 0
# HELP freeradius_queue_len_proxy Proxy queue length
# TYPE freeradius_queue_len_proxy gauge
freeradius_queue_len_proxy{address="127.0.0.1:18123"} 0
# HELP freeradius_queue_pps_in Queue PPS in
# TYPE freeradius_queue_pps_in gauge
freeradius_queue_pps_in{address="127.0.0.1:18123"} 0
# HELP freeradius_queue_pps_out Queue PPS out
# TYPE freeradius_queue_pps_out gauge
freeradius_queue_pps_out{address="127.0.0.1:18123"} 0
# HELP freeradius_start_time Epoch timestamp when the server was started
# TYPE freeradius_start_time gauge
freeradius_start_time{address="127.0.0.1:18123"} 1.731634177e+09
# HELP freeradius_stats_error Stats error as label with a const value of 1
# TYPE freeradius_stats_error gauge
freeradius_stats_error{address="127.0.0.1:18123",error=""} 1
# HELP freeradius_total_access_accepts Total access accepts
# TYPE freeradius_total_access_accepts counter
freeradius_total_access_accepts{address="127.0.0.1:18123"} 0
# HELP freeradius_total_access_challenges Total access challenges
# TYPE freeradius_total_access_challenges counter
freeradius_total_access_challenges{address="127.0.0.1:18123"} 0
# HELP freeradius_total_access_rejects Total access rejects
# TYPE freeradius_total_access_rejects counter
freeradius_total_access_rejects{address="127.0.0.1:18123"} 0
# HELP freeradius_total_access_requests Total access requests
# TYPE freeradius_total_access_requests counter
freeradius_total_access_requests{address="127.0.0.1:18123"} 2681
# HELP freeradius_total_acct_dropped_requests Total acct dropped requests
# TYPE freeradius_total_acct_dropped_requests counter
freeradius_total_acct_dropped_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_acct_duplicate_requests Total acct duplicate requests
# TYPE freeradius_total_acct_duplicate_requests counter
freeradius_total_acct_duplicate_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_acct_invalid_requests Total acct invalid requests
# TYPE freeradius_total_acct_invalid_requests counter
freeradius_total_acct_invalid_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_acct_malformed_requests Total acct malformed requests
# TYPE freeradius_total_acct_malformed_requests counter
freeradius_total_acct_malformed_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_acct_requests Total acct requests
# TYPE freeradius_total_acct_requests counter
freeradius_total_acct_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_acct_responses Total acct responses
# TYPE freeradius_total_acct_responses counter
freeradius_total_acct_responses{address="127.0.0.1:18123"} 0
# HELP freeradius_total_acct_unknown_types Total acct unknown types
# TYPE freeradius_total_acct_unknown_types counter
freeradius_total_acct_unknown_types{address="127.0.0.1:18123"} 0
# HELP freeradius_total_auth_dropped_requests Total auth dropped requests
# TYPE freeradius_total_auth_dropped_requests counter
freeradius_total_auth_dropped_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_auth_duplicate_requests Total auth duplicate requests
# TYPE freeradius_total_auth_duplicate_requests counter
freeradius_total_auth_duplicate_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_auth_invalid_requests Total auth invalid requests
# TYPE freeradius_total_auth_invalid_requests counter
freeradius_total_auth_invalid_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_auth_malformed_requests Total auth malformed requests
# TYPE freeradius_total_auth_malformed_requests counter
freeradius_total_auth_malformed_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_auth_responses Total auth responses
# TYPE freeradius_total_auth_responses counter
freeradius_total_auth_responses{address="127.0.0.1:18123"} 0
# HELP freeradius_total_auth_unknown_types Total auth unknown types
# TYPE freeradius_total_auth_unknown_types counter
freeradius_total_auth_unknown_types{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_access_accepts Total proxy access accepts
# TYPE freeradius_total_proxy_access_accepts counter
freeradius_total_proxy_access_accepts{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_access_challenges Total proxy access challenges
# TYPE freeradius_total_proxy_access_challenges counter
freeradius_total_proxy_access_challenges{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_access_rejects Total proxy access rejects
# TYPE freeradius_total_proxy_access_rejects counter
freeradius_total_proxy_access_rejects{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_access_requests Total proxy access requests
# TYPE freeradius_total_proxy_access_requests counter
freeradius_total_proxy_access_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_acct_dropped_requests Total proxy acct dropped requests
# TYPE freeradius_total_proxy_acct_dropped_requests counter
freeradius_total_proxy_acct_dropped_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_acct_duplicate_requests Total proxy acct duplicate requests
# TYPE freeradius_total_proxy_acct_duplicate_requests counter
freeradius_total_proxy_acct_duplicate_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_acct_invalid_requests Total proxy acct invalid requests
# TYPE freeradius_total_proxy_acct_invalid_requests counter
freeradius_total_proxy_acct_invalid_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_acct_malformed_requests Total proxy acct malformed requests
# TYPE freeradius_total_proxy_acct_malformed_requests counter
freeradius_total_proxy_acct_malformed_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_acct_requests Total proxy acct requests
# TYPE freeradius_total_proxy_acct_requests counter
freeradius_total_proxy_acct_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_acct_responses Total proxy acct responses
# TYPE freeradius_total_proxy_acct_responses counter
freeradius_total_proxy_acct_responses{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_acct_unknown_types Total proxy acct unknown types
# TYPE freeradius_total_proxy_acct_unknown_types counter
freeradius_total_proxy_acct_unknown_types{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_auth_dropped_requests Total proxy auth dropped requests
# TYPE freeradius_total_proxy_auth_dropped_requests counter
freeradius_total_proxy_auth_dropped_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_auth_duplicate_requests Total proxy auth duplicate requests
# TYPE freeradius_total_proxy_auth_duplicate_requests counter
freeradius_total_proxy_auth_duplicate_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_auth_invalid_requests Total proxy auth invalid requests
# TYPE freeradius_total_proxy_auth_invalid_requests counter
freeradius_total_proxy_auth_invalid_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_auth_malformed_requests Total proxy auth malformed requests
# TYPE freeradius_total_proxy_auth_malformed_requests counter
freeradius_total_proxy_auth_malformed_requests{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_auth_responses Total proxy auth responses
# TYPE freeradius_total_proxy_auth_responses counter
freeradius_total_proxy_auth_responses{address="127.0.0.1:18123"} 0
# HELP freeradius_total_proxy_auth_unknown_types Total proxy auth unknown types
# TYPE freeradius_total_proxy_auth_unknown_types counter
freeradius_total_proxy_auth_unknown_types{address="127.0.0.1:18123"} 0
# HELP freeradius_up Boolean gauge of 1 if freeradius was reachable, or 0 if not
# TYPE freeradius_up gauge
freeradius_up 1 |
значит eltex-radius-exporter успешно получает и отдает метрики от eltex-radius.
Если вывод имеет вид:
# HELP freeradius_up Boolean gauge of 1 if freeradius was reachable, or 0 if not # TYPE freeradius_up gauge freeradius_up 0 |
значит eltex-radius не отвечает на запросы.
Запуск выполняется в докере. На сервер потребуется установить docker и docker-compose. Установка описана в документации
В приложенном архиве содержаться файлы конфигурации: softwlc-monitoring.zip
Чтобы скачать напрямую на сервер, воспользуйтесь следующей командой
wget http://archive.eltex-co.ru/wireless/help/softwlc-latest/softwlc-monitoring.zip |
На хосте, предназначенном для работы системы мониторинга распаковать архив в папку:
sudo unzip softwlc-monitoring.zip -d /opt/ |
Сменить владельца папки, если он не "root":
sudo chown -v root:root /opt/softwlc-monitoring/ sudo chown -Rv root:root /opt/softwlc-monitoring/ |
Сменить разрешения для папок и файлов:
sudo chmod -Rv 664 /opt/softwlc-monitoring/ sudo chmod -v 755 /opt/softwlc-monitoring/ sudo chmod -v 755 /opt/softwlc-monitoring/prometheus/ sudo chmod -v 755 /opt/softwlc-monitoring/grafana/ sudo chmod -v 755 /opt/softwlc-monitoring/grafana/provisioning/ sudo chmod -v 755 /opt/softwlc-monitoring/grafana/provisioning/datasources/ sudo 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: ['192.168.0.1:9091']
- job_name: 'APB'
metrics_path: '/apb/api/metrics'
scrape_interval: 5s
static_configs:
- targets: ['<IP_SoftWLC>:8090']
- job_name: 'Mercury'
metrics_path: '/mercury/prometheus'
scrape_interval: 5s
static_configs:
- targets: ['<IP_SoftWLC>:6564']
- job_name: 'Portal'
metrics_path: '/eltex_portal/api/metrics'
scrape_interval: 5s
static_configs:
- targets: ['<IP_SoftWLC>:9000']
- job_name: 'NBI'
metrics_path: '/'
scrape_interval: 5s
static_configs:
- targets: ['<IP_SoftWLC>:9010']
- job_name: 'System'
scrape_interval: 5s
static_configs:
- targets: ['<IP_SoftWLC>:9991']
- job_name: 'NGW'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
static_configs:
- targets: ['<IP_SoftWLC>:8040']
- job_name: 'PCRF'
metrics_path: '/metrics/prometheus'
scrape_interval: 5s
static_configs:
- targets: [ '<IP_SoftWLC>:7070' ]
- job_name: 'Papaya'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
static_configs:
- targets: [ '<IP_SoftWLC>:9098' ]
- job_name: 'RADIUS'
metrics_path: '/metrics'
scrape_interval: 5s
static_configs:
- targets: [ '<IP_SoftWLC>:9812' ]
- job_name: 'bruce'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
static_configs:
- targets: [ '<IP_SoftWLC>:8008' ]
- job_name: 'WiFi-Cab'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
static_configs:
- targets: [ '<IP_SoftWLC>:8085' ]
- job_name: 'Portal Constructor'
metrics_path: '/epadmin/actuator/prometheus'
scrape_interval: 5s
static_configs:
- targets: [ '<IP_SoftWLC>:9001' ]
- job_name: 'jobs'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
static_configs:
- targets: [ '<IP_SoftWLC>: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/