Для целей мониторинга состояния работы системы WNAM внешними средствами можно использовать:

  • опрос текущих параметров приложения WNAM, аналогичных отображаемым в разделе "Сводка" веб-интерфейса администратора;
  • периодический запуск скриптов, проверяющих работоспособность системы (freeradius, tomcat, mongodb) и выдающих информацию путём прямого обращения к БД системы WNAM.

1. Встроенные средства

Возможность получать данные от работающий системы WNAM требуется предварительно включить в меню "Конфигурация" → "Общие настройки" чекбокс "Автоматизированный интерфейс (API) (доступ обеспечивается включением API).

Используемое приложение мониторинга должно запрашивать ссылку http://servername/api/statistic. Авторизация не требуется, однако доступ к разделу статистики может быть разрешён только с адресов, указанных в параметре allowed_subnets.

При запросе вида http://servername/api/statistic результаты выдаются в форме JSON-ответа первого типа, например:

{
  "siteCount": 58,
  "siteLicenseCount": 692,
  "siteActiveCount": 38,
  "serverCount": 56,
  "activeServices": "0 T, 0 U",
  "bclients": 3,
  "activeServicesT": 0,
  "activeServicesU": 0,
  "activeAccessPoints": 0,
  "apLicenseCount": 2120,
  "apCount": 66,
  "customerCount": 94,
  "sessionCount": 198386,
  "activeCustomerCount": 0,
  "flowsProcessedCount": 2302,
  "flowsNFProcessedCount": 0,
  "cmdsProcessedCount": 1521193,
  "ram": 32,
  "cpu": 1,
  "hdd": 47,
  "uptime": "16 м. 45 с.",
  "uptimeRaw": 1005,
  "adLogins": 0,
  "adClicks": 0,
  "smsCount": "621/522",
  "smsCountS": 621,
  "smsCountV": 522,
  "callCount": "1725/20",
  "callCountS": 1725,
  "callCountV": 20,
  "radiusResponse": "0,008 с., [хорошо]",
  "radiusResponseRaw": 0.008,
  "mongoUptime": "437 д. 20 ч. 7 м. 29 с.",
  "mongoUptimeRaw": 37829249,
  "mongoOpsCounters": "80053565",
  "daysToExpiration": 241,
  "licenseServer1Reachable": 1,
  "licenseServer2Reachable": -1,
  "licenseStatus": "Лицензия истекает через 241 дней",
  "domainCount": 1,
  "ldapConnectorsCount": 1,
  "ntlmConnectorsCount": 1,
  "endpointsLicensed": 160000,
  "endpointsUsed": 55,
  "mongoPrimaryName": null,
  "mongoRSetMembers": 0,
  "mongoRSetOkMembers": 0,
  "siteProgressBar": {
    "pc": [0, 0, 2, 60, 3, 34],
    "co": [0, 0, 1, 35, 2, 20]
  },
  "accessServerProgressBar": {
    "pc": [0, 2, 4, 68, 11, 16],
    "co": [0, 1, 2, 38, 6, 9]
  },
  "pageForModerationCount": 0,
  "enableCluster": false,
  "clusterRole": null,
  "serversInCluster": 1,
  "version": "1.6.4778",
  "hostname": "lab1"
}

При запросе вида http://servername/api/statistic?json результаты выдаются в форме JSON-ответа второго типа, например:

