Initial commit: Message Gateway project
- FastAPI приложение для отправки мониторинговых алертов в мессенджеры - Поддержка Telegram и MAX/VK - Интеграция с Grafana, Zabbix, AlertManager - Автоматическое создание тикетов в Jira - Управление группами мессенджеров через API - Декораторы для авторизации и скрытия эндпоинтов - Подробная документация в папке docs/ Автор: Сергей Антропов Сайт: https://devops.org.ru
This commit is contained in:
113
docs/jira-mapping.md
Normal file
113
docs/jira-mapping.md
Normal file
@@ -0,0 +1,113 @@
|
||||
# Конфигурация Jira Mapping
|
||||
|
||||
## Формат конфигурации
|
||||
|
||||
Конфигурация маппинга Jira хранится в файле `config/jira_mapping.json`. Она определяет, какие тикеты создавать в Jira на основе алертов.
|
||||
|
||||
**Пример конфигурации:**
|
||||
```json
|
||||
{
|
||||
"alertmanager": {
|
||||
"default_project": "MON",
|
||||
"default_assignee": null,
|
||||
"default_issue_type": "Bug",
|
||||
"default_priority": "High",
|
||||
"mappings": [
|
||||
{
|
||||
"conditions": {
|
||||
"severity": "critical",
|
||||
"namespace": "production"
|
||||
},
|
||||
"project": "MON",
|
||||
"assignee": "devops-team@example.com",
|
||||
"issue_type": "Bug",
|
||||
"priority": "Highest",
|
||||
"labels": ["critical", "production", "alertmanager"]
|
||||
}
|
||||
]
|
||||
},
|
||||
"grafana": {
|
||||
"default_project": "MON",
|
||||
"default_assignee": null,
|
||||
"default_issue_type": "Bug",
|
||||
"default_priority": "High",
|
||||
"mappings": []
|
||||
},
|
||||
"zabbix": {
|
||||
"default_project": "MON",
|
||||
"default_assignee": null,
|
||||
"default_issue_type": "Bug",
|
||||
"default_priority": "High",
|
||||
"mappings": []
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Условия маппинга
|
||||
|
||||
Условия маппинга определяют, когда использовать конкретный маппинг. Поддерживаются следующие условия:
|
||||
|
||||
### Для AlertManager:
|
||||
- `status` - статус алерта (firing, resolved)
|
||||
- `severity` - критичность (critical, warning, info)
|
||||
- `namespace` - namespace Kubernetes
|
||||
- `alertname` - название алерта
|
||||
- Любые другие метки из `commonLabels`
|
||||
|
||||
### Для Grafana:
|
||||
- `state` - состояние алерта (alerting, ok, paused, pending, no_data)
|
||||
- `ruleName` - название правила
|
||||
- `tags` - теги алерта (объект с ключами и значениями)
|
||||
|
||||
### Для Zabbix:
|
||||
- `status` - статус (PROBLEM, OK)
|
||||
- `event-severity` - серьезность события
|
||||
- `event-name` - название события
|
||||
- `host-name` - имя хоста
|
||||
|
||||
**Примеры условий:**
|
||||
```json
|
||||
{
|
||||
"conditions": {
|
||||
"severity": "critical",
|
||||
"namespace": "production"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
"conditions": {
|
||||
"state": "alerting",
|
||||
"tags": {
|
||||
"environment": "production"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Приоритет маппингов:**
|
||||
1. Проверяются все маппинги в порядке их определения
|
||||
2. Используется первый маппинг, условия которого совпадают с данными алерта
|
||||
3. Если маппинг не найден, используются значения по умолчанию
|
||||
|
||||
## Автоматическое создание тикетов
|
||||
|
||||
При получении алерта, если интеграция с Jira включена и выполнены условия для создания тикета:
|
||||
|
||||
1. Приложение проверяет конфигурацию маппинга
|
||||
2. Находит подходящий маппинг на основе условий алерта
|
||||
3. Создает тикет в Jira с указанными параметрами
|
||||
4. Добавляет кнопку в Telegram сообщение со ссылкой на созданный тикет
|
||||
|
||||
**Настройка переменных окружения:**
|
||||
- `JIRA_ENABLED=true` - включить интеграцию с Jira
|
||||
- `JIRA_URL=https://jira.example.com` - URL Jira сервера
|
||||
- `JIRA_EMAIL=user@example.com` - Email пользователя Jira
|
||||
- `JIRA_API_TOKEN=your_jira_api_token_here` - API токен Jira
|
||||
- `JIRA_PROJECT_KEY=MON` - Ключ проекта Jira по умолчанию
|
||||
- `JIRA_DEFAULT_ASSIGNEE=user@example.com` - Исполнитель по умолчанию
|
||||
- `JIRA_DEFAULT_ISSUE_TYPE=Bug` - Тип задачи по умолчанию
|
||||
- `JIRA_CREATE_ON_ALERT=true` - Создавать тикет при алерте
|
||||
- `JIRA_CREATE_ON_RESOLVED=false` - Создавать тикет при resolved
|
||||
|
||||
Reference in New Issue
Block a user