Внешние проверки

Внешняя проверка производится Сервером путем выполнения shell-скрипта или бинарного файла. Если узлы сети наблюдаются через Прокси, внешние проверки будут выполняться этим Прокси.

Внешние проверки не требуют на наблюдаемом узле сети какого-либо Агента.

Синтаксис ключа элемента данных:

скрипт[<параметр1>,<параметр2>,...]

где:

  • скрипт – имя shell-скрипта или бинарного файла;
  • параметр(ы) – опциональные параметры командной строки.

Если не требуется передавать какие-нибудь параметры скрипту, можно использовать:

script[]

или

script

Сервер проверит директорию, указанную для размещения внешних скриптов (параметр ExternalScripts в файле конфигурации Сервера), и выполнит заданную команду. Команда будет выполнена от имени пользователя, под которым запущен Сервер, так что любые права доступа или переменные среды должны быть обработаны в оболочке скрипта, если необходимо, и права доступа на команду должны разрешать этому пользователю выполнение скрипта. Для исполнения доступны только те команды, которые имеются в наличии в указанной директории.

Не следует часто использовать внешние проверки, так как каждый скрипт требует запуска Сервером дочернего процесса, а запуск множества скриптов может значительно снизить производительность Подсистемы.

Пример. Выполнение скрипта check_oracle.sh с первым параметром "-h". Второй параметр будет заменен IP-адресом или DNS-именем узла сети в зависимости от выбранного в настройках узла сети:

check_oracle.sh["-h","{HOST.CONN}"]

Если узел сети настроен на использование IP-адреса, то Подсистема выполнит:

check_oracle.sh "-h" "192.168.1.4"

Результат внешней проверки

Возвращаемым значением внешней проверки является стандартный вывод вместе со стандартным выводом ошибок, производимые проверкой.

Элемент данных, возвращающий текст (символ,​ журнал или текстовый тип данных), не станет неподдерживаемым в случае появления чего-либо в стандартном выводе ошибок.

Возвращаемое значение ограничено 16 МБ (включая конечные пробелы, которые усекаются); также применяются ограничения БД.

В случае если выполняемый скрипт не найден или Сервер не имеет необходимых прав на его запуск, данный элемент станет неподдерживаемым, и отобразится соответствующее сообщение об ошибке.

В случае превышения времени ожидания элемент данных также станет неподдерживаемым, будет отображено соответствующее сообщение об ошибке, а отдельный процесс этого скрипта будет ликвидирован.

Траппер-элементы данных

Траппер-элементы данных принимают входящие данные вместо опроса этих данных. Это полезно для любых данных, которые потребуется передать в Подсистему.

Для использования элемента данных траппера необходимо:

  • настроить траппер-элемент данных;
  • отправить данные в Подсистему.

Для настройки элемента данных траппер нужно:

  1. перейти в "Настройка → Узлы сети";
  2. нажать на Элементы данных в строке с узлом сети;
  3. нажать на Создать элемент данных;`
  4. ввести в окно параметры элемента данных (рисунок 6).

Рисунок 6 — Настройка траппера

Поля, которые требуют указания специфичной информации для траппер-элемента данных:

  • Тип – выбрать "Zabbix траппер";
  • Ключ – ввести ключ, который будет использован для распознавания элемента данных при отправке данных.
  • Тип информации – выбрать тип информации, который будет соответствовать формату отсылаемых данных.
  • Разрешенные хосты – список разделенных запятыми IP-адресов, опционально в CIDR-представлении, или DNS-имен. Если задано, входящие подключения будут приниматься только с перечисленных здесь узлов сети. Если включена поддержка IPv6, то 127.0.0.1, ::127.0.0.1, ::ffff:127.0.0.1 обрабатываются одинаково и ::/0 будет разрешать любые IPv4 или IPv6-адреса. 0.0.0.0/0 можно использовать, чтобы разрешить любые IPv4-адреса.

Примечание – Возможно, нужно будет подождать до 60 секунд после сохранения элемента данных, пока Сервер подхватит изменения из обновленного кэша конфигурации, прежде чем получится посылать значения.

В самом простом случае можно использовать утилиту zabbix_sender (см. п. Е.6) для отправки некоторого "тестового значения" траппер-элементу данных:

zabbix_sender -z <IP-адрес сервера> -p 10051 -s "New host" -k trap -o "тестовое значение"

Для отправки значения используются следующие ключи, чтобы указать:

  • -z – IP-адрес Сервера;
  • -p – номер порта Сервера (10051 по умолчанию);
  • -s – узел сети (следует убедиться, что используется "техническое" имя узла сети, вместо "видимого" имени);
  • -k – ключ элемента данных, который добавляется;
  • -o – фактически отправляемое значение.

​Процесс траппера не раскрывает макросы, которые используются в ключе элемента данных в попытке проверки наличия соответствующего ключа элемента данных на целевом узле сети.

Результат можно увидеть в "Мониторинг → Последние данные" (рисунок 7).

Рисунок 7 — Последние данные

Следует обратить внимание, что, если отправлено одно числовое значение, на графике отобразится горизонтальная линия с левого до правого края от точки времени значения.