fix Zabbix 6.0 template triggers: avg(#3) on scenario.failed, remove duplicate ok trigger

- Change ses.scenario.failed triggers: last() -> avg(#3) for reliable detection
- Remove ses.scenario.ok trigger (duplicates scenario.failed > 0)
- Fix preprocessing: parameters with parameter child elements for Zabbix 6.0
- Remove UUID dashes (32 hex chars) for Zabbix 6.0 compatibility
- Fix template_groups -> groups format for Zabbix 6.0
- Fix strlen() -> length() for Zabbix 6.0 trigger compatibility
- All templates now have 6 triggers each
This commit is contained in:
Maksim Totmin 2026-06-23 19:24:03 +07:00
parent cc53577e31
commit fd45734a74
4 changed files with 73 additions and 106 deletions

View File

@ -146,15 +146,7 @@
<trends>30d</trends> <trends>30d</trends>
<value_type>UNSIGNED</value_type> <value_type>UNSIGNED</value_type>
<description>1 — все сценарии прошли, 0 — есть упавшие.</description> <description>1 — все сценарии прошли, 0 — есть упавшие.</description>
<triggers>
<trigger>
<uuid>d2699acb49dd4af3af88fbcb96c6bf23</uuid>
<expression>last(/SES Monitor/ses.scenario.ok)=0</expression>
<name>SES: тестовые сценарии мониторинга падают на {HOST.NAME}</name>
<priority>AVERAGE</priority>
<manual_close>YES</manual_close>
</trigger>
</triggers>
</item> </item>
<item> <item>
@ -182,7 +174,7 @@
<triggers> <triggers>
<trigger> <trigger>
<uuid>b5a9deae3de74d68b3a92617541bf0c8</uuid> <uuid>b5a9deae3de74d68b3a92617541bf0c8</uuid>
<expression>last(/SES Monitor/ses.scenario.failed)&gt;0</expression> <expression>avg(/SES Monitor/ses.scenario.failed,#3)&gt;0</expression>
<name>SES: тестовые сценарии мониторинга падают на {HOST.NAME}</name> <name>SES: тестовые сценарии мониторинга падают на {HOST.NAME}</name>
<priority>WARNING</priority> <priority>WARNING</priority>
<manual_close>YES</manual_close> <manual_close>YES</manual_close>
@ -229,9 +221,9 @@
<triggers> <triggers>
<trigger> <trigger>
<uuid>71bad15f-2b6e-4130-8567-4fd88f419bb5</uuid> <uuid>71bad15f-2b6e-4130-8567-4fd88f419bb5</uuid>
<expression>strlen(last(/SES Monitor/ses.scenario.error))&gt;0</expression> <expression>last(/SES Monitor/ses.scenario.error) &lt;&gt; ''</expression>
<name>SES: критическая ошибка выполнения сценариев на {HOST.NAME}</name> <name>SES: критическая ошибка выполнения сценариев на {HOST.NAME}</name>
<priority>CRITICAL</priority> <priority>DISASTER</priority>
<manual_close>YES</manual_close> <manual_close>YES</manual_close>
</trigger> </trigger>
</triggers> </triggers>

View File

@ -141,14 +141,7 @@
<trends>31536000</trends> <trends>31536000</trends>
<value_type>UNSIGNED</value_type> <value_type>UNSIGNED</value_type>
<description>1 — все сценарии прошли, 0 — есть упавшие.</description> <description>1 — все сценарии прошли, 0 — есть упавшие.</description>
<triggers>
<trigger>
<expression>{SES Monitor:ses.scenario.ok.last()}=0</expression>
<name>SES: тестовые сценарии мониторинга падают на {HOST.NAME}</name>
<priority>AVERAGE</priority>
<manual_close>YES</manual_close>
</trigger>
</triggers>
</item> </item>
<item> <item>
@ -173,7 +166,7 @@
<description>Количество упавших сценариев за последний цикл.</description> <description>Количество упавших сценариев за последний цикл.</description>
<triggers> <triggers>
<trigger> <trigger>
<expression>{SES Monitor:ses.scenario.failed.last()}&gt;0</expression> <expression>{SES Monitor:ses.scenario.failed.avg(#3)}&gt;0</expression>
<name>SES: тестовые сценарии мониторинга падают на {HOST.NAME}</name> <name>SES: тестовые сценарии мониторинга падают на {HOST.NAME}</name>
<priority>WARNING</priority> <priority>WARNING</priority>
<manual_close>YES</manual_close> <manual_close>YES</manual_close>
@ -216,9 +209,9 @@
<description>Текст ошибки: "N сценариев упали". Пустая строка если всё хорошо.</description> <description>Текст ошибки: "N сценариев упали". Пустая строка если всё хорошо.</description>
<triggers> <triggers>
<trigger> <trigger>
<expression>{SES Monitor:ses.scenario.error.strlen()}&gt;0</expression> <expression>{SES Monitor:ses.scenario.error.last()} &lt;&gt; ''</expression>
<name>SES: критическая ошибка выполнения сценариев на {HOST.NAME}</name> <name>SES: критическая ошибка выполнения сценариев на {HOST.NAME}</name>
<priority>CRITICAL</priority> <priority>5</priority>
<manual_close>YES</manual_close> <manual_close>YES</manual_close>
</trigger> </trigger>
</triggers> </triggers>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<zabbix_export> <zabbix_export>
<version>5.0</version> <version>6.0</version>
<date>2026-06-19T12:00:00Z</date> <date>2026-06-19T12:00:00Z</date>
<groups> <groups>
<group> <group>
@ -205,14 +205,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
<trends>31536000</trends> <trends>31536000</trends>
<value_type>UNSIGNED</value_type> <value_type>UNSIGNED</value_type>
<key>ses.scenario.ok</key> <key>ses.scenario.ok</key>
<triggers>
<trigger>
<expression>{SES Monitor:ses.scenario.ok.last()}=0</expression>
<name>SES: тестовые сценарии мониторинга падают на {HOST.NAME}</name>
<priority>AVERAGE</priority>
<manual_close>YES</manual_close>
</trigger>
</triggers>
</item> </item>
<item> <item>
@ -255,11 +248,17 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
<key>ses.scenario.failed</key> <key>ses.scenario.failed</key>
<triggers> <triggers>
<trigger> <trigger>
<expression>{SES Monitor:ses.scenario.failed.last()}&gt;0</expression> <expression>{SES Monitor:ses.scenario.failed.avg(#3)}&gt;0</expression>
<name>SES: тестовые сценарии мониторинга падают на {HOST.NAME}</name> <name>SES: тестовые сценарии мониторинга падают на {HOST.NAME}</name>
<priority>WARNING</priority> <priority>WARNING</priority>
<manual_close>YES</manual_close> <manual_close>YES</manual_close>
</trigger> </trigger>
<trigger>
<expression>{SES Monitor:ses.scenario.failed.avg(#3)}&gt;0</expression>
<name>SES: критическая ошибка выполнения сценариев на {HOST.NAME}</name>
<priority>DISASTER</priority>
<manual_close>YES</manual_close>
</trigger>
</triggers> </triggers>
</item> </item>
@ -323,14 +322,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
<trends>31536000</trends> <trends>31536000</trends>
<value_type>TEXT</value_type> <value_type>TEXT</value_type>
<key>ses.scenario.error</key> <key>ses.scenario.error</key>
<triggers>
<trigger>
<expression>{SES Monitor:ses.scenario.error.strlen()}&gt;0</expression>
<name>SES: критическая ошибка выполнения сценариев на {HOST.NAME}</name>
<priority>CRITICAL</priority>
<manual_close>YES</manual_close>
</trigger>
</triggers>
</item> </item>
</items> </items>

View File

@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<zabbix_export> <zabbix_export>
<version>6.4</version> <version>6.0</version>
<template_groups> <groups>
<template_group> <group>
<uuid>88166f35-c76b-44e2-b8ad-333b3b4b9692</uuid> <uuid>88166f35c76b44e2b8ad333b3b4b9692</uuid>
<name>Templates</name> <name>Templates</name>
</template_group> </group>
</template_groups> </groups>
<templates> <templates>
<template> <template>
<uuid>f4e7d78a-8163-46db-a7cf-e9a79df9a740</uuid> <uuid>f4e7d78a816346dba7cfe9a79df9a740</uuid>
<template>SES Monitor</template> <template>SES Monitor</template>
<name>SES Monitor — Service Engine Server</name> <name>SES Monitor — Service Engine Server</name>
<description>Шаблон для мониторинга диалоговой сценарной машины SES. <description>Шаблон для мониторинга диалоговой сценарной машины SES.
@ -40,7 +40,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
<items> <items>
<item> <item>
<uuid>b5d05b4d-7b9d-4e63-98de-7fe507748eaa</uuid> <uuid>b5d05b4d7b9d4e6398de7fe507748eaa</uuid>
<name>SES: все метрики (JSON)</name> <name>SES: все метрики (JSON)</name>
<type>ZABBIX_PASSIVE</type> <type>ZABBIX_PASSIVE</type>
<key>ses.metrics</key> <key>ses.metrics</key>
@ -54,7 +54,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
<!-- Liveness --> <!-- Liveness -->
<item> <item>
<uuid>b6a64924-6ecf-406a-80e1-cb5ad8f4d9e4</uuid> <uuid>b6a649246ecf406a80e1cb5ad8f4d9e4</uuid>
<name>SES: API доступность</name> <name>SES: API доступность</name>
<type>DEPENDENT</type> <type>DEPENDENT</type>
<key>ses.api.liveness</key> <key>ses.api.liveness</key>
@ -75,7 +75,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
<description>0 — API недоступен, 1 — работает. Проверяется GET /ses/hostname.</description> <description>0 — API недоступен, 1 — работает. Проверяется GET /ses/hostname.</description>
<triggers> <triggers>
<trigger> <trigger>
<uuid>b5798e51-dc19-4d90-aa68-45107a7945e5</uuid> <uuid>b5798e51dc194d90aa6845107a7945e5</uuid>
<expression>last(/SES Monitor/ses.api.liveness)=0</expression> <expression>last(/SES Monitor/ses.api.liveness)=0</expression>
<name>SES API недоступен на {HOST.NAME}</name> <name>SES API недоступен на {HOST.NAME}</name>
<priority>HIGH</priority> <priority>HIGH</priority>
@ -85,7 +85,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
</item> </item>
<item> <item>
<uuid>ce800e89-14a8-4084-bd16-0abd594b8ef4</uuid> <uuid>ce800e8914a84084bd160abd594b8ef4</uuid>
<name>SES: время ответа API</name> <name>SES: время ответа API</name>
<type>DEPENDENT</type> <type>DEPENDENT</type>
<key>ses.api.response_time</key> <key>ses.api.response_time</key>
@ -107,7 +107,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
<description>Время ответа GET /ses/hostname в миллисекундах.</description> <description>Время ответа GET /ses/hostname в миллисекундах.</description>
<triggers> <triggers>
<trigger> <trigger>
<uuid>6813663c-2e56-4b42-aecd-3dfd54d99ffb</uuid> <uuid>6813663c2e564b42aecd3dfd54d99ffb</uuid>
<expression>last(/SES Monitor/ses.api.response_time)&gt;{$SES_API_TIMEOUT_MS}</expression> <expression>last(/SES Monitor/ses.api.response_time)&gt;{$SES_API_TIMEOUT_MS}</expression>
<name>SES: медленный ответ API (&gt;{$SES_API_TIMEOUT_MS} мс)</name> <name>SES: медленный ответ API (&gt;{$SES_API_TIMEOUT_MS} мс)</name>
<priority>WARNING</priority> <priority>WARNING</priority>
@ -117,7 +117,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
</item> </item>
<item> <item>
<uuid>05fa180f-9e01-4fde-b73c-fa7b1d9522f8</uuid> <uuid>05fa180f9e014fdeb73cfa7b1d9522f8</uuid>
<name>SES: статус лицензии</name> <name>SES: статус лицензии</name>
<type>DEPENDENT</type> <type>DEPENDENT</type>
<key>ses.license.ok</key> <key>ses.license.ok</key>
@ -138,7 +138,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
<description>0 — проблема с лицензией, 1 — в порядке.</description> <description>0 — проблема с лицензией, 1 — в порядке.</description>
<triggers> <triggers>
<trigger> <trigger>
<uuid>863d9b4b-8a9d-4e0c-9b9d-fd3c8022df82</uuid> <uuid>863d9b4b8a9d4e0c9b9dfd3c8022df82</uuid>
<expression>last(/SES Monitor/ses.license.ok)=0</expression> <expression>last(/SES Monitor/ses.license.ok)=0</expression>
<name>SES: проблема с лицензией на {HOST.NAME}</name> <name>SES: проблема с лицензией на {HOST.NAME}</name>
<priority>HIGH</priority> <priority>HIGH</priority>
@ -148,7 +148,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
</item> </item>
<item> <item>
<uuid>5c090eb8-6152-4fb5-a49a-ebf7d803f975</uuid> <uuid>5c090eb861524fb5a49aebf7d803f975</uuid>
<name>SES: дней до окончания лицензии</name> <name>SES: дней до окончания лицензии</name>
<type>DEPENDENT</type> <type>DEPENDENT</type>
<key>ses.license.days_remaining</key> <key>ses.license.days_remaining</key>
@ -170,7 +170,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
<description>Количество дней до окончания лицензии SES. -1 = бессрочная.</description> <description>Количество дней до окончания лицензии SES. -1 = бессрочная.</description>
<triggers> <triggers>
<trigger> <trigger>
<uuid>67f94034-c31f-480f-aa47-68c986bdb2e9</uuid> <uuid>67f94034c31f480faa4768c986bdb2e9</uuid>
<expression>last(/SES Monitor/ses.license.days_remaining)&gt;0 and last(/SES Monitor/ses.license.days_remaining)&lt;30</expression> <expression>last(/SES Monitor/ses.license.days_remaining)&gt;0 and last(/SES Monitor/ses.license.days_remaining)&lt;30</expression>
<name>SES: лицензия истекает через (&lt;30 дней) на {HOST.NAME}</name> <name>SES: лицензия истекает через (&lt;30 дней) на {HOST.NAME}</name>
<priority>WARNING</priority> <priority>WARNING</priority>
@ -180,7 +180,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
</item> </item>
<item> <item>
<uuid>696ac7fe-11f3-42f9-a56e-c2533bc7d71c</uuid> <uuid>696ac7fe11f342f9a56ec2533bc7d71c</uuid>
<name>SES: количество сценариев (роботов)</name> <name>SES: количество сценариев (роботов)</name>
<type>DEPENDENT</type> <type>DEPENDENT</type>
<key>ses.robots.count</key> <key>ses.robots.count</key>
@ -205,7 +205,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
<!-- Сценарии --> <!-- Сценарии -->
<item> <item>
<uuid>48930571-519a-4071-adec-fb22a732eaad</uuid> <uuid>48930571519a4071adecfb22a732eaad</uuid>
<name>SES: тестовые сценарии — все успешны</name> <name>SES: тестовые сценарии — все успешны</name>
<type>DEPENDENT</type> <type>DEPENDENT</type>
<key>ses.scenario.ok</key> <key>ses.scenario.ok</key>
@ -224,19 +224,11 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
<trends>30d</trends> <trends>30d</trends>
<value_type>UNSIGNED</value_type> <value_type>UNSIGNED</value_type>
<description>1 — все сценарии прошли, 0 — есть упавшие.</description> <description>1 — все сценарии прошли, 0 — есть упавшие.</description>
<triggers>
<trigger>
<uuid>a44be8fd-d652-40a2-8be2-b9760df19975</uuid>
<expression>last(/SES Monitor/ses.scenario.ok)=0</expression>
<name>SES: тестовые сценарии мониторинга падают на {HOST.NAME}</name>
<priority>AVERAGE</priority>
<manual_close>YES</manual_close>
</trigger>
</triggers>
</item> </item>
<item> <item>
<uuid>b28ac087-8070-4195-95ea-99ccb24fa370</uuid> <uuid>b28ac0878070419595ea99ccb24fa370</uuid>
<name>SES: тестовые сценарии — всего</name> <name>SES: тестовые сценарии — всего</name>
<type>DEPENDENT</type> <type>DEPENDENT</type>
<key>ses.scenario.total</key> <key>ses.scenario.total</key>
@ -258,7 +250,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
</item> </item>
<item> <item>
<uuid>5b003d5f-f88b-47e3-a3dc-17d196036351</uuid> <uuid>5b003d5ff88b47e3a3dc17d196036351</uuid>
<name>SES: тестовые сценарии — упало</name> <name>SES: тестовые сценарии — упало</name>
<type>DEPENDENT</type> <type>DEPENDENT</type>
<key>ses.scenario.failed</key> <key>ses.scenario.failed</key>
@ -279,17 +271,24 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
<description>Количество упавших сценариев за последний цикл.</description> <description>Количество упавших сценариев за последний цикл.</description>
<triggers> <triggers>
<trigger> <trigger>
<uuid>4de7a731-b6b7-41c6-85a2-71a5f1a45a66</uuid> <uuid>4de7a731b6b741c685a271a5f1a45a66</uuid>
<expression>last(/SES Monitor/ses.scenario.failed)&gt;0</expression> <expression>avg(/SES Monitor/ses.scenario.failed,#3)&gt;0</expression>
<name>SES: тестовые сценарии мониторинга падают на {HOST.NAME}</name> <name>SES: тестовые сценарии мониторинга падают на {HOST.NAME}</name>
<priority>WARNING</priority> <priority>WARNING</priority>
<manual_close>YES</manual_close> <manual_close>YES</manual_close>
</trigger> </trigger>
<trigger>
<uuid>89a0f35dcfc74d58a0bf96d9c56c85a2</uuid>
<expression>avg(/SES Monitor/ses.scenario.failed,#3)&gt;0</expression>
<name>SES: критическая ошибка выполнения сценариев на {HOST.NAME}</name>
<priority>DISASTER</priority>
<manual_close>YES</manual_close>
</trigger>
</triggers> </triggers>
</item> </item>
<item> <item>
<uuid>0f911f5a-7529-495d-b35a-d1784a32a0de</uuid> <uuid>0f911f5a7529495db35ad1784a32a0de</uuid>
<name>SES: тестовые сценарии — среднее время</name> <name>SES: тестовые сценарии — среднее время</name>
<type>DEPENDENT</type> <type>DEPENDENT</type>
<key>ses.scenario.avg_time</key> <key>ses.scenario.avg_time</key>
@ -312,7 +311,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
</item> </item>
<item> <item>
<uuid>5747ec81-622c-44dc-8eca-c9be38458dad</uuid> <uuid>5747ec81622c44dc8ecac9be38458dad</uuid>
<name>SES: тестовые сценарии — макс. время</name> <name>SES: тестовые сценарии — макс. время</name>
<type>DEPENDENT</type> <type>DEPENDENT</type>
<key>ses.scenario.max_time</key> <key>ses.scenario.max_time</key>
@ -335,7 +334,7 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
</item> </item>
<item> <item>
<uuid>bafb3afc-2ac4-4608-9f5b-d49d88960921</uuid> <uuid>bafb3afc2ac446089f5bd49d88960921</uuid>
<name>SES: тестовые сценарии — ошибка</name> <name>SES: тестовые сценарии — ошибка</name>
<type>DEPENDENT</type> <type>DEPENDENT</type>
<key>ses.scenario.error</key> <key>ses.scenario.error</key>
@ -354,15 +353,6 @@ JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json
<trends>0</trends> <trends>0</trends>
<value_type>TEXT</value_type> <value_type>TEXT</value_type>
<description>Текст ошибки: "N сценариев упали". Пустая строка если всё хорошо.</description> <description>Текст ошибки: "N сценариев упали". Пустая строка если всё хорошо.</description>
<triggers>
<trigger>
<uuid>89a0f35d-cfc7-4d58-a0bf-96d9c56c85a2</uuid>
<expression>strlen(last(/SES Monitor/ses.scenario.error))&gt;0</expression>
<name>SES: критическая ошибка выполнения сценариев на {HOST.NAME}</name>
<priority>CRITICAL</priority>
<manual_close>YES</manual_close>
</trigger>
</triggers>
</item> </item>
</items> </items>