Интеграция с Zabbix¶
Введение¶
Zabbix часто является корпоративным стандартом для мониторинга. Обычно в этом случае в компаниях все системные метрики по каждому хосту уже получают из операционной системы через Zabbix-агентов, и мониторинг кластера Arenadata DB не используется. Тем не менее, часть метрик, относящихся к СУБД (секция Database в Grafana), может быть получена только или напрямую из Graphite, или также через Zabbix-агента с мастер-сервера с помощью предварительно созданного шаблона. Данная инструкция описывает шаги по созданию шаблона для подключения 7 ADB-специфичных метрик к Zabbix. Для расширенных возможностей мониторинга СУБД на основе Postgres используйте инструкцию с официального сайта Zabbix по адресу https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/postgresql.
Important
Данная инструкция показывает создание шаблона на базе Zabbix версии 5.4
Шаги по созданию шаблона Zabbix¶
1. Создание нового шаблона¶
Зайдите в Zabbix и в разделе Configuration -> Templates нажмите кнопку Create template. Заполните поля Template Name и Groups согласно принятой политики именования и разграничения доступа в компании.
2. Создание элементов шаблона¶
Зайдите в созданный шаблон и в разделе Items нажмите кнопку Create item. Создайте Item для Zabbix-агента:
Name: ADB Status Type: Zabbix agent Key: adb.status[“{$ADB.MASTER.SERVER}”,”{$ADB.PORT}”,”{$ADB.DATABASE}”,”{$ADB.USER}”] Type of information: Text Update interval: 1m History storage period: 1d Trend storage period: Do not keep trends
Окно Items (Рис.131.)¶

Рис. 131. Окно New Item
Аналогично создайте 7 элементов под метрики, зависимых от item ADB Status
. Для этого нужно указать у них Type: Dependent Item и в Master Item сослаться на ADB Status
. Для настройки шага предобработки метрики зайдите в Items -> Preprocessing и выберите тип Preprocessing Name Structured Data -> JSONPath. Все параметры перечислены в таблице ниже:
Name | Key | Preprocessing Step Parameters |
---|---|---|
ADB Availability | Arenadata.DB.database.available.is_available | $.DATABASE_AVAILABLE |
ADB Mirrors as Primary | Arenadata.DB.database.segments.MIRRORS_AS_PRIMARY | $.MIRRORS_AS_PRIMARIES |
The Current Longest Transaction Time (sec) | Arenadata.DB.database.sessions.LONGEST_XACT_TIME | $.LONGEST_XACT_TIME |
The Longest Transaction Session ID | Arenadata.DB.database.sessions.LONGEST_XACT_SESS_ID | $.LONGEST_XACT_SESS_ID |
Total Primary Segments | Arenadata.DB.database.segments.TOTAL_PRIMARY_SEGMENTS | $.TOTAL_PRIMARIES |
Total Segments | Arenadata.DB.database.segments.TOTAL_SEGMENTS | $.TOTAL_SEGMENTS |
Up Segments | Arenadata.DB.database.segments.UP_SEGMENTS | $.UP_SEGMENTS |
Общий вид метрик должен быть следующим:

Рис. 132. Окно Items
3. Создание триггеров¶
Зайдите в созданный шаблон и в разделе Triggers нажмите кнопку Create Trigger. Создайте следующие Триггеры для части метрик:
Severity | Name | Problem | Recovery |
---|---|---|---|
High | ADB is unavailable | last(/ADB Monitoring/ Arenadata.DB.database.available.is_available)=1 | last(/ADB Monitoring/Arenadata.DB.database.available.is_available)=0 |
Warning | Primary and Mirror segments switched | last(/ADB Monitoring/ Arenadata.DB.database.segments.MIRRORS_AS_PRIMARY)>0 | last(/ADB Monitoring/ Arenadata.DB.database.segments.MIRRORS_AS_PRIMARY)=0 |
High | Some segments is not Up | last(/ADB Monitoring/ Arenadata.DB.database.segments.TOTAL_SEGMENTS)<>last(/ADB Monitoring/Arenadata.DB.database.segments.UP_SEGMENTS) | last(/ADB Monitoring/ Arenadata.DB.database.segments.TOTAL_SEGMENTS)=last(/ADB Monitoring/ Arenadata.DB.database.segments.UP_SEGMENTS) |
Warning | Too long running transaction | last(/ADB Monitoring/ Arenadata.DB.database.sessions.LONGEST_XACT_TIME)>14400 | last(/ADB Monitoring/ Arenadata.DB.database.sessions.LONGEST_XACT_TIME)<=14400 |
Общий вид триггеров должен быть следующим:

Рис. 133. Окно Triggers
Это обязательные компоненты для мониторинга метрик Arenadata DB. Остальные компоненты (Graphs, Dashboards, Discovery Rules, Web Scenarios) настриваются выборочно, согласно принятым в компании стандартам, опираясь на заданные Items и Triggers.