Модуль Icinga для отображения статистики VPN на Cisco ASA
Общая
Модуль на Bash позволяющий получить статистику по VPN подключениям к Cisco ASA
Модуль использует SSH подключение и дополнительно требует sshpass
Для тестов использовалась Debian 9, Icinga2 r2.11.3-1, ASA 5550 Version 9.1(7)12.
Параметры скрипта:
[-A] - путь к id_rsa файлу;
[-H] - имя или IP-адрес узла;
[-C] - команда для исполнения:
vpnamount - статистика по VPN подключениям;
vpnusers - список установленных соединений.
Синтаксис:
check_asa_vpn.sh -H ip/hostname -A /path/to/id_rsa -U ASA_Username -P ASA_Enable_pass -C Check_command
Скрип с выводом на русском доступен для загрузки на https://l.itcrowd.top/f/ec0e1c5a8b794598be8e/
Download link for plugin with check output in english: https://l.itcrowd.top/f/81a5a024b6674e17a18e/
Установка sshpass
apt update apt install sshpass
Подготовка Cisco ASA
Для подключения по SSH используется ключ id_rsa. На Cisco ASA необходимо создать нового пользователя и добавить ему Public Key, расположенный в .ssh папке профиля пользователя от чьего имени запущена система мониторинга Icinga2. Так же необходимо разрешить SSH соединение с определенной сети или IP-адреса.
https://itcrowd.top/icinga-asa-vpn#sigProIdc58bd2efed
Добавление скрипта проверки
Скрипт помещаем в /usr/lib/nagios/plugins
Убедиться в работоспособности скрипта можно из терминала выполнив следующее указав свои параметры и нужную из двух команд проверки (vpnusers или vpnamount):
sudo -u имя_пользователя env - /usr/lib/nagios/plugins/./check_vpn.sh -H адрес_cisco_asa -A путь_до_id_rsa_файла -U пользователь_ASA -P ASA_Enable_pass -C команда_проверки
При выполнении команды vpnusers из консоли будет отображен HTML-код вывода
Настройка для работы в Icinga2
В файл /etc/icinga2/conf.d/commands.conf добавляем:
object CheckCommand "check_vpn" { import "plugin-check-command" command = [ PluginDir + "/check_asa_vpn.sh" ] arguments = { "-H" = "$host.address$" "-A" = "$rsa_file$" "-U" = "$sshuser_name$" "-P" = "$ciscoenable_password$" "-C" = "$vpn_check$" } vars.rsa_file = "ПУТЬ ДО id_rsa" vars.sshuser_name = "ИМЯ ПОЛЬЗОВАТЕЛЯ CISCO ASA" vars.ciscoenable_password = "ASA ENABLE PASSWORD" vars.vpn_check = "$service.vars.vpncheckcommand$" }
В файл /etc/icinga2/conf.d/services.conf добавляем:
apply Service "VPN Amount" { display_name = "Количество сессий VPN" import "check_vpn" check_command = "check_vpn" vars.vpncheckcommand = "vpnamount" assign where host.vars.vpnconnect == "true" } apply Service "VPN Users" { display_name = "Подключения к VPN" import "check_vpn" check_command = "check_vpn" enable_perfdata = false vars.vpncheckcommand = "vpnusers" assign where host.vars.vpnconnect == "true" }
В файл /etc/icinga2/conf.d/templates.conf добавляем:
template Service "check_vpn" { import "generic-service" check_interval = 1m retry_interval = 3m }
В конфигурацию узла необходимо добавляем:
vars.vpnconnect = "true"
Далее проверяем конфигурацию service icinga2 checkconfig и если все хорошо то перезапускаем службу service icinga2 restart
https://itcrowd.top/icinga-asa-vpn#sigProId55cb0afe83
- Просмотров: 7686