350 lines
17 KiB
XML
350 lines
17 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<zabbix_export>
|
||
<version>6.4</version>
|
||
<template_groups>
|
||
<template_group>
|
||
<uuid>88166f35-c76b-44e2-b8ad-333b3b4b9692</uuid>
|
||
<name>Templates</name>
|
||
</template_group>
|
||
</template_groups>
|
||
<templates>
|
||
<template>
|
||
<uuid>f4e7d78a-8163-46db-a7cf-e9a79df9a740</uuid>
|
||
<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>
|
||
<uuid>b5d05b4d-7b9d-4e63-98de-7fe507748eaa</uuid>
|
||
<name>SES: все метрики (JSON)</name>
|
||
<type>ZABBIX_PASSIVE</type>
|
||
<key>ses.metrics</key>
|
||
<delay>30s</delay>
|
||
<history>7d</history>
|
||
<trends>0</trends>
|
||
<value_type>TEXT</value_type>
|
||
<description>Полный JSON со всеми метриками ses-monitor. Используется как master item для dependent items с JSONPath.</description>
|
||
</item>
|
||
|
||
<!-- Liveness -->
|
||
|
||
<item>
|
||
<uuid>b6a64924-6ecf-406a-80e1-cb5ad8f4d9e4</uuid>
|
||
<name>SES: API доступность</name>
|
||
<type>DEPENDENT</type>
|
||
<key>ses.api.liveness</key>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<parameters>$["ses.api.liveness"]</parameters>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>30d</trends>
|
||
<value_type>UNSIGNED</value_type>
|
||
<description>0 — API недоступен, 1 — работает. Проверяется GET /ses/hostname.</description>
|
||
<triggers>
|
||
<trigger>
|
||
<uuid>b5798e51-dc19-4d90-aa68-45107a7945e5</uuid>
|
||
<expression>last(/SES Monitor/ses.api.liveness)=0</expression>
|
||
<name>SES API недоступен на {HOST.NAME}</name>
|
||
<priority>HIGH</priority>
|
||
<manual_close>YES</manual_close>
|
||
</trigger>
|
||
</triggers>
|
||
</item>
|
||
|
||
<item>
|
||
<uuid>ce800e89-14a8-4084-bd16-0abd594b8ef4</uuid>
|
||
<name>SES: время ответа API</name>
|
||
<type>DEPENDENT</type>
|
||
<key>ses.api.response_time</key>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<parameters>$["ses.api.response_time"]</parameters>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>30d</trends>
|
||
<value_type>FLOAT</value_type>
|
||
<units>ms</units>
|
||
<description>Время ответа GET /ses/hostname в миллисекундах.</description>
|
||
<triggers>
|
||
<trigger>
|
||
<uuid>6813663c-2e56-4b42-aecd-3dfd54d99ffb</uuid>
|
||
<expression>last(/SES Monitor/ses.api.response_time)>{$SES_API_TIMEOUT_MS}</expression>
|
||
<name>SES: медленный ответ API (>{$SES_API_TIMEOUT_MS} мс)</name>
|
||
<priority>WARNING</priority>
|
||
<manual_close>YES</manual_close>
|
||
</trigger>
|
||
</triggers>
|
||
</item>
|
||
|
||
<item>
|
||
<uuid>05fa180f-9e01-4fde-b73c-fa7b1d9522f8</uuid>
|
||
<name>SES: статус лицензии</name>
|
||
<type>DEPENDENT</type>
|
||
<key>ses.license.ok</key>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<parameters>$["ses.license.ok"]</parameters>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>30d</trends>
|
||
<value_type>UNSIGNED</value_type>
|
||
<description>0 — проблема с лицензией, 1 — в порядке.</description>
|
||
<triggers>
|
||
<trigger>
|
||
<uuid>863d9b4b-8a9d-4e0c-9b9d-fd3c8022df82</uuid>
|
||
<expression>last(/SES Monitor/ses.license.ok)=0</expression>
|
||
<name>SES: проблема с лицензией на {HOST.NAME}</name>
|
||
<priority>HIGH</priority>
|
||
<manual_close>YES</manual_close>
|
||
</trigger>
|
||
</triggers>
|
||
</item>
|
||
|
||
<item>
|
||
<uuid>5c090eb8-6152-4fb5-a49a-ebf7d803f975</uuid>
|
||
<name>SES: дней до окончания лицензии</name>
|
||
<type>DEPENDENT</type>
|
||
<key>ses.license.days_remaining</key>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<parameters>$["ses.license.days_remaining"]</parameters>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>30d</trends>
|
||
<value_type>FLOAT</value_type>
|
||
<units>d</units>
|
||
<description>Количество дней до окончания лицензии SES. -1 = бессрочная.</description>
|
||
<triggers>
|
||
<trigger>
|
||
<uuid>67f94034-c31f-480f-aa47-68c986bdb2e9</uuid>
|
||
<expression>last(/SES Monitor/ses.license.days_remaining)>0 and last(/SES Monitor/ses.license.days_remaining)<30</expression>
|
||
<name>SES: лицензия истекает через (<30 дней) на {HOST.NAME}</name>
|
||
<priority>WARNING</priority>
|
||
<manual_close>YES</manual_close>
|
||
</trigger>
|
||
</triggers>
|
||
</item>
|
||
|
||
<item>
|
||
<uuid>696ac7fe-11f3-42f9-a56e-c2533bc7d71c</uuid>
|
||
<name>SES: количество сценариев (роботов)</name>
|
||
<type>DEPENDENT</type>
|
||
<key>ses.robots.count</key>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<parameters>$["ses.robots.count"]</parameters>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>30d</trends>
|
||
<value_type>UNSIGNED</value_type>
|
||
<description>Общее количество зарегистрированных сценариев (роботов).
|
||
Изменение значения может сигнализировать о проблемах конфигурации.</description>
|
||
</item>
|
||
|
||
<!-- Сценарии -->
|
||
|
||
<item>
|
||
<uuid>48930571-519a-4071-adec-fb22a732eaad</uuid>
|
||
<name>SES: тестовые сценарии — все успешны</name>
|
||
<type>DEPENDENT</type>
|
||
<key>ses.scenario.ok</key>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<parameters>$["ses.scenario.ok"]</parameters>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>30d</trends>
|
||
<value_type>UNSIGNED</value_type>
|
||
<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>
|
||
<uuid>b28ac087-8070-4195-95ea-99ccb24fa370</uuid>
|
||
<name>SES: тестовые сценарии — всего</name>
|
||
<type>DEPENDENT</type>
|
||
<key>ses.scenario.total</key>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<parameters>$["ses.scenario.total"]</parameters>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>30d</trends>
|
||
<value_type>UNSIGNED</value_type>
|
||
<description>Количество активных сценариев мониторинга.</description>
|
||
</item>
|
||
|
||
<item>
|
||
<uuid>5b003d5f-f88b-47e3-a3dc-17d196036351</uuid>
|
||
<name>SES: тестовые сценарии — упало</name>
|
||
<type>DEPENDENT</type>
|
||
<key>ses.scenario.failed</key>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<parameters>$["ses.scenario.failed"]</parameters>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>30d</trends>
|
||
<value_type>UNSIGNED</value_type>
|
||
<description>Количество упавших сценариев за последний цикл.</description>
|
||
<triggers>
|
||
<trigger>
|
||
<uuid>4de7a731-b6b7-41c6-85a2-71a5f1a45a66</uuid>
|
||
<expression>last(/SES Monitor/ses.scenario.failed)>0</expression>
|
||
<name>SES: тестовые сценарии мониторинга падают на {HOST.NAME}</name>
|
||
<priority>WARNING</priority>
|
||
<manual_close>YES</manual_close>
|
||
</trigger>
|
||
</triggers>
|
||
</item>
|
||
|
||
<item>
|
||
<uuid>0f911f5a-7529-495d-b35a-d1784a32a0de</uuid>
|
||
<name>SES: тестовые сценарии — среднее время</name>
|
||
<type>DEPENDENT</type>
|
||
<key>ses.scenario.avg_time</key>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<parameters>$["ses.scenario.avg_time"]</parameters>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>30d</trends>
|
||
<value_type>FLOAT</value_type>
|
||
<units>ms</units>
|
||
<description>Среднее время выполнения сценария (миллисекунды).</description>
|
||
</item>
|
||
|
||
<item>
|
||
<uuid>5747ec81-622c-44dc-8eca-c9be38458dad</uuid>
|
||
<name>SES: тестовые сценарии — макс. время</name>
|
||
<type>DEPENDENT</type>
|
||
<key>ses.scenario.max_time</key>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<parameters>$["ses.scenario.max_time"]</parameters>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>30d</trends>
|
||
<value_type>FLOAT</value_type>
|
||
<units>ms</units>
|
||
<description>Максимальное время выполнения сценария (миллисекунды).</description>
|
||
</item>
|
||
|
||
<item>
|
||
<uuid>bafb3afc-2ac4-4608-9f5b-d49d88960921</uuid>
|
||
<name>SES: тестовые сценарии — ошибка</name>
|
||
<type>DEPENDENT</type>
|
||
<key>ses.scenario.error</key>
|
||
<master_item>
|
||
<key>ses.metrics</key>
|
||
</master_item>
|
||
<preprocessing>
|
||
<step>
|
||
<type>JSONPATH</type>
|
||
<parameters>$["ses.scenario.error"]</parameters>
|
||
</step>
|
||
</preprocessing>
|
||
<history>7d</history>
|
||
<trends>0</trends>
|
||
<value_type>TEXT</value_type>
|
||
<description>Текст ошибки: "N сценариев упали". Пустая строка если всё хорошо.</description>
|
||
<triggers>
|
||
<trigger>
|
||
<uuid>89a0f35d-cfc7-4d58-a0bf-96d9c56c85a2</uuid>
|
||
<expression>strlen(last(/SES Monitor/ses.scenario.error))>0</expression>
|
||
<name>SES: критическая ошибка выполнения сценариев на {HOST.NAME}</name>
|
||
<priority>CRITICAL</priority>
|
||
<manual_close>YES</manual_close>
|
||
</trigger>
|
||
</triggers>
|
||
</item>
|
||
|
||
</items>
|
||
</template>
|
||
</templates>
|
||
</zabbix_export>
|