- FastAPI приложение для отправки мониторинговых алертов в мессенджеры - Поддержка Telegram и MAX/VK - Интеграция с Grafana, Zabbix, AlertManager - Автоматическое создание тикетов в Jira - Управление группами мессенджеров через API - Декораторы для авторизации и скрытия эндпоинтов - Подробная документация в папке docs/ Автор: Сергей Антропов Сайт: https://devops.org.ru
108 lines
3.7 KiB
Markdown
108 lines
3.7 KiB
Markdown
# Настройка Zabbix
|
||
|
||
## Создание Media Type
|
||
|
||
1. **Открытие настроек:**
|
||
- Откройте Zabbix и перейдите в раздел "Administration" → "Media types"
|
||
- Нажмите "Create media type"
|
||
|
||
2. **Настройка Media Type:**
|
||
- Заполните форму:
|
||
- **Name:** Message Gateway
|
||
- **Type:** Webhook
|
||
- **Script name:** message-gateway
|
||
- **Script parameters:**
|
||
```
|
||
{ALERT.SENDTO}
|
||
{ALERT.SUBJECT}
|
||
{ALERT.MESSAGE}
|
||
```
|
||
- Сохраните настройки
|
||
|
||
3. **Создание Action:**
|
||
- Перейдите в раздел "Configuration" → "Actions" → "Trigger actions"
|
||
- Нажмите "Create action"
|
||
- Заполните форму:
|
||
- **Name:** Send to Message Gateway
|
||
- **Conditions:** выберите условия (например, "Trigger severity" = "High")
|
||
- **Operations:** добавьте операцию "Send to Message Gateway"
|
||
- **Recovery operations:** добавьте операцию "Send to Message Gateway"
|
||
- Сохраните настройки
|
||
|
||
4. **Настройка User Media:**
|
||
- Откройте пользователя в Zabbix
|
||
- В разделе "Media" добавьте новый media:
|
||
- **Type:** Message Gateway
|
||
- **Send to:** `monitoring/0` (формат: `{group_name}/{thread_id}`)
|
||
- **When active:** 1-7,00:00-24:00
|
||
- Сохраните настройки
|
||
|
||
## Пример конфигурации
|
||
|
||
**Media Type в Zabbix:**
|
||
- **Name:** Message Gateway
|
||
- **Type:** Webhook
|
||
- **Script name:** message-gateway
|
||
- **Script parameters:**
|
||
```
|
||
{ALERT.SENDTO}
|
||
{ALERT.SUBJECT}
|
||
{ALERT.MESSAGE}
|
||
```
|
||
|
||
**Action:**
|
||
- **Name:** Send to Message Gateway
|
||
- **Conditions:** Trigger severity = High
|
||
- **Operations:** Send to Message Gateway
|
||
- **Recovery operations:** Send to Message Gateway
|
||
|
||
**User Media:**
|
||
- **Type:** Message Gateway
|
||
- **Send to:** `monitoring/0`
|
||
- **When active:** 1-7,00:00-24:00
|
||
|
||
## Формат данных
|
||
|
||
Zabbix отправляет данные в следующем формате:
|
||
|
||
```json
|
||
{
|
||
"link": "https://zabbix.example.com/tr_events.php?triggerid=42667&eventid=8819711",
|
||
"status": "PROBLEM",
|
||
"action-id": "7",
|
||
"alert-subject": "Problem: High CPU utilization (over 90% for 5m)",
|
||
"alert-message": "Problem started at 16:48:44 on 2024.02.08",
|
||
"event-id": "8819711",
|
||
"event-name": "High CPU utilization (over 90% for 5m)",
|
||
"event-nseverity": "2",
|
||
"event-opdata": "Current utilization: 95.2 %",
|
||
"event-severity": "Warning",
|
||
"host-name": "pnode28",
|
||
"host-ip": "10.14.253.38",
|
||
"host-port": "10050"
|
||
}
|
||
```
|
||
|
||
## Поддерживаемые статусы
|
||
|
||
- `PROBLEM` - проблема обнаружена
|
||
- `OK` - проблема разрешена
|
||
|
||
## Уровни серьезности
|
||
|
||
- `Disaster` - катастрофа
|
||
- `High` - высокая
|
||
- `Warning` - предупреждение
|
||
- `Average` - средняя
|
||
- `Information` - информация
|
||
|
||
## Примечания
|
||
|
||
- Не требует авторизации (API ключ не нужен)
|
||
- Если Jira включена, будет автоматически создан тикет в Jira (внутренний процесс)
|
||
- В сообщении будет добавлена кнопка для перехода к тикету в Jira (если поддерживается мессенджером)
|
||
- Ссылка на событие Zabbix будет добавлена в сообщение
|
||
- Thread ID поддерживается только для Telegram (для MAX/VK игнорируется)
|
||
- Можно настроить фильтрацию по серьезности события
|
||
|