Этот раздел подробно описывает пассивные и активные проверки, которые выполняются Zabbix агентом.
Для взаимодействия с Zabbix агентом Zabbix использует протокол на основе JSON.
Смотрите также: Подробная информация о протоколе Zabbix агента 2.
Пассивная проверка - это простой запрос данных. Zabbix сервер или прокси запрашивает какие-либо данные (например, загрузку CPU), и Zabbix агент отправляет результат обратно серверу.
Запрос сервера
За определением длины заголовка и данных, пожалуйста, обратитесь к подробностям протокола.
Ответ агента
Часть в квадратных скобках выше опциональна и отправляется только по неподдерживаемым элементам данных.
Например, для поддерживаемых элементов данных:
Для неподдерживаемых элементов данных:
Активные проверки требуют более сложной обработки. Агент сначала должен получить с сервера (или серверов) список элементов данных для независимой обработки.
Серверы для получения активных проверок перечислены в параметре 'ServerActive' файла конфигурации агента. Частота запросов данных проверок настраивается параметром 'RefreshActiveChecks' в этом же файле конфигурации. Однако, если обновление активных проверок завершится с ошибкой, запрос повторится через 60 секунд (жёстко задано в коде).
Затем агент периодически отправляет новые значения на сервер(ы).
Если агент находится за брандмауэром, вы можете рассмотреть возможность использования исключительно Активных проверок, т.к. в этом случае вам не понадобится менять настройки брандмауэра для разрешения начальных входящих соединений.
Запрос агента
Запрос на активные проверки используется для получения списка активных проверок, обрабатываемых агентом. Этот запрос отсылается агентом после старта и затем с интервалом RefreshActiveChecks .
{
"request": "active checks",
"host": "Zabbix server",
"host_metadata": "mysql,nginx",
"hostinterface": "zabbix.server.lan",
"ip": "159.168.1.1",
"port": 12050
}
Поле | Тип | Обязательный | Значение |
---|---|---|---|
request | строка | да | active checks |
host | строка | да | Имя узла сети. |
host_metadata | строка | нет | Значение метрики параметра конфигурации HostMetadata или HostMetadataItem. |
hostinterface | строка | нет | Значение метрики параметра конфигурации HostInterface или HostInterfaceItem. |
ip | строка | нет | Первый IP параметра конфигурации ListenIP, если задан. |
port | число | нет | Значение параметра конфигурации ListenPort, если задано и не является портом, прослушиваемым агентом по умолчанию. |
Ответ сервера
Ответ активных проверок посылается сервером обратно агенту после обработки запроса на активные проверки.
{
"response": "success",
"data": [
{
"key": "log[/home/zabbix/logs/zabbix_agentd.log]",
"key_orig": "log[/home/zabbix/logs/zabbix_agentd.log]",
"itemid": 1234,
"delay": "30s",
"lastlogsize": 0,
"mtime": 0
},
{
"key": "agent.version",
"key_orig": "agent.version",
"itemid": 5678,
"delay": "10m",
"lastlogsize": 0,
"mtime": 0
}
]
}
Поле | Тип | Обязательный | Значение | |
---|---|---|---|---|
response | строка | да | success | failed |
|
info | строка | нет | Сообщение об ошибке в случае сбоя. | |
data | массив объектов | нет | Элементы данных для активных проверок. | |
key | строка | нет | Ключ элемента данных с раскрытыми макросами. | |
key_orig | строка | нет | Ключ элемента данных с нераскрытыми макросами. | |
itemid | число | нет | Идентификатор элемента данных. | |
delay | строка | нет | Интервал обновления элемента данных. | |
lastlogsize | число | нет | Последний размер файла журнала (lastlogsize) элемента данных. | |
mtime | число | нет | Отметка времени последнего обновления (mtime) элемента данных. | |
refresh_unsupported | число | нет | Интервал обновления неподдерживаемого элемента данных. | |
regexp | массив объектов | нет | Глобальные регулярные выражения. | |
name | строка | нет | Имя глобального регулярного выражения. | |
expression | строка | нет | Глобальное регулярное выражение. | |
expression_type | число | нет | Тип глобального регулярного выражения. | |
exp_delimiter | строка | нет | Разделитель глобального регулярного выражения. | |
case_sensitive | число | нет | Признак чувствительности к регистру глобального регулярного выражения. |
Сервер обязан ответить успешно.
Например:
Обратите внимание, что при использовании активных проверок (чувствительные) данные конфигурации могут стать доступными лицам, имеющим доступ к порту траппера Zabbix сервера. Это возможно, так как любой может представиться активным агентом и запросить данные конфигурации элементов данных; аутентификация не производится, если только вы не используете опции шифрования.
Агент отправляет
Запрос агента с данными содержит собранные значения элементов данных.
{
"request": "agent data",
"data": [
{
"host": "Zabbix server",
"key": "agent.version",
"value": "2.4.0",
"clock": 1400675595,
"ns": 76808644
},
{
"host": "Zabbix server",
"key": "log[/home/zabbix/logs/zabbix_agentd.log]",
"lastlogsize": 112,
"value": " 19845:20140621:141708.521 Starting Zabbix Agent [<hostname>]. Zabbix 2.4.0 (revision 50000).",
"clock": 1400675595,
"ns": 77053975
}
],
"session": "1234456akdsjhfoui"
}
Поле | Тип | Обязательный | Значение | |
---|---|---|---|---|
request | строка | да | agent data |
|
session | строка | да | Уникальный идентификатор сессии, генерируемый каждый раз при старте агента. | |
data | массив объектов | да | Значения элементов данных. | |
id | число | да | Идентификатор значения (возрастающий счётчик, используемый для проверки дубликатов значений в случае сетевых проблем). | |
host | строка | да | Имя узла сети. | |
key | строка | да | Ключ элемента данных. | |
value | строка | нет | Значение элемента данных. | |
lastlogsize | число | нет | Последний размер журнала (lastlogsize) элемента данных. | |
mtime | число | нет | Отметка времени последнего обновления (mtime) элемента данных. | |
state | число | нет | Состояние элемента данных. | |
source | строка | нет | Источник (source) значения журнала событий. | |
eventid | число | нет | Идентификатор (eventid) значения журнала событий. | |
severity | число | нет | Важность (severity) значения журнала событий. | |
timestamp | число | нет | Отметка времени (timestamp) значения журнала событий. | |
clock | число | да | Отметка времени значения (секунд с начала эпохи). | |
ns | число | да | Наносекунды отметки времени значения. |
Каждому значению назначается виртуальный ID. Значение ID - простой возрастающий счётчик, уникальный в пределах одной сессии данных (идентифицируемой токеном сессии). Этот ID используется, чтобы отбрасывать дубликаты значений, которые могли быть отосланы в средах с плохой связью.
Ответ сервера
Ответ на данные агента отсылается сервером назад агенту после обработки запроса агента с данными.
Поле | Тип | Обязательный | Значение |
---|---|---|---|
response | строка | да | success | failed |
info | строка | да | Результаты обработки элементов данных. |
Если отправка некоторых значений завершилась неудачей на сервере (например, по причине того, что узел сети или элемент данных был деактивирован или удалён), агент не будет повторять отправку этих элементов данных.
Например:
Обратите внимание на то, как в примере выше указывается неподдерживаемое состояние для vfs.fs.size[/nono] при помощи значения "state", равного 1, и сообщения об ошибке в свойстве "value".
Сообщение об ошибке будет обрезано до 2048 символов на стороне сервера.
Zabbix воспринимает до 16 МВ XML данных, закодированных в Base64, но одиночное декодированное значение не должно быть длиннее 64 КБ, в противном случае значение будет обрезано до 64 КБ в процессе декодирования.