Перейти к основному содержимому
Версия: v2.2.x

Рекомендуемые параметры для мониторинга здоровья AxelNAC

В данной статье описаны параметры, которые рекомендуется отслеживать для поддержки работоспособности модулей и служб, используемых в системе контроля доступа к сети AxelNAC, а также приведено краткое описание процесса настройки Zabbix-агента.

к сведению

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

Предварительная конфигурация Zabbix-агента

внимание

Перед выполнением конфигурации во избежание сброса уже существующих настроек убедитесь, что в конфигурационном файле /etc/redis/redis.conf закомментирована строка rename-command CONFIG "".

Для того чтобы отслеживать метрики параметров системы, необходимо в первую очередь сконфигурировать Zabbix-агент на стороне инсталляции AxelNAC. Для этого выполните следующие действия:

Шаг 1. Скачайте утилиту zabbix agent 2 и переместите ее в каталог /home/anac.

Шаг 2. Выполните установку агента с помощью следующей команды:

apt install ./zabbix-agent2_1_7.0.5+dfsg-1~bpo12+1.2+b2_amd64.deb

Шаг 3. Сконфигурируйте агент, заполнив конфигурационный файл /etc/zabbix/zabbix_agent2.conf следующим образом:

#Укажите IP-адрес сервера для мониторинга:
Server=10.31.205.204
#Укажите порт для запросов статуса по HTTP (для Zabbix используется значение по умолчанию - 10049):
StatusPort=10049
#Укажите IP-адрес сервера активных проверок:
ServerActive=10.31.205.204
#Укажите имя хоста агента так, как он будет называться на сервере (данный параметр понадобится для активных проверок):
Hostname=nacrvv206
#Остальные параметры менять не рекомендуется. Порт для соединения с сервером используется по умолчанию - 10050.

Шаг 4. Добавьте пользователя zabbix в группу docker, выполнив следующую команду в bash:

usermod -aG docker zabbix

Шаг 5. Активируйте постоянные разрешения для iptables, внеся в конфигурационный файл /usr/local/pf/conf/iptables-input-management.conf.inc следующие строки:

-A input-management-if --protocol tcp --match tcp --dport 10050 -s <IP-АДРЕС_СЕРВЕРА_ZABBIX> --jump ACCEPT
-A input-management-if --protocol tcp --match tcp --dport 10049 -s <IP-АДРЕС_СЕРВЕРА_ZABBIX> --jump ACCEPT
-A input-management-if --protocol tcp --match tcp --dport 1027 -s <IP-АДРЕС_СЕРВЕРА_ZABBIX> --jump ACCEPT

Шаг 6. Для немедленного применения разрешений выполните команду:

iptables -A input-management-if --protocol tcp --match tcp --dport 10050 -s <IP-АДРЕС_СЕРВЕРА_ZABBIX> --jump ACCEPT
iptables -A input-management-if --protocol tcp --match tcp --dport 10049 -s <IP-АДРЕС_СЕРВЕРА_ZABBIX> --jump ACCEPT
iptables -A input-management-if --protocol tcp --match tcp --dport 1027 -s <IP-АДРЕС_СЕРВЕРА_ZABBIX> --jump ACCEPT

Шаг 7. Настройте пользователя в базе данных:

mysql
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<УКАЖИТЕ ПАРОЛЬ>';
GRANT PROCESS, SHOW DATABASES, BINLOG MONITOR, SHOW VIEW, REPLICATION CLIENT ON *.* TO `zbx_monitor`@`%`;
flush privileges;
внимание

Данный шаг необходимо выполнять только на первом настраиваемом узле кластера. После применения настроек пользователь будет создан для всех узлов и попытка создать уже существующего пользователя приведет к ошибке.

Шаг 8. Для применения настроек перезапустите Zabbix-агент, выполнив следующую команду:

systemctl restart zabbix-agent2.service

Настройка параметров для мониторинга на сервере

