Модуль Icinga для отображения статистики VPN на Cisco ASA

Main

Оценка: 97.83% - 6 Голосов

Общая

Модуль на 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://lib.itcrowd.top/f/56228a0d0124479fb641/

Download link for plugin with check output in english: https://lib.itcrowd.top/f/cfe44ddac5f4455fb594

Установка sshpass

apt update
apt install sshpass
 

Подготовка Cisco ASA

Для подключения по SSH используется ключ id_rsa. На Cisco ASA необходимо создать нового пользователя и добавить ему Public Key, расположенный в .ssh папке профиля пользователя от чьего имени запущена система мониторинга Icinga2. Так же необходимо разрешить SSH соединение с определенной сети или IP-адреса.

 

View the embedded image gallery online at:
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

View the embedded image gallery online at:
https://itcrowd.top/icinga-asa-vpn#sigProId55cb0afe83

Добавить комментарий


Logo