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

Обзор

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

Рекомендуется установить файлы MIB, чтобы гарантировать, что значения элементов данных отображаются в правильном формате. Без файлов MIB могут возникнуть проблемы с форматированием, например, отображение значений в HEX вместо UTF-8 или наоборот.

Настройка

Чтобы настроить траппер элемент данных:

  1. Перейдите в Сбор данныхУзлы сети.
  2. Нажмите Элементы данных в строке узла сети.
  3. Нажмите Создать элемент данных.
  4. Введите параметры элемента данных в диалоге настроек.

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

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

Тип (Type) Здесь выберите «Zabbix траппер (Zabbix trapper)».
Ключ (Key) Введите ключ, который будет использован для распознавания элемента данных при отправке данных.
Тип информации
(Type of information)
Выберите тип информации, который будет соответствовать формату отсылаемых данных.
Разрешённые хосты
(Allowed hosts)
Список разделённых запятыми 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.
Обратите внимание, что «IPv4-совместимые IPv6 адреса» (0000::/96 префикс) поддерживаются, но являются устаревшими согласно RFC4291 [en].

Пример: 127.0.0.1, 192.168.1.0/24, 192.168.3.1-255, 192.168.1-10.1-255, ::1,2001:db8::/32, mysqlserver1, zabbix.example.com, {HOST.HOST}

Поддерживаются пробелы, пользовательские макросы и макросы узлов сети {HOST.HOST}, {HOST.NAME}, {HOST.IP}, {HOST.DNS}, {HOST.CONN}.

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

Отправка данных

Отправка данных на Zabbix сервер или прокси возможна с помощью утилиты Zabbix sender или протокола Zabbix sender. Отправка данных на сервер Zabbix также возможна с использованием метода API history.push.

Zabbix sender

Для отправки данных на Zabbix сервер или прокси с помощью утилиты Zabbix sender вы можете запустить следующую команду, чтобы отправить некоторое «тестовое значение»:

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

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

  • -z — чтобы указать IP адрес Zabbix сервера
  • -p — чтобы указать номер порта Zabbix сервера (по умолчанию 10051)
  • -s — чтобы указать узел сети (убедитесь, что используете здесь «техническое» имя узла сети вместо «видимого» имени)
  • -k — чтобы указать ключ элемента данных, настроенного в траппер элементе данных
  • -o — чтобы указать отправляемое значение

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

Более подробную информацию о коммуникации между Zabbix sender'ом и Zabbix сервером или прокси смотрите в протоколе Zabbix sender'а.

history.push

Для отправки данных на сервер Zabbix с помощью метода API history.push вы можете сделать следующий запрос HTTP POST, содержащий некоторые тестовые значения:

curl --request POST \
         --url 'https://example.com/zabbix/api_jsonrpc.php' \
         --header 'Authorization: Bearer 0424bd59b807674191e7d77572075f33' \
         --header 'Content-Type: application/json-rpc' \
         --data '{"jsonrpc":"2.0","method":"history.push","params":[{"itemid":10600,"value":"test value 1"},{"itemid":10601,"value":"test value 2"},{"itemid":99999,"value":"test value 3"}],"id":1}'

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

{
           "jsonrpc": "2.0",
           "result": {
               "response": "success",
               "data": [
                   {
                       "itemid": "10600"
                   },
                   {
                       "itemid": "10601",
                       "error": "Item is disabled."
                   },
                   {
                       "error": "No permissions to referred object or it does not exist."
                   }
               ]
           },
           "id": 1
       }

Ошибки в данных ответа указывают на то, что отправка данных для определённых элементов данных не прошла проверку сервером Zabbix. Это может произойти по следующим причинам:

  • пользователь, отправляющий данные, не имеет права чтения на узел сети элемента данных;
  • узел отключён или находится в состоянии обслуживания без сбора данных;
  • элемент данных не существует или ещё не включён в кэш конфигурации сервера;
  • элемент данных отключён или его тип отличается от Zabbix траппер или HTTP агент (с включённой опцией «Активировать трапы»);
  • IP или DNS пользователя не указаны в списке Разрешённые хосты элемента данных;
  • другой элемент данных имеет значение с дублирующейся временной меткой на уровне наносекунд.

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

Более подробную информацию о работе с API Zabbix смотрите в API.

Отображение данных

После отправки данных вы можете перейти к МониторингПоследние данные, чтобы увидеть результат:

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