Для того чтобы настроить параметры для мониторинга, перейдите в панель мониторинга по ссылке http://<IP-адрес_Zabbix:8080> и выполните следующие действия:

Шаг 1. Авторизуйтесь в панели мониторинга.

Шаг 2. Перейдите в раздел Monitoring → Hosts и нажмите Create host в правом верхнем углу страницы.

Шаг 3. На вкладке Host в строке Host name укажите имя хоста так, как было указано в настройках агента (в нашем примере — nacrvv206).

Шаг 4. В строке Templates добавьте стандартные шаблоны:

  • Docker by Zabbix agent 2;
  • HAProxy by HTTP;
  • Linux by Zabbix agent;
  • MySQL by Zabbix agent 2;
  • Redis by Zabbix agent 2;
  • Systemd by Zabbix agent 2.

Шаг 5. В строке Host groups укажите следующие группы:

  • Applications;
  • Databases;
  • Linux servers.

Шаг 6. В строке Interfaces нажмите Add и выберите значение Agent. Укажите IP-адрес и/или DNS-имя хоста, порт — 10050 и выберите по какому параметру выполнять подключение — IP или DNS.

Шаг 7. Активируйте чекбокс в строке Enabled.

Шаг 8. Перейдите на вкладку Macros, где задаются значения переменных, которые требуются в шаблонах. Установите следующие значения:

MacroValueDescription
{$HAPROXY.STATS.HOST}10.31.205.206HAPROXY. IP хоста
{$HAPROXY.STATS.PORT}1027HAPROXY. Порт
{$HAPROXY.USERNAME}adminHAPROXY. Имя пользователя (берется из /usr/local/pf/conf/haproxy-db.conf)
{$HAPROXY.PASSWORD}packetfenceHAPROXY. Пароль (берется из /usr/local/pf/conf/haproxy-db.conf)
{$MYSQL.HOST}10.31.205.206MYSQL. IP хоста
{$MYSQL.PORT}3306MYSQL. Порт
{$MYSQL.DSN}tcp://10.31.205.206:3306MYSQL. Data Source Name — строка, содержащая параметры подключения к источнику данных
{$MYSQL.USER}zbx_monitorMYSQL. Имя пользователя (который создавали выше при создании пользователя в mysql)
{$MYSQL.PASSWORD}zabbixMYSQL. Пароль (который создавали выше при создании пользователя в mysql)

Шаг 9. На сервере, при необходимости, можно настроить правило для автоматического заведения устройств с агентами в нужном сетевом сегменте.

Конфигурация пользовательских параметров мониторинга

В данном разделе описана настройка пользовательских параметров мониторинга с помощью Zabbix-агента.

Мониторинг отдельной службы

Для мониторинга отдельной системной службы необходимо выполнить следующие действия:

Шаг 1. Перейдите в раздел Data collection → Hosts и нажмите Items справа от имени сервера для мониторинга, затем нажмите Create item в правом верхнем углу страницы.

Шаг 2. Задайте имя службы в строке Name. В качестве примера рассмотрим службу syslog-ng.

Шаг 3. В строке Key укажите, по какому параметру выполнять мониторинг. В примере мы рассматриваем активность службы syslog-ng, поэтому необходимо выбрать ключ proc.num[syslog-ng].

Шаг 4. В строке Update interval установите период обновления данных. Рекомендуемое значение — 10s.

В данном случае будет отображаться одно из двух значений: 0 — служба не запущена, 1 — служба активна.

