Перешёл буквально вчера на zabbix v4.4 (с 4.2) и заметил, что перестало работать одно из LLD discover правил. Я мониторю срок действия SSL/TLS сертифкатов, мониторинг сделан по рецепту, взятому отсюда: Мониторинг срока действия ssl сертификата в zabbix
А неработу я обнаружил по факту - добавил в список парочку новых хостов для мониторинга, но они в item-ах так и не появились (я увеличил время с 5m до 1h, но item-ы не появились и несколько часов спустя после добавления). Полез разбираться: на странице "Узлы сети - Правила обнаружения" выбираю "SSL HTTPS Discovery", щёлкаю по "Проверить сейчас" - и получаю ошибку "Не удалось отправить запрос: ошибочный тип правил обнаружения".
Хм, а кто у нас тип? "Zabbix агент (активный)", то, что и было сразу в шаблоне у автора идеи (serveradmin). Меняю тип на пассивную проверку "Zabbix агент" - заработало. Но на 4.2 работал ведь исходный вариант с активной проверкой. Стандартный вопрос: кто виноват? На "что делать" ответ уже есть
Что-то смутно припоминаю про изменившийся формат JSON, без data - не оно?
UPD: вот собственно, весь discover скрипт, проще не бывает:
А неработу я обнаружил по факту - добавил в список парочку новых хостов для мониторинга, но они в item-ах так и не появились (я увеличил время с 5m до 1h, но item-ы не появились и несколько часов спустя после добавления). Полез разбираться: на странице "Узлы сети - Правила обнаружения" выбираю "SSL HTTPS Discovery", щёлкаю по "Проверить сейчас" - и получаю ошибку "Не удалось отправить запрос: ошибочный тип правил обнаружения".
Хм, а кто у нас тип? "Zabbix агент (активный)", то, что и было сразу в шаблоне у автора идеи (serveradmin). Меняю тип на пассивную проверку "Zabbix агент" - заработало. Но на 4.2 работал ведь исходный вариант с активной проверкой. Стандартный вопрос: кто виноват? На "что делать" ответ уже есть

Что-то смутно припоминаю про изменившийся формат JSON, без data - не оно?
UPD: вот собственно, весь discover скрипт, проще не бывает:
Code:
#!/bin/bash
JSON=$(for i in `cat /etc/zabbix/scripts/ssl_https.txt`; do printf "{\"{#DOMAIN_HTTPS}\":\"$i\"},"; done | sed 's/^\(.*\).$/\1/')
printf "{\"data\":["
printf "$JSON"
printf "]}"
Comment