Интеграция с 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 согласно принятой политики именования и разграничения доступа в компании.

Окно Templates (Рис.130.)

../_images/templates.png

Рис. 130. Окно Templates

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.)

../_images/items.png

Рис. 131. Окно New Item

Аналогично создайте 7 элементов под метрики, зависимых от item ADB Status. Для этого нужно указать у них Type: Dependent Item и в Master Item сослаться на ADB Status. Для настройки шага предобработки метрики зайдите в Items -> Preprocessing и выберите тип Preprocessing Name Structured Data -> JSONPath. Все параметры перечислены в таблице ниже:

Табл. 11. Items для метрик
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

Общий вид метрик должен быть следующим:

../_images/items_all.png

Рис. 132. Окно Items

3. Создание триггеров

Зайдите в созданный шаблон и в разделе Triggers нажмите кнопку Create Trigger. Создайте следующие Триггеры для части метрик:

Табл. 12. Triggers для метрик
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

Общий вид триггеров должен быть следующим:

../_images/triggers_all.png

Рис. 133. Окно Triggers

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