Рекомендуется отслеживать активность всех системных служб AxelNAC:

  • packetfence-base.slice;
  • packetfence-cluster.target;
  • packetfence-httpd.webservices.service;
  • packetfence-pffilter.service;
  • packetfence-haproxy-portal.service;
  • packetfence-ip6tables.service;
  • packetfence-netdata.service;
  • packetfence-httpd.portal.service;
  • packetfence-tracking-config.path;
  • packetfence-pfacct.service;
  • packetfence-haproxy-db.service;
  • packetfence-pfqueue.service;
  • packetfence-pfconnector-client.service;
  • packetfence-pfdns.service;
  • packetfence-haproxy-admin.service;
  • packetfence-redis-cache.service;
  • packetfence-pfipset.service;
  • packetfence-pfcron.service;
  • packetfence-pfdhcp.service;
  • packetfence-base.target;
  • packetfence.slice;
  • packetfence-mariadb.service;
  • packetfence-radiusd-load_balancer.service;
  • packetfence-radsniff.service;
  • packetfence-pfstats.service;
  • packetfence-mysql-probe.service;
  • packetfence-pfpki.service;
  • packetfence-keepalived.service;
  • packetfence-redis_queue.service;
  • packetfence-api-frontend.service;
  • packetfence-galera-autofix.service;
  • packetfence-pfconnector-server.service;
  • packetfence-httpd.dispatcher.service;
  • packetfence-httpd.admin_dispatcher.service;
  • packetfence-winbindd.service;
  • packetfence-pfperl-api.service;
  • packetfence-httpd.aaa.service;
  • packetfence-pfdhcplistener.service;
  • packetfence-tracking-config.service;
  • packetfence-config.service;
  • packetfence-radiusd-auth.service;
  • packetfence.target;
  • packetfence-proxysql.service;
  • packetfence-pfsso.service;
  • packetfence-pfdetect.service;
  • packetfence-radiusd-cli.service;
  • packetfence-radiusd-eduroam.service;
  • packetfence-redis_ntlm_cache.service;
  • packetfence-snmptrapd.service;
  • packetfence-tc.service.

Мониторинг вывода утилиты radmin

Утилита radmin показывает статистику службы freeradius с момента ее запуска.

Пример:

radmin> stats client auth
requests 101
responses 101
accepts 101
rejects 0
challenges 0
dup 0
invalid 0
malformed 0
bad_authenticator 0
dropped 0
unknown_types 0
conflicts 0
unresponsive_child 0
last_packet 1763643687
elapsed.1us 0
elapsed.10us 0
elapsed.100us 0
elapsed.1ms 0
elapsed.10ms 82
elapsed.100ms 19
elapsed.1s 0
elapsed.10s 0

Для мониторинга статистики с помощью Zabbix выполните следующие действия:

Шаг 1. В AxelNAC перейдите в директорию /usr/local/bin/ и создайте скрипт zabbix_radmin_stats.sh со следующим содержимым:

#!/bin/bash
output=$(radmin -f /usr/local/pf/var/run/radiusd.sock -e 'stats client auth' 2>/dev/null)
elapsed1ms=$(echo "$output" | grep "elapsed.1ms" | awk '{print $2}')
elapsed10ms=$(echo "$output" | grep "elapsed.10ms" | awk '{print $2}')
elapsed100ms=$(echo "$output" | grep "elapsed.100ms" | awk '{print $2}')
elapsed1s=$(echo "$output" | grep "elapsed.1s" | awk '{print $2}')
elapsed10s=$(echo "$output" | grep "elapsed.10s" | awk '{print $2}')
echo "radmin.elapsed1ms $elapsed1ms"
echo "radmin.elapsed10ms $elapsed10ms"
echo "radmin.elapsed100ms $elapsed100ms"
echo "radmin.elapsed1s $elapsed1s"
echo "radmin.elapsed10s $elapsed10s"

Шаг 2. В конфигурационный файл /etc/zabbix/zabbix_agent2.conf добавьте следующую строку:

UserParameter=radmin.stats[*],/usr/local/bin/zabbix_radmin_stats.sh | grep "$1" | cut -d' ' -f2

Шаг 3. Для применения изменений конфигурационного файла перезапустите агент:

systemctl restart zabbix-agent2

Шаг 4. В панели мониторинга настройте Item для каждого значения elapsedXXms с помощью ключа radmin.stats[значение].

Подробный процесс конфигурации Item описан в разделе выше.