В этой статье я приведу примеры мониторинга Accel-ppp в Zabbix.
Допустим Zabbix-agent установлен на сервере с Accel-ppp.
Смотрите также мои статьи на тему Zabbix.
Если серверу с Accel-ppp присвоен стандартный шаблоном Linux, то отключим в шаблоне или для узла сети «Network interface discovery», иначе например при большом количестве ipoe интерфейсов и когда Zabbix будет постоянно их сканировать, то будут проблемы с производительностью.
Откроем файл конфигурации Zabbix-agent:
sudo nano /etc/zabbix/zabbix_agentd.conf
Приведу несколько примеров получения различных данных (добавим эти строки в файл конфигурации Zabbix-agent):
# active sessions
UserParameter=accelcmd_onlinesessions,accel-cmd -H192.168.2.1 -P password show stat | grep -A 3 ^ipoe: | grep "active"| tr -d " "| cut -f2 -d ":"
# starting sessions
UserParameter=accelcmd_startsessions,accel-cmd -H192.168.2.1 -P password show stat | grep -A 3 ^ipoe: | grep "starting"| tr -d " "| cut -f2 -d ":"
# auth lost
UserParameter=accelcmd_authlost,accel-cmd -H192.168.2.1 -P password show stat | grep -A 12 ^radius | grep "auth lost"| tr -d " "| cut -f2 -d ":" | cut -f1 -d "/"
# interim lost
UserParameter=accelcmd_interimlost,accel-cmd -H192.168.2.1 -P password show stat | grep -A 12 ^radius | grep "interim lost"| tr -d " "| cut -f2 -d ":" | cut -f1 -d "/"
# acct lost
UserParameter=accelcmd_acctlost,accel-cmd -H192.168.2.1 -P password show stat | grep -A 12 ^radius | grep "acct lost"| tr -d " "| cut -f2 -d ":" | cut -f1 -d "/"
Теперь создадим шаблон, например с именем » Accel-ppp-template » и добавим в него элементы данных, приведу пример одного:
Имя: accelcmd_onlinesessions
Тип: Zabbix-agent
Ключ: accelcmd_onlinesessions
Тип информации: Числовой (целое положительное)
Единица измерения: %
Интервал обновления (в сек): 300
Для элементов данных у которых растет счетчик, например accelcmd_acctlost, обязательно укажем «Предварительная обработка: простое изменение».
Создадим для этого элемента данных график, а также триггер, например:
Имя: Сессий <1000 на Accel-cmd show stat
Выражение: {Accel-ppp-template:accelcmd_onlinesessions.last(0)}<1000
Имя: accelcmd_acctlost > 100
Выражение: {Accel-ppp-template:accelcmd_acctlost.last(0)}>100
Можно также подсчитывать маршруты в которых встречается слово ipoe, ppp и т.д., например:
UserParameter=ip_route_grep_ipoe,ip route | grep ipoe | wc -l
Можно посчитать количество запущенных процессов accel-ppp (могут попадать лишние данные, например если accel-ppp запущен через gdb, то будет выводится цифра 2):
UserParameter=ps_accel-ppp,ps ax | grep "/usr/local/sbin/accel-pppd" | egrep -v grep | wc -l
Думаю лучше будет считать процессы через ключ Zabbix агента «proc.num», например:
Имя: proc.num accel-pppd
Тип: Zabbix агент
Ключ: proc.num[accel-pppd]
А также добавить триггер срабатывающий если значение равно 0,
Выражение: {Accel-ppp-template:proc.num[accel-pppd].last(0)}=0
После редактирования файла конфигурации перезапустим Zabbix-agent чтобы применить изменения:
sudo service zabbix-agent restart
Аналогично можно наблюдать за количеством соединений на порты, количеством IP адресов в ipset, количеством созданных VLAN:
UserParameter=count_vlan,ip a | grep ': vlan' | wc -l
UserParameter=count_ip_in_ipset_denyip,ipset list denyip | /bin/grep '\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\{1,3\}' | /usr/bin/wc -l
UserParameter=count_active_connections_all,netstat -an | wc -l
UserParameter=count_active_connections_bgp,netstat -na | grep :179 | wc -l
UserParameter=count_active_connections_dhcp,netstat -na | grep :67 | wc -l
UserParameter=count_active_connections_cli_2000,netstat -na | grep :2000 | wc -l
UserParameter=count_active_connections_cmd_2001,netstat -na | grep :2001 | wc -l
UserParameter=count_active_connections_dae_3799,netstat -na | grep :3799 | wc -l
Считать количество ошибок в логах, например Quagga и уведомлять если ошибки появятся (для больших логов не рекомендую использовать):
UserParameter=count_error_in_bgpd_log,cat /var/log/quagga/bgpd.log |grep error |wc -l
Смотрите прочие мои статьи:
На тему Accel-ppp
На тему Zabbix
Мониторинг текущих RX и TX буферов сетевых интерфейсов в Zabbix
Мониторинг nf_conntrack в Zabbix