{"statistic":
{
  "siteCount" : 58,
  "siteLicenseCount" : 692,
  "siteActiveCount" : 38,
  "serverCount" : 56,
  "activeServices" : "0 T, 0 U",
  "bclients" : 3,
  "activeServicesT" : 0,
  "activeServicesU" : 0,
  "activeAccessPoints" : 0,
  "apLicenseCount" : 2120,
  "apCount" : 66,
  "customerCount" : 94,
  "sessionCount" : 198386,
  "activeCustomerCount" : 0,
  "flowsProcessedCount" : 2302,
  "flowsNFProcessedCount" : 0,
  "cmdsProcessedCount" : 1521193,
  "ram" : 32,
  "cpu" : 0,
  "hdd" : 47,
  "uptime" : "20 м. 6 с.",
  "uptimeRaw" : 1206,
  "adLogins" : 0,
  "adClicks" : 0,
  "smsCount" : "621/522",
  "smsCountS" : 621,
  "smsCountV" : 522,
  "callCount" : "1725/20",
  "callCountS" : 1725,
  "callCountV" : 20,
  "radiusResponse" : "0,009 с., [хорошо]",
  "radiusResponseRaw" : 0.009,
  "mongoUptime" : "437 д. 20 ч. 10 м. 50 с.",
  "mongoUptimeRaw" : 37829450,
  "mongoOpsCounters" : "80053955",
  "daysToExpiration" : 241,
  "licenseServer1Reachable" : 1,
  "licenseServer2Reachable" : -1,
  "licenseStatus" : "Лицензия истекает через 241 дней",
  "domainCount" : 1,
  "ldapConnectorsCount" : 1,
  "ntlmConnectorsCount" : 1,
  "endpointsLicensed" : 160000,
  "endpointsUsed" : 55,
  "mongoPrimaryName" : null,
  "mongoRSetMembers" : 0,
  "mongoRSetOkMembers" : 0,
  "siteProgressBar" : {
    "pc" : [ 0, 0, 2, 60, 3, 34 ],
    "co" : [ 0, 0, 1, 35, 2, 20 ]
  },
  "accessServerProgressBar" : {
    "pc" : [ 0, 2, 4, 68, 11, 16 ],
    "co" : [ 0, 1, 2, 38, 6, 9 ]
  },
  "pageForModerationCount" : 0,
  "enableCluster" : false,
  "clusterRole" : null,
  "serversInCluster" : 1,
  "version" : "1.6.4778",
  "hostname" : "lab1"
}
}

Третий вариант предусматривает запрос по ссылке http://servername/api/statistiс?plain . При этом результат возвращается в виде таблицы:

siteCount=58
siteLicenseCount=692
siteActiveCount=38
serverCount=56
activeServicesT=0
activeServicesU=0
activeAccessPoints=0
apLicenseCount=2120
apCount=66
customerCount=94
sessionCount=198386
activeCustomerCount=0
flowsProcessedCount=2302
flowsNFProcessedCount=0
cmdsProcessedCount=1521193
ram=32
cpu=1
hdd=47
uptime=1082
adLogins=0
adClicks=0
smsCountS=621
smsCountV=522
callCountS=1725
callCountV=20
radiusResponse=0.008
mongoUptime=37829326
mongoOpsCounters=80053731
mongoPrimaryName=null
mongoRSetMembers=0
daysToExpiration=241
licenseServer1Reachable=1
licenseServer2Reachable=-1
endpointsLicensed=160000
endpointsUsed=55
licenseStatus=Лицензия истекает через 241 дней
serversInCluster=1
version=1.6.4778
domainCount=1
ldapConnectorsCount=1
ntlmConnectorsCount=1

Используемое приложение мониторинга может производить разбор ответа, строить графики, отсылать уведомления и так далее. Также существует способ получения статистики о работе системы WNAM внешним сторонним приложением, написанным на Perl.

2. Мониторинг внешними скриптами

Скрипты для мониторинга работы системы WNAM доступны по адресу http://www.netams.com/files/wnam/misc/perl-monitoring. Для их работы потребуются Perl-модули MongoDB, Email::Sender::Simple, Email::Sender::Transport::SMTP, Email::Simple::Creator, которые можно установить командой:

 cpan -i

Предварительно следует отредактировать скрипты, чтобы они содержали верные параметры доступа до БД, адреса отправителя/получателя электронной почты с уведомлениями и т.п. Далее следует добавить запуск этих скриптов в cron для того, чтобы оперативно получать отчеты о состоянии СМС-авторизации (отправка и подтверждение СМС) и работы системы WNAM и сопутствующих компонент в целом.

3. Мониторинг Zabbix

Шаблон для мониторинга WNAM wnam_zbx_template.yaml

Для использования шаблона требуется:

  1.  Включить на сервере WNAM в меню "Конфигурация" → "Общие настройки" чекбокс "Автоматизированный интерфейс (API)"
  2. Импортировать шаблон в zabbix. Настройка - Шаблоны - Импорт
  3. Присоединить шаблон к узлу сети сервера WNAM.

Шаблон zabbix считывает следующие метрики:

  • время работы WNAM сервера 
  • время работы mongodb сервера
  • время ответа RADIUS сервера
  • количество серверов доступа (NAS)
  • количество площадок
  • количество активных пользователей
  • количество активных точек доступа
  • общее число пользователей
  • общее число сессий
  • количество отправленных смс
  • количество авторизованных смс
  • количество подключенных AD/FreeIPA доменов
  • количество активных LDAP и NTLM коннекторов

  • No labels