Files
MessageGateway/docs/jira-mapping.md
Sergey Antropov b90def35ed Initial commit: Message Gateway project
- FastAPI приложение для отправки мониторинговых алертов в мессенджеры
- Поддержка Telegram и MAX/VK
- Интеграция с Grafana, Zabbix, AlertManager
- Автоматическое создание тикетов в Jira
- Управление группами мессенджеров через API
- Декораторы для авторизации и скрытия эндпоинтов
- Подробная документация в папке docs/

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-11-12 20:25:11 +03:00

4.1 KiB
Raw Permalink Blame History

Конфигурация Jira Mapping

Формат конфигурации

Конфигурация маппинга Jira хранится в файле config/jira_mapping.json. Она определяет, какие тикеты создавать в Jira на основе алертов.

Пример конфигурации:

{
  "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 - имя хоста

Примеры условий:

{
  "conditions": {
    "severity": "critical",
    "namespace": "production"
  }
}
{
  "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