Ad Widget

Collapse

Zabbix UserParameters - отдать несколько ключей?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Zmx
    Junior Member
    • Jun 2020
    • 4

    #1

    Zabbix UserParameters - отдать несколько ключей?

    Коллеги, день добрый.
    Попытаюсь несколько сумбурно описать задачу, возможно в процессе описания - придут умные мысли :-).
    Дано:
    1. Zabbix Agent.
    2. Powershell скрипт, для простоты. Скрипт возвращает значения, в зависимости от того, какой ключ мы ему передаем (парсит args[]).
    Соответственно, пока количество значений - три, каждый элемент дергает скрипт со своим параметром, и получает ответ.
    Однако, возникла необходимость, при помощи данного скрипта передать в заббикс около 30 значений.
    Проблема заключается в том, что получать такое количество значений "в лоб", кажется мне грязным решением, во вторых - скрипт открывает ssh подключение, для снятия данных.

    Что имеем сейчас : три ключа в заббиксе, дергаю один и тот же скрипт, с разными параметрами, скрипт каждый раз идет по ssh, и отдает обратно значения.
    Что хотим : однократно подключиться по ssh, получить 3-5-10 значений, и как то за один раз - отдать в заббикс весь набор ключей, пусть будет как в нашем случае - три.

    Адекватных решений мне пока неизвестно, максимум - дергать скрипт по шедулеру, результат складывать в лог, а далее - заббиксом лог парсить, но вариант тоже довольно грязный.

    Соответственно вопрос : как это делается у нормальных людей?
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Вариант 1 (более древний): дёргать скрипт, который одно из значений возвращает сам, а остальные N значений отсылает серверу Zabbix при помощи утилиты zabbix_sender (обычно, скармливая ей через конвейер в stdin, когда zabbix_sender вызывается с ключами "-i -"). Для остальных значений на стороне сервера Zabbix создаются элементы данных с типом "Zabbix trapper".

    Вариант 2 (более новый): скрипт возвращает назад не одно значение, а сразу целую "портянку", содержащую N значений, сформатированных каким-либо образом (JSON, XML, CSV и т.п.). Это значение помещается в элемент данных с типом данных "Text" и коротким сроком хранения (возможно, даже нулевым) и напрямую не используется. Зато для каждого из N переданных значений создаётся свой зависимый элемент данных (dependent item), в правилах препроцессинга к которому указывается, как именно его извлекать из исходной "портянки" (JSONPath, XPath, регулярные выражения и т.п.).

    Comment

    Working...