Запрос данных CLI в заббикс

Шаблоны Zabbix для сетевых устройств
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 547
Стаж: 3 года 9 месяцев
Откуда: Вологодская область
Поблагодарили: 24 раза
Контактная информация:

Запрос данных CLI в заббикс

Сообщение Артём Мамзиков »

Пример запроса данных из командной строки CLI

На примере D-Link DFL860E нужно выбрать открытые порты 25 и 443.
Если внешний IP адрес повторяется более 15 раз в таблице, срабатывает триггер.

CLI обычно работает под telnet или ssh

Создадим пользователя с паролем и правами auditors на DFL860E.

Формат запроса будет
Список соединений с отслеживаемым состоянием.
Использование
connections -show [-num=<n>] [-verbose] [-srciface=<interface>][-destiface=<interface>] [-protocol=<name/num>][-srcport=<port>] [-destport=<port>] [-srcip=<ip addr>][-destip=<ip addr>]
connections -show -num=100 -verbose -destport=25

connections - Список соединений.
-show Отображение соединений.
-num=<n> Ограничение списка до <n> соединений. По умолчанию: 20.
-verbose Подробная информация.
-srciface=<interface> Фильтрация на интерфейсе источника.
-destiface=<interface> Фильтрация на интерфейсе назначения.
-protocol=<name/num> Отображение только указанного IP-протокола.
-srcport=<port> Отображение только указанного TCP/UDP-порта источника.
-destport=<port> Отображение только указанного TCP/UDP-порта назначения.
-srcip=<ip addr> Фильтрация IP-адреса источника.
-destip=<ip addr> Фильтрация IP-адреса назначения.


Отображение соединений.
connections -close [-all] [-srciface=<interface>][-destiface=<interface>] [-protocol=<name/num>][-srcport=<port>] [-destport=<port>] [-srcip=<ip addr>][-destip=<ip addr>]

Завершение соединений.
Опции
-close Завершить все соединения, соответствующие FilterExpression (Только с правами Администратора).
-all Отметить все соединения.
-srciface=<interface> Фильтрация на интерфейсе источника.
-destiface=<interface> Фильтрация на интерфейсе назначения.
-protocol=<name/num> Отображение только указанного IP-протокола.
-srcport=<port> Отображение только указанного TCP/UDP-порта источника.
-destport=<port> Отображение только указанного TCP/UDP-порта назначения.
-srcip=<ip addr> Фильтрация IP-адреса источника.
-destip=<ip addr> Фильтрация IP-адреса назначения.

logout -выход

В Zabbix Ключи имеют следующий вид

ssh.run[<уникальное короткое описание>,<ip>,<порт>,<кодировка>]
Проверки через SSH

telnet.run[<уникальное короткое описание>,<ip>,<порт>,<кодировка>]
Проверки через Telnet

Для 25 порта получаем следующий ключ
ssh.run[cli-25-port,{HOST.CONN},22,utf-8]
CLI - запрос
CLI - запрос
CLI - запрос по ssh
CLI - запрос по ssh

Пример Шаблона
D-Link DFL860E CLI.7z
D-Link DFL860E CLI
(1.58 КБ) 1 скачивание
Пример последних данных
Пример последних данных
СКАЧАТЬ
25.11.2022-D-Link DFL860E CLI.zip
25.11.2022-D-Link DFL860E CLI.zip
(4.1 КБ) 0 скачиваний
Шаблон D-Link DFL860E CLI
Шаблон D-Link DFL860E CLI
Макросы:
Кол-во одинаковых IP срабатывание триггера
{$KOLSMTP} > 15
{$KOLHTTP} > 15

Группы элементов данных
CLI

Элементы данных
Шаблон D-Link DFL860E CLI Элементы данных
Шаблон D-Link DFL860E CLI Элементы данных
Список соединений 25 порт TCP/UDP-назначения Destination: Кол-во Одинаковых IP на 25 порт Триггеры 1 number-of-identical-ip-25 90d Зависимый элемент данных CLI Активировано

Список соединений 25 порт TCP/UDP-назначения Destination ssh.run[cli-25-port,{HOST.CONN},22,utf-8] 1m 90d SSH агент CLI Активировано

Список соединений 443 порт ssh.run[cli-443-port,{HOST.CONN},22,utf-8] 1m 90d SSH агент CLI Активировано

Список соединений 443 порт: Кол-во Одинаковых IP на 443 порт Триггеры 1 number-of-identical-ip-443 90d Зависимый элемент данных CLI Активировано

Список соединений 25 порт telnet.run[cli-25-port,{HOST.CONN},22,utf-8] 1h 90d TELNET агент CLI Деактивировано

Кол-во Одинаковых IP на 25 порт ssh.run[cli-25-port-obr,{HOST.CONN},22,utf-8] 1m 90d SSH агент CLI Деактивировано

Кол-во Одинаковых IP на 443 порт ssh.run[cli-443-port-obr,{HOST.CONN},22,utf-8] 1m 90d SSH агент CLI Деактивировано

Список соединений 25 порт TCP/UDP-назначения Destination LAN ssh.run[cli-25-port-des,{HOST.CONN},22,utf-8] 30s 90d SSH агент CLI Деактивировано

Обратное соединений 25 порт TCP/UDP-Source/Источник LAN ssh.run[cli-25-port-source,{HOST.CONN},22,utf-8] 30s 90d SSH агент CLI Деактивировано

Зависимый Элемент данных
Кол-во одинаковых IP
Кол-во одинаковых IP
Кол-во одинаковых IP предобработка
Кол-во одинаковых IP предобработка
Кол-во одинаковых IP
Кол-во одинаковых IP
Получаем последние данные
Последние данные количество одинаковых IP внешних подключено на 25 порт
Последние данные количество одинаковых IP внешних подключено на 25 порт
Триггер
Шаблон D-Link DFL860E CLI Триггеры
Шаблон D-Link DFL860E CLI Триггеры
Средняя Кол-во Одинаковых IP на 25 порт больше {$KOLSMTP} {D-Link DFL860E CLI:number-of-identical-ip-25.iregexp(check)}=1 Активировано

Средняя Кол-во Одинаковых IP на 443 порт больше {$KOLHTTP} {D-Link DFL860E CLI:number-of-identical-ip-443.iregexp(check)}=1 Активировано

Более подробно Предобработка JavaScript - JS в Zabbix

Не плохо было бы сделать множественный триггер и вывод ip адреса который вызвал срабатывания триггера, но так как тут массив строк так не выйдет. Либо делать что то в виде обнаружения lld элементы которые превышено число одинаковых IP и сразу же триггер, обнаружение каждую минуту, если строка пропала элемент тут же удаляется с триггером.
Или построчно скидывать данные и множественный триггер.
количество слов: 381
Партнёрская ссылка на Хостинг Beget https://beget.com/p937243

Вернуться в «Коммутаторы Маршрутизаторы Роутеры»