Модуль 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
- Просмотров: 9259