Доброго времени суток
В zabbix потребовалось мониторить сложный комплекс ПО, с множеством параметров. Получение параметров - через API. Но, к сожалению, само ПО отвечает на API запросы неспешно. И не всегда выполнение укладывается в максимально возможные для zabbix external check 30 сек.
Собираюсь сделать так:
- по cron запускается скрипт, который запрашивает всё что можно раз в 5 мин ( по времени укладываюсь, проверил ) и складывает данные в файл ( доступ через shared и exclusive блокировки, тут нет проблем ) вместе со временем последней проверки
- zabbix в качестве «external» дёргает скрипт, который уже в зависимости от парамерта выдаёт значение для одного item'а ( или для одного discover'y ). Но данные будут возвращены, только если они актуальны. Т.е. если скрипт сбора умер и не шевелится, то скрипт для zabbix перестанет возвращать в zabbix старые данные.
- одна отдельная пара item+trigger будут следить, когда скрипт сбора данных запускался последний раз.
В связи с этим вопросы:
- Как сообщить zabbix'у, что даные для item «not available», а не сам item «not supported» ? Если данных нет - пусть на графиках будет провал. Но блокировать item на час категорически недопустимо.
- А есть ли способ полностью слать данные снаружи zabbix? Т.е. в zabbix только определить item, но ничего не предпринимать для их получения - внешний скрипт сам их пришлёт когда будет нужно?