Zabbix-агент в Debian Bullseye и Zabbix-сервер 3.4
Содержание
Введение
В Zabbix-агенте и сервере, начиная с версии 4.2, изменилась структура JSON, используемая элементами данных низкоуровневого обнаружения. Теперь возвращаемые данные больше не помещаются вовнутрь структуры {"data": [...]}
, а возвращаются как есть, в виде массива [...]
.
В документации Руководство по Zabbix / Низкоуровневое обнаружение (LLD) / Низкоуровневое обнаружение (LLD) об этом написано следующее:
Обратите внимание, что начиная с Zabbix 4.2 формат JSON, возвращаемого правилами низкоуровневого обнаружения, изменился. Более не ожидается, что JSON будет содержать объект "data". Чтобы поддерживать новые возможности - такие как предобработку значений элементов данных и пользовательские пути к значениям LLD-макросов в документе JSON, - правила LLD теперь будут воспринимать обычный JSON, содержащий массив.
Поиск узлов с более свежим пакетом
В официальных репозиториях Debian Bullseye поставляется Zabbix-агент версии 5.0.8, который не совместим с серверами Zabbix версии 3.4. Для поиска проблемных узлов можно воспользоваться следующим запросом:
SELECT hosts.host, items.key_
FROM items
JOIN hosts ON hosts.hostid = items.hostid
AND hosts.status = 0
WHERE items.status = 0
AND items.error = 'Cannot find the "data" array in the received JSON object.';
Установка старого Zabbix-агента
Для решения проблемы можно, например, установить в Debian Bullseye Zabbix-агент 4.0.4 из официальных репозиториев Debian Buster: zabbix-agent_4.0.4+dfsg-1_amd64.deb:
# wget https://ftp.debian.org/debian/pool/main/z/zabbix/zabbix-agent_4.0.4+dfsg-1_amd64.deb
# dpkg -i zabbix-agent_4.0.4+dfsg-1_amd64.deb
# apt-get install -f
Фиксация старого Zabbix-агента
Для того, чтобы установленный вручную пакет с Zabbix-агентом при обновлении системы из репозиториев не заменился более новым пакетом, можно создать файл /etc/apt/preferences.d/zabbix
со следующим содержимым:
Package: zabbix-agent
Pin: version 1:4.0.4+dfsg-1+deb10u1
Pin-Priority: 1003