6. Zabbix траппер
Обзор
Элементы данных типа trapper принимают входящие данные вместо того, чтобы запрашивать их. Это полезно для любых данных, которые вы хотите отправлять в Zabbix.
Конфигурация
Чтобы настроить элемент данных типа trapper:
- Перейдите в Сбор данных > Узлы сети.
- Нажмите Элементы данных в строке узла сети.
- Нажмите Создать элемент данных.
- Введите параметры элемента данных в форме настройки.

Все обязательные поля ввода отмечены красной звездочкой.
Поля, которые требуют специальной информации для элементов данных типа trapper:
| Type | Выберите "Zabbix trapper". |
| Key | Введите ключ, который будет использоваться для распознавания элемента данных при отправке данных на сервер Zabbix. |
| Type of information | Выберите тип информации, который будет соответствовать формату отправляемых данных. |
| Allowed hosts | Список IP-адресов, разделенных запятыми (при необходимости в нотации CIDR), или DNS-имен. Значение по умолчанию — user macro {$TRAPPER.ALLOWED_HOSTS}. По умолчанию {$TRAPPER.ALLOWED_HOSTS} равно 127.0.0.1,::1. Вы можете либо ввести адреса напрямую в поле, либо изменить значение макроса. Если оставить поле пустым, входящие соединения будут отклоняться со всех узлов сети. Если значение указано, входящие соединения будут приниматься только от перечисленных здесь узлов сети.Если включена поддержка IPv6, то '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' считаются эквивалентными, а '::/0' разрешит любой IPv4- или IPv6-адрес. '0.0.0.0/0' можно использовать, чтобы разрешить любой IPv4-адрес. Обратите внимание, что "IPv4-compatible IPv6 addresses" (префикс 0000::/96) поддерживаются, но считаются устаревшими согласно RFC4291. Пример: 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.
Отображение данных
После отправки данных вы можете перейти в Мониторинг > Последние данные, чтобы увидеть результат:

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