Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных


Архитектура


Сервис для мониторинга состояния модулей проекта SoftWLC, проверки связности между компонентами системы и доступности баз данных.

Состоит из нескольких компонентов:

  • сервер Prometheus, служит для сбора  и хранения метрик.
  • Grafana - визуализирует полученные метрики и представляет удобный дашборд для метрик.
  • Alertmanager - менеджер уведомлений, служит  для отправки алертов.
  • Core-checker - сервис для сбора метрик, предоставляет API c метриками состояния модулей SoftWLC.


Модуль Eltex-core-checker устанавливается непосредственно на сервер, где установлены модули SoftWLC. Если архитектура SoftWLC подразумевает многохостовую систему, то пакет core-checker должен быть установлен на каждом сервере.

Интерфейс Grafana с настроенными дашбордами  доступен по адресу:

<<ip_address>>:3000/

Интерфейс Prometheus доступен  по адресу:

<<ip_address>>:9090/

API core-checker:

<<ip_address>>:8000/metrics




Внешний вид



На главном дашборде сервиса мониторинга отображается состояние каждого  модуля проекта SoftWLC.  При нормальной работе, панели состояний отображаются зеленым цветом, как только сервис становится недоступен, панель окрашивается красным цветом.

По нажатию на панель, подсвеченная красным цветом, можно перейти на страницу модуля.

В правом верхнем углу доступны ярлыки с названием модулей. По клику на ярлык, можно перейти в дашборд, где доступна различная информация отслеживаемого модуля: Uptime модуля, максимальное и текущее   количество файловых дескрипторов pid, время ответа сервиса, время ответа бд, количество выделенной виртуальной памяти, количество зарезервированной памяти. Для компонента radius так же доступна информация о количестве успешной и неуспешной авторизации enterprise пользователей.(Показывает значение с момента запуска core-checker)





Описание  проверки

Результат выполнения проверки с различными типами метрик, доступен в API, пример метрики gauge(значение можек как увеличиваться, так и уменьшаться):

# HELP monitor_apb_mercury_request request_duration_seconds
# TYPE monitor_apb_mercury_request gauge
monitor_apb_mercury_request 0.007621049880981445

Пример метрики counter(увеличивается только в положительную сторону):

# HELP counter_positive_auth_radius_total positive counter authorization on radius
# TYPE counter_positive_auth_radius_total counter
counter_positive_auth_radius_total 7.0

Пример метрики, где всего два состояния(true и false):

# HELP apb_state service status
# TYPE apb_state gauge
apb_state{apb_state="true"} 1.0
apb_state{apb_state="false"} 0.0


Пример вывода:

  • EMS
    Проверка сервиса СУ ems.
    -  Локальная проверка работоспособности northbound, запросом GetVersion;
    - Проверка доступности базы данных "eltex-ems" mysql;
    - Проверка связности с radius сервером по порту 22;
    - Проверка доступности API сервиса PCRF.
  • NBI
    Проверка  сервиса NBI.
    - Локальная проверка работоспособности NBI, запросом GetVersion;
    - Проверка доступности EMS;
    - Проверка доступности по порту и адресу сервиса auth-service;
    - Проверка доступности API сервиса PCRF;
    - Проверка доступности базы данных mysql и mongo.
  • Captive Portal
    Проверка сервиса portal.
    - Проверка работоспособности портала, путем запроса на главную страницу;
    - Проверка связности по порту сервиса mercury;
    - Проверка доступности базы данных "eltex-portal".
  • Portal Constructor
    Проверка сервиса констуктора портала.
    - Проверка работоспособности конструктора портала;
    - Проверка доступности базы данных "eltex-portal";
    - Проверка доступности сервиза авторизации auth-service
  • Wi-Fi cab
    Проверка личного кабинета.
    - Проверка работоспособности личного кабинета;
    - Проверка доступа до сервиса NBI, запросом GetVersion;
    - Проверка доступности базы данных mongo.
  • APB
    Проверка работоспособности сервиса apb.
    - Проверка работоспособности сервиса apb по протоколу websocket;
    - Проверка доступности по порту сервиса mercury.
  • PCRF
    Проверка сервиса PCRF.
    - Проверка сервиса PCRF, запросом в API;
    - Проверка доступности базы данных mysql и mongo;
    - Проверка доступности сервиса NBI.
  • RADIUS
    Проверка сервиса авторизации radius.
    - Проверка сервиса radius, путем авторизации на сервисе.
  • NGW
    Проверка сервиса отправки сообщений ngw.
    - Проверка доступности внешнего email сервиса;
    - Проверка доступности внешнего смс шлюза по smpp.
  • AUTH-SERVICE
    Проверка сервиса авторизации b2b клиентов.
    - Проверка доступности сервиса, путем авторизации на сервисе.
  • MERCURY
    Проверка доступности сервиса mercury.
    - Проверка работоспособности сервиса mercury, путем запроса GetVersion по grpc;
    - Проверка доступности базы данных.
  • BOB
    Проверка работоспособности сервиса.
    - Проверка работоспособности сервиса bob, запросом GetVersion;
    - Провера доступности базы данных mysql.
  • DOORS
    Проверка сервиса doors.
    - Проверка работоспособности сервиса, авторизацией на сервисе;
    - Проверка доступности базы данных "eltex-doors".
  • MAC-CHECKER
    Проверка сервиса mac-checker.
    - Проверка работоспособности сервиса mac-checker;
    - Проверка доступности сервиса ems.
  • DISCONNECT-SERVICE
    Проверка сервиса disconnect.
    - Проверка работоспособности сервиса disconnect, запросом на сервис;
    - Проверка доступности api сервиса pcrf.


