Универсальный watchdog-мониторинг Service Engine Server (SES): - Liveness-проверки (API, лицензия, роботы) - Диалоговые сценарии из YAML с агрегацией в 6 фиксированных Zabbix-метрик - Доставка: zabbix_sender (active push) или UserParameter (пассивный опрос) - Поддержка Python 3.7+, Zabbix 5.0
262 lines
10 KiB
XML
262 lines
10 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<zabbix_export>
|
||
<version>5.0</version>
|
||
<date>2026-06-19T12:00:00Z</date>
|
||
<groups>
|
||
<group>
|
||
<name>Templates</name>
|
||
</group>
|
||
</groups>
|
||
<templates>
|
||
<template>
|
||
<template>SES Monitor</template>
|
||
<name>SES Monitor — Service Engine Server</name>
|
||
<description>Шаблон для мониторинга диалоговой сценарной машины SES.
|
||
Метрики передаются watchdog-демоном ses-monitor через UserParameter (Zabbix агент).
|
||
JSON с метриками пишется в /var/tmp/ses_monitor/metrics.json и читается
|
||
скриптом scripts/zbx_get.py. Master-элемент: ses.metrics.
|
||
|
||
Проверяет: доступность API, лицензию, выполнение сценариев.
|
||
|
||
Сценарии задаются в YAML-файлах (config/scenarios/). Все сценарии
|
||
агрегируются в фиксированные метрики — шаблон универсален и не зависит
|
||
от количества или состава сценариев.</description>
|
||
|
||
<groups>
|
||
<group>
|
||
<name>Templates</name>
|
||
</group>
|
||
</groups>
|
||
|
||
<macros>
|
||
<macro>
|
||
<macro>{$SES_API_TIMEOUT_MS}</macro>
|
||
<value>5000</value>
|
||
<description>Порог медленного ответа API (миллисекунды)</description>
|
||
</macro>
|
||
</macros>
|
||
|
||
<items>
|
||
|
||
<item>
|
||
<name>SES: все метрики (JSON)</name>
|
||
<type>ZABBIX_PASSIVE</type>
|
||
<key>ses.metrics</key>
|
||
<delay>30s</delay>
|
||
<history>7d</history>
|
||
<trends>31536000</trends>
|
||
<value_type>TEXT</value_type>
|
||
<description>Полный JSON со всеми метриками ses-monitor. Используется как master item для dependent items с JSONPath.</description>
|
||
</item>
|
||
|
||
<!-- Liveness -->
|
||
|
||
<item>
|
||
<name>SES: API доступность</name>
|
||
<type>DEPENDENT</type>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<params>$["ses.api.liveness"]</params>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>31536000</trends>
|
||
<value_type>UNSIGNED</value_type>
|
||
<key>ses.api.liveness</key>
|
||
</item>
|
||
|
||
<item>
|
||
<name>SES: время ответа API</name>
|
||
<type>DEPENDENT</type>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<params>$["ses.api.response_time"]</params>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>31536000</trends>
|
||
<value_type>FLOAT</value_type>
|
||
<units>ms</units>
|
||
<key>ses.api.response_time</key>
|
||
</item>
|
||
|
||
<item>
|
||
<name>SES: статус лицензии</name>
|
||
<type>DEPENDENT</type>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<params>$["ses.license.ok"]</params>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>31536000</trends>
|
||
<value_type>UNSIGNED</value_type>
|
||
<key>ses.license.ok</key>
|
||
</item>
|
||
|
||
<item>
|
||
<name>SES: дней до окончания лицензии</name>
|
||
<type>DEPENDENT</type>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<params>$["ses.license.days_remaining"]</params>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>31536000</trends>
|
||
<value_type>FLOAT</value_type>
|
||
<units>d</units>
|
||
<key>ses.license.days_remaining</key>
|
||
</item>
|
||
|
||
<item>
|
||
<name>SES: количество сценариев (роботов)</name>
|
||
<type>DEPENDENT</type>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<params>$["ses.robots.count"]</params>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>31536000</trends>
|
||
<value_type>UNSIGNED</value_type>
|
||
<key>ses.robots.count</key>
|
||
</item>
|
||
|
||
<!-- Сценарии -->
|
||
|
||
<item>
|
||
<name>SES: сценарии — все успешны</name>
|
||
<type>DEPENDENT</type>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<params>$["ses.scenario.ok"]</params>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>31536000</trends>
|
||
<value_type>UNSIGNED</value_type>
|
||
<key>ses.scenario.ok</key>
|
||
</item>
|
||
|
||
<item>
|
||
<name>SES: сценарии — всего</name>
|
||
<type>DEPENDENT</type>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<params>$["ses.scenario.total"]</params>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>31536000</trends>
|
||
<value_type>UNSIGNED</value_type>
|
||
<key>ses.scenario.total</key>
|
||
</item>
|
||
|
||
<item>
|
||
<name>SES: сценарии — упало</name>
|
||
<type>DEPENDENT</type>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<params>$["ses.scenario.failed"]</params>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>31536000</trends>
|
||
<value_type>UNSIGNED</value_type>
|
||
<key>ses.scenario.failed</key>
|
||
</item>
|
||
|
||
<item>
|
||
<name>SES: сценарии — среднее время</name>
|
||
<type>DEPENDENT</type>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<params>$["ses.scenario.avg_time"]</params>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>31536000</trends>
|
||
<value_type>FLOAT</value_type>
|
||
<units>ms</units>
|
||
<key>ses.scenario.avg_time</key>
|
||
</item>
|
||
|
||
<item>
|
||
<name>SES: сценарии — макс. время</name>
|
||
<type>DEPENDENT</type>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<params>$["ses.scenario.max_time"]</params>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>31536000</trends>
|
||
<value_type>FLOAT</value_type>
|
||
<units>ms</units>
|
||
<key>ses.scenario.max_time</key>
|
||
</item>
|
||
|
||
<item>
|
||
<name>SES: сценарии — ошибка</name>
|
||
<type>DEPENDENT</type>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<params>$["ses.scenario.error"]</params>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>31536000</trends>
|
||
<value_type>TEXT</value_type>
|
||
<key>ses.scenario.error</key>
|
||
</item>
|
||
|
||
</items>
|
||
</template>
|
||
</templates>
|
||
</zabbix_export>
|