Добрый день ! Была поставлена задача, чтобы таблица маршрутизации по каждому сетевому интерфейсу отображалась в Zabbix (используемая версия 4.4.6). Используемое ПО на серверах в основном от микрософта. Информации подходящий для моего случая в интернете очень мало или вообще нет. Находил только пару статей где человек хотел mac адреса мониторить, но и то под линухами. Еще бы не хотелось использовать стороннее ПО. Сразу хочу сказать что в забиксе не особо силен. Может найдутся у кого какие идеи, как это сделать. Может есть готовые решения или это не реальная задача.
Ad Widget
Collapse
Вывод таблицы маршрутизации
Collapse
X
-
Ответьте для себя на вопросы: что значит «отображалась в Zabbix»? Отображались где? Как значение элемента данных? Или как-то иначе?
Вариант простой - используя UserParameter выполнять route print или его аналоги (может в обертках скриптов для удаления лишнего) и далее использовать это текстовое значение.
Вариант сложный и замороченный: сделать LLD возвращающее список индексов интерфейсов и/или их алиасы ( например через powershell и Get-NetIpInterface) и для каждого интерфейса в отдельном элементе данных, опять же через UserParameter, получать таблицу маршрутизации “Get-NetRoute -InterfaceIndex”
Справку как все эти компоненты работают вы можете найти в официальной документацииLast edited by Hamardaban; 24-04-2020, 16:03. -
Спасибо за ответ. Хотелось бы конечно как проще. Можно и в виде текста. Информация нужна, так сказать для инвентаризации сервера. Где помимо его характеристик была бы еще эта информация. IP, MASK, DNS - эти данные я нашел как добавить. А как таблицу маршрутизации добавить ума не приложу. Есть командлет в PowerShell - "Get-NetRoute -AddressFamily IPv4 | ft -auto" Данные выводимые отличаются от того что если ввести "route print" Данные еще нужно как то распарсить и перевести в json формат. Тоже задачка. Искал решение сначала через wmi.get[root\cimv2 но такого ключа не существует.Ответьте для себя на вопросы: что значит «отображалась в Zabbix»? Отображались где? Как значение элемента данных? Или как-то иначе?
Вариант простой - используя UserParameter выполнять route print или его аналоги (может в обертках скриптов для удаления лишнего) и далее использовать это текстовое значение.
Вариант сложный и замороченный: сделать LLD возвращающее список индексов интерфейсов и/или их алиасы ( например через powershell и Get-NetIpInterface) и для каждого интерфейса в отдельном элементе данных, опять же через UserParameter, получать таблицу маршрутизации “Get-NetRoute -InterfaceIndex”
Справку как все эти компоненты работают вы можете найти в официальной документацииComment
-
Почему не существует? Вот wmi.getall[root\cimv2,SELECT * FROM Win32_IP4RouteTable]
мне просто было интересно что вы планируете сделать с полученной информацией? Какова конечная идея?Comment
-
Это как раз то что я искал, но не мог найти ! Не правильно я искал. Учиться, учиться и еще раз учиться. Забыл что можно получить нужную информацию из классов. Мне достаточно ее вывести на экран если зайти в мониторинг - последние данные, затем выбрать узел и нужный элемент. Я создал по вашим данным новый элемент в шаблоне и данные стали отображаться. Правда не совсем в читабельном виде. Знаю что есть предобработка в каждом элементе данных, но в читабельный вид что то не получается привести.Вложил скрины.Last edited by dialod; 24-04-2020, 21:54.Comment
-
Я не хочу создавать еще одну отдельную тему, может быть так было бы правильнее. Мне нужно выдернуть еще список установленного ПО. Нашел ключ wmi.get["root\cimv2","SELECT Name FROM Win32_Product"]. В Zabbix отображаетcя только одна первая строка. Это нормально ? и можно ли что то сделать что бы отображался весь список.Comment
-
Ну, самый простой, наверное, вариант - это сделать элемент данных с типом "Text" и ключом:
Только для этого на агентах должен быть включен в конфиге параметр "EnableRemoteCommands=1".Code:system.run["route -4 print"]
Более правильно - настраивать через UserParameter (ссылка), только, к сожалению, это тоже требует редактирования конфигов на агентах.
Comment
Comment