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

Main

Оценка: 96.9% - 10 Голосов

Общая

Модуль на 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 - список установленных соединений.

Синтаксис:

{code}

check_asa_vpn.sh -H ip/hostname -A /path/to/id_rsa -U ASA_Username -P ASA_Enable_pass -C Check_command

{lang}bash{highlight}{end-code}

Скрип с выводом на русском доступен для загрузки на https://l.itcrowd.top/f/ec0e1c5a8b794598be8e/

Download link for plugin with check output in english: https://l.itcrowd.top/f/81a5a024b6674e17a18e/

Установка sshpass

{code}

apt update
apt install sshpass

{lang}bash{highlight}{end-code} 

Подготовка 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/amp#sigProIdc58bd2efed

 

Добавление скрипта проверки

Скрипт помещаем в /usr/lib/nagios/plugins

Убедиться в работоспособности скрипта можно из терминала выполнив следующее указав свои параметры и нужную из двух команд проверки (vpnusers или vpnamount):

{code}

sudo -u имя_пользователя env - /usr/lib/nagios/plugins/./check_vpn.sh -H адрес_cisco_asa -A путь_до_id_rsa_файла -U пользователь_ASA -P ASA_Enable_pass -C команда_проверки

{lang}bash{highlight}{end-code}

При выполнении команды vpnusers из консоли будет отображен HTML-код вывода

 

Настройка для работы в Icinga2

В файл /etc/icinga2/conf.d/commands.conf добавляем:

{code}

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$"
}

{lang}bash{highlight}{end-code}

В файл /etc/icinga2/conf.d/services.conf добавляем:

{code}

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"

}

{lang}bash{highlight}{end-code}

В файл /etc/icinga2/conf.d/templates.conf добавляем:

{code}

template Service "check_vpn" {
     import "generic-service"
     check_interval = 1m
     retry_interval = 3m
}

{lang}bash{highlight}{end-code}

В конфигурацию узла необходимо добавляем:

{code}

      vars.vpnconnect = "true"

{lang}bash{highlight}{end-code}

 

Далее проверяем конфигурацию service icinga2 checkconfig и если все хорошо то перезапускаем службу service icinga2 restart

View the embedded image gallery online at:
https://itcrowd.top/icinga-asa-vpn/amp#sigProId55cb0afe83
  • Просмотров: 9746

You have no rights to post comments