Featured image of post Zabbix & Grafana: Мониторинг сайта скриптами. Часть 2

Zabbix & Grafana: Мониторинг сайта скриптами. Часть 2

Уведомление пользователей Zabbix по EMail. Визуализация данных Zabbix в Grafana.

В продолжении мы настроим оповещение в Zabbix и визуализацию в Grafana

Шаг 5. Настроить оповещение

Добавляем адрес EMail SMTP сервера. Для этого переходим в:

Administration -> Media Types -> EMail

Указываем настройки вашего SMTP сервера

Создаем группу:

Configuration -> User Groups -> Create

1
2
Name: Alert only
Permission: Read (Выдаём права на сервер, с которого собирается метрика, у меня Zabbix Server)

Создаем пользователя, который будет получать уведомления:

Administration -> Users -> New

В Media добавляем sms, Email (HTML)

Переходим в созданную нами ранее группу и добавляем нашего пользователя alert_user:

Configuration -> User Groups -> Alert only

1
Users: -> Select alert_user

-> Operations

1
2
3
Default: 1h
Send to user groups: alert_user
Send only to: Email (HTML)

Настраиваем действие (Action) на триггер:

Configuration -> Action -> Create Action

Далее добавляем Operation:

Настройка выполнена.
Можно изменить в скрипте из первой части 0 и 1 местами и проверить весь процесс срабатывания триггера и пересчёта SLA.

Дополнительно
По желанию можно сделать отправку по Email (HTML). Кастомный шаблон.

Шаг 7. Визуализация в Grafana

Предполагается, что к вашей Grafana уже подключен источник данных Zabbix. Здесь я это не затрагиваю.

Создаём новую панель:

Dashboard -> New Add a new panel

Выбираем: Query

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
Data Source: Zabbix
Type: Stat
Count A:
 - Query type: Triggers
 - Count by: All triggers
 - Group: Server
 - Min severity: Warning
 - Count: On
Count B:
 - Query type: Services
 - Service: SITE
 - SLA: SITE
 - Property: SLI

Далее переходим в: Transform

1
2
3
4
5
6
7
8
9
Rename by regex: 
 - Match: (Count A)
 - Replace: Status
Rename by regex:
 - Match: (Count B)
 - Replace: Available
Filter by name:
 - Count A
 - SLI SITE

Настройка расположения и прочего - вкусовщина. Я делаю так:

Итог:
Раз в минуту zabbix-server будет обращаться к zabbix-agent для получения метрики. Сервер будет запускать скрипт, авторизовываться и возвращать значение параметра.
Полученное значение отображается в Web-интерфейсе Zabbix, рассчитывается SLA. В Grafana выводится бизнес-метрика и значение в виде графика.
Если авторизация не удается более 2-х раз, то срабатывает триггер, который отправляет по Email сообщение администратору.

Информацию можно использовать в свободном доступе, с указанием ссылки на сайт
Telegram GitHub YouTube