Доброго времени суток.
Иногда бывает, что есть несколько перечислимых объектов для мониторинга, которые затруднительно перечислить формальным алгоритмом, но которые может перечислить человек.
И есть желание всё же использовать один универсальный шаблон для таких случаев.
Если бы объект был один, всё тривиально решалось бы через макрос. Пример: имя mssql службы на виндовом хосте. Задаём макрос с именем сервиса, в item key указываем макрос
Но иногда таких объектов бывает несколько. Пример: если на одном сервер запущено несколько баз данных, или сервис настроен на работу на нескольких разных портах.
В xymon всё это тривиально, эти процессы тупо перечисляются в конфиге. Правка конфига занимает секунд 15.
PROC ora_pmon_JIRAQAS 1 COLOR=red
PROC ora_pmon_JIRADEV 1 COLOR=red
PORT LOCAL=%:21$ STATE=LISTEN "TEXT=proftpd, tcp/21"
PORT LOCAL=%:22$ STATE=LISTEN "TEXT=proftpd mod_sftp, tcp/22"
В zabbix'е item'ы и trigger'ы напрямую на хост, без шаблона, можно забивать годами и всё равно не успеть. Без шаблона не обойтись. Настругать пачку однотипных шаблонов скриптом можно, но потом в них же запутаешься.
В результате создал шаблон с auto discovery, в котором вызывается perl скрипт для «псевдо discovery»: он тупо возвращает переданные аргументы в json. И в макросе указываю список. А можно ли как-то попроще? Внешний скрипт явный костыль.
получившийся костыль: http://pastebin.com/8inE5k3z