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

Все обязательные поля ввода отмечены красной звездочкой.
Поля, для которых требуется указать специальную информацию для элементов данных типа trapper:
| Type | Выберите "Zabbix trapper". |
| Key | Введите ключ, который будет использоваться для распознавания элемента данных при отправке данных на сервер Zabbix. |
| Type of information | Выберите тип информации, который будет соответствовать формату отправляемых данных. |
| Allowed hosts | Список IP-адресов, разделенных запятыми (при необходимости в нотации CIDR), или DNS-имен. Значением по умолчанию является пользовательский макрос {$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 можно выполнить следующую команду, чтобы отправить "test value":
zabbix_sender -z <server IP address> -p 10051 -s "New host" -k trap -o "test value"
Для отправки "test value" используются следующие параметры команды:
-z— чтобы указать IP-адрес сервера Zabbix-p— чтобы указать номер порта сервера Zabbix (10051 по умолчанию)-s— чтобы указать узел сети (убедитесь, что используется техническое, а не видимое имя узла сети)-k— чтобы указать ключ элемента данных, настроенного в элементе данных типа trapper-o— чтобы указать отправляемое значение
Процесс Zabbix trapper не раскрывает макросы, используемые в ключе элемента данных, при проверке существования соответствующего ключа элемента данных для целевого узла сети.
Для получения дополнительной информации о взаимодействии между 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. Это может произойти по следующим причинам:
- у пользователя, отправляющего данные, нет прав read на узел сети элемента данных;
- узел сети отключён или находится на обслуживании без сбора данных;
- элемент данных не существует или ещё не включён в кэш конфигурации сервера;
- элемент данных отключён или его тип отличается от Zabbix trapper или HTTP agent (с включённым trapping);
- IP-адрес или DNS пользователя не указан в списке Allowed hosts элемента данных;
- другой элемент данных уже имеет значение с дублирующейся временной меткой на уровне наносекунд.
Отсутствие ошибок указывает на то, что отправленные значения были приняты в обработку, которая включает предобработку (если она есть), обработку триггеров и сохранение в базе данных. Обратите внимание, что обработка принятого значения также может завершиться ошибкой (например, во время предобработки), в результате чего значение будет отброшено.
Дополнительную информацию о работе с Zabbix API см. в разделе API.
Отображение данных
После отправки данных вы можете перейти в Monitoring > Latest data, чтобы увидеть результат:

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