Пассивные и активные проверки Агентов
Этот раздел подробно описывает пассивные и активные проверки, которые выполняются Агентом.
Для взаимодействия с Агентом Подсистема использует протокол на основе JSON.
Пассивные проверки
Пассивная проверка – это простой запрос данных. Сервер или Прокси запрашивает какие-либо данные (например, загрузку CPU), и Агент отправляет результат обратно Серверу.
За определением длины заголовка и данных следует обратиться к подробностям протокола (см. п.Б.1).
- Запрос Сервера:
<ключ элемента данных>
Ответ Агента:
<ДАННЫЕ>[\0<ОШИБКА>]
где часть в квадратных скобках опциональна и отправляется только по неподдерживаемым элементам данных.
Например, для поддерживаемых элементов данных:
- сервер открывает TCP-соединение;
- сервер отправляет <ЗАГОЛОВОК><ДЛИНАДАННЫХ>agent.ping;
- Агент читает запрос и отвечает <ЗАГОЛОВОК><ДЛИНАДАННЫХ>1;
- сервер обрабатывает данные, чтобы извлечь значение "1";
- TCP-соединение закрывается.
Для неподдерживаемых элементов данных:
- сервер открывает TCP-соединение;
- сервер отправляет <ЗАГОЛОВОК><ДЛИНАДАННЫХ>vfs.fs.size/nono;
- Агент читает запрос и отвечает <ЗАГОЛОВОК><ДЛИНАДАННЫХ>ZBX_NOTSUPPORTED\0Cannot obtain filesystem information: 2 No such file or directory;
- сервер обрабатывает данные, меняет состояние элемента данных на неподдерживаемое с приведенным сообщением об ошибке;
- TCP-соединение закрывается.
Активные проверки
Активные проверки требуют более сложной обработки. Агент сначала должен получить с Сервера (или Серверов) список элементов данных для независимой обработки.
Серверы для получения активных проверок перечислены в параметре ServerActive файла конфигурации Агента. Частота запросов данных проверок настраивается параметром RefreshActiveChecks в этом же файле конфигурации. Если обновление активных проверок завершится с ошибкой, запрос повторится через 60 секунд (задано в коде).
Затем Агент периодически отправляет новые значения на Сервер(ы).
Если Агент находится за брандмауэром, можно рассмотреть возможность использования исключительно активных проверок, т.к. в этом случае не понадобится менять настройки брандмауэра для разрешения начальных входящих соединений.