Настройка

Конфигурационный файл сервиса core-checker находится по пути /etc/eltex-core-checker/application.conf

1) Для проверки работы сервиса eltex-radius необходимо создать enterprise пользователя с логином "tester", паролем "tester " и выбрать домен root в личном кабинете в разделе пользователи WI-FI.

2) Для работы скрипта проверки авторизации личного кабинета и конструктора портала нужно создать системного пользователя  "tester" и паролем "tester" в разделе настройки  > "Системные пользователи".


[MONITORING]
wait = 5                                           время опроса сервиса, в секундах
exclude_checkers = disconnect, apb                 список сервисов, которые не нужно мониторить. Перечеслить через запятую
log = error                                        уровень логирования

[APB]
apb_dir = /etc/eltex-apb/apb.properties            конфигурационный файл 
apb_address = 127.0.0.1                            ip адрес
apb_port = 8090	                                   порт 

[EMS]
ems_address = 127.0.0.1
ems_port = 8080
ems_dir = /usr/lib/eltex-ems/conf/config.txt

[PORTAL]
portal_address = 127.0.0.1
portal_dir = /etc/eltex-portal/application.conf
portal_ssid = SSID_name                               Название SSID
portal_ap_domain = root                               домен ТД
portal_cp_domain = root                               домен портала
portal_cp_name = default                              Название Портала
portal_mac_client = aa:bb:cc:00:11:22

[PCRF]
pcrf_address = 127.0.0.1
pcrf_dir = /etc/eltex-pcrf/eltex-pcrf.json
pcrf_user = javauser
pcrf_password = javapassword
mysql_port = 3306

[MERCURY]
mercury_address = 127.0.0.1
mercury_port = 6565
mercury_dir = /etc/eltex-mercury/application.conf

[RADIUS]
radius_address = 127.0.0.1
radius_secret = testing123                              secret
radius_user = tester                                    логин, для проверки enterprise авторизации
radius_password = tester                                пароль, для проверки enterprise авторизации
radius_domain = root
radius_pattern_pos = Login OK                           шаблон, по которому определяется успешная авторизация
radius_pattern_neg = Login incorrect                    шаблон, по которому определяется неуспешная авторизация
radius_pattern_exclude = Login OK: [tester/tester]      

[AUTH_SERVICE]
auth_service_address = 127.0.0.1
auth_service_port = 21812
auth_service_secret = eltex
auth_service_user = tester
auth_service_password = tester

[BOB]
bob_address = 127.0.0.1
bob_port = 9190
bob_dir = /etc/eltex-bob/application.properties

[Portal-Constructor]
cp_dir = /etc/eltex-portal-constructor/application.conf
cp_user = tester
cp_password = tester
cp_secret = eltex
cp_auth_port = 21812

[NGW]
ngw_dir = /etc/eltex-ngw/notification.properties
ngw_smpp = /etc/eltex-ngw/smpp_gate.conf

[NBI]
nbi_addr = localhost
nbi_dir = /etc/eltex-radius-nbi/radius_nbi_config.txt
nbi_username = softwlc_service
nbi_password = softwlc

[MAC_CHECKER]
mc_addr = localhost
mc_dir = /etc/eltex-ott-mac-checker/application.conf

[WIFI_CAB]
lk_dir = /etc/eltex-wifi-cab/system.xml
lk_secret = eltex
lk_user = tester
lk_password = tester

[DOORS]
doors_address = localhost
doors_dir = /etc/eltex-doors/application.properties

[DISCONNECT]
disconnect_address = localhost
disconnect_address_doors = localhost
disconnect_user = user
disconnect_password = password
disconnect_dir = /etc/eltex-disconnect-service/application.conf





  • Нет меток