# Конфигурация 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