service.discovery в Zabbix возвращает массив JSON всех текущих запущенных служб (на основе фильтров) для каждого хоста.
Я хотел бы создать иерархию шаблонов, в которой у меня есть родительский шаблон, содержащий службу LLD service.discovery, а затем добавить этот шаблон в дочерние шаблоны, которые будут извлекать соответствующие данные, которые им нужны для их конкретной роли, Skype, MySQL, антивирус и так далее.
Мой родительский шаблон находит все службы с состоянием automatic or automatic delayed
через глобальное регулярное выражение ^(automatic|automatic delayed)$ [Result is TRUE]
и активируется в соответствии с правилом обнаружения (фильтрами) как {#SERVICE.STARTUPNAME}
через макрос шаблона.
Но при создании своих дочерних шаблонов я натолкнулся на кирпичную стену при попытке создать элементы и триггеры, например, для Skype.
Я экспериментировал с макросами, предварительной обработкой (по пункту) и всем остальным, что мог придумать, много читая документацию Zabbix, но без решения.
Вопрос Мой дочерний шаблон видит правило service.discovery из родительского шаблона, как и ожидалось, как я могу извлечь все службы для Skype из объекта JSON и создать элементы обнаружения?
Проблема В zabbix невозможно настроить более одного активного LLD service.discovery на каждый хост одновременно.
2.1 ^ (Service1 | Service2 | Service3) [Результат ИСТИНА]
2.2 ^ (автоматически | автоматически с задержкой) $ [Результат ИСТИНА]
3.1 Тип расчета = «И» и «соответствует» для выражения.
4.1 Имя: {# SERVICE.DISPLAYNAME} ({# SERVICE.NAME}) - {# SERVICE.STATENAME}
4.2 Ключ: service.info [{# SERVICE.NAME}, состояние]
4.3 Показать значение: состояние службы Windows
Zabbix 4.0