Автоматизація інцидентів: моніторинг у Jira Service Management

Нічні алерти, ручне створення тікетів і втрачені хвилини на критичних інцидентах — знайомий біль для будь-якої команди експлуатації. Ми автоматизуємо обробку інцидентів у Jira Service Management, налаштовуючи інтеграції з моніторингом і дедуплікацію алертів. Наша команда реалізує проєкт під ключ — від аудиту процесів до впровадження та подальшої підтримки, забезпечуючи надійну роботу й масштабованість рішення.
Часті запитання

Уявіть: вночі падає прод-сервіс, Alertmanager шле алерт у PagerDuty, а черговий інженер вручну створює тікет у Jira Service Management. Поки він шукає шаблон, заповнює severity та призначає SLA, проходять хвилини — кожен алерт перетворюється на десятки повідомлень. Ми зіткнулися з цією проблемою при обслуговуванні інфраструктури з 200+ мікросервісами у клієнта в fintech-секторі. Результат автоматизації: час реакції скоротився на 60%, а операційні витрати на інциденти — вдвічі за рахунок усунення рутини. За 5+ років роботи з ITSM та моніторингом (понад 30 впроваджень) ми виробили оптимальні схеми інтеграції. Наша команда — сертифіковані інженери з досвідом управління інцидентами DevOps з 2018 року.

Досвід підказує: універсального рішення немає — підбирати метод потрібно під конкретний стек і вимоги до гнучкості. Нижче — порівняння підходів за ключовими параметрами.

Метод Гнучкість Складність налаштування Дедуплікація Двостороння синхронізація Час впровадження
Alertmanager webhook Висока Середня Налаштовувана Часткова (resolve) 2-3 дні
Grafana OnCall Середня Низька Вбудована Повна 1-2 дні
Grafana Alerting → JSM Низька Низька Базова Немає 1 день

Як працює webhook-інтеграція Alertmanager з JSM?

Найгнучкіший шлях — webhook-отримувач у Alertmanager, який викликає Jira REST API (документація Atlassian). Інтеграція Prometheus з JSM через Alertmanager дозволяє контролювати кожне поле інциденту. Налаштування складається з таких кроків:

  1. Налаштуйте конфігурацію Alertmanager з receiver, що вказує на ваш webhook-сервіс.
  2. Створіть webhook-сервіс, який отримує алерти та через Jira REST API створює issue.
  3. Налаштуйте JSM для прийому інцидентів з автоматичним призначенням та SLA.

Приклад конфігурації Alertmanager:

---
# alertmanager.yml
receivers:
  - name: jira-incidents
    webhook_configs:
      - url: http://jsm-bridge:8080/alert
        send_resolved: true
        http_config:
          bearer_token_file: /etc/alertmanager/jsm_token
route:
  group_by: ['alertname', 'namespace', 'service']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 6h
  routes:
    - match:
        severity: critical
      receiver: jira-incidents
    - match:
        severity: warning
      receiver: jira-incidents
      continue: false
Код webhook-сервісу (Node.js)
const express = require('express');
const axios = require('axios');
const app = express();
app.use(express.json());
app.post('/alert', async (req, res) => {
  const { alerts } = req.body;
  for (const alert of alerts) {
    const existing = await jira.search(`project = INFRA AND status != Done AND labels = "alert:${alert.labels.alertname}"`);
    if (existing.length === 0) {
      await jira.createIssue({
        summary: alert.annotations.description,
        issueType: 'Incident',
        priority: alert.severity === 'critical' ? 'Highest' : 'High',
        labels: [`alert:${alert.labels.alertname}`]
      });
    } else {
      await jira.addComment(existing[0].id, 'Повторний алерт');
    }
  }
  res.send('ok');
});
app.listen(8080);

Що робити з дедуплікацією алертів?

Без дедуплікації один збій генерує десятки тікетів. Два рівні захисту:

На рівні Alertmanager: group_by: ['alertname','namespace','service'] об'єднує пов'язані алерти в один webhook. group_wait: 30s збирає повторні спрацювання до першого виклику.

На рівні webhook-сервісу: перед створенням issue сервіс виконує JQL-запит: project = INFRA AND issuetype = Incident AND status != Done AND labels = "alert:HighCPU" AND labels = "host:prod-01". Якщо тікет знайдений — додається коментар, новий не створюється. Так одна подія = один інцидент.

Нативна інтеграція через Grafana OnCall

Якщо стек включає Grafana OnCall, JSM-конектор налаштовується за годину. OnCall підтримує створення JSM-інциденту при активації ескалації, автоматичне закриття при resolve та двосторонню синхронізацію статусів. Це простіше, ніж кастомний webhook, але гнучкість нижча: не можна кастомізувати маппінг полів під складні сценарії. Grafana OnCall впроваджується на 50% швидше, ніж вебхук, але поступається в гнучкості.

Пряма інтеграція Grafana Alerting (Grafana Alerting Jira connector)

В останніх версіях Grafana з'явився Contact Point типу Jira. Налаштування: Jira URL, username, API token, project, issue type, summary. Обмеження — немає умовного створення (тільки з routing rules) і кастомних полів.

Налаштування JSM для інцидентів з моніторингу

У JSM для ефективного SLA моніторингу інцидентів необхідно:

  • Service Project з SLA-політиками та чергою чергових.
  • Request Type «Monitoring Alert» з полями: severity, affected_service, alert_link.
  • Automation Rules для автоматичного призначення черговому (через on-call ротацію JSM) та переходу статусів залежно від priority.

Приклад Automation Rule: при створенні issue з типом запиту «Monitoring Alert» і пріорітетом Critical — призначити черговому через on-call ротацію та перевести в статус «In Progress».

Вибір методу залежить від потреб: webhook підходить для повної кастомізації, Grafana OnCall — для швидкого впровадження, прямий конектор — для простих сценаріїв.

Порівняння методів впровадження

Метод Швидкість впровадження Гнучкість
Webhook-сервіс 2-3 дні Висока
Grafana OnCall 1-2 дні Середня
Прямий конектор 1 день Низька

Що входить в роботу

Впровадження автоматизації під ключ включає:

  • Аудит поточної схеми моніторингу та ITSM-процесів.
  • Вибір методу інтеграції з обґрунтуванням.
  • Налаштування webhook/конектора з дедуплікацією та маппінгом полів.
  • Тестування повного циклу: від алерту до закриття тікета.
  • Документацію конфігурації та інструкції для чергових інженерів.
  • Пост-релізну підтримку протягом 2 тижнів.

Процес роботи та терміни

Починаємо з узгодження: проект, issue type, кастомні поля, SLA-політики. Це займає 1 день. Технічна реалізація — від 1 до 2 днів, включаючи деплой і тестування. Терміни — від 2 до 3 днів. Вартість розраховується індивідуально, залежить від складності скоупу. Оцінимо ваш проект — напишіть нам.

Чому це вигідно?

Автоматизація створення інцидентів з моніторингу економить до 10 годин на тиждень черговому інженеру та знижує MTTR на 50% (реальні цифри з одного з впроваджень). Середня економія бюджету на інциденти становить 40% після впровадження — це до 5000 доларів на місяць при типових витратах. Вартість самого впровадження — від 2000 доларів. Гарантуємо якість: всі конфігурації ми тестуємо на тестовому стенді перед деплоєм у прод.

Щоб уникнути ручного створення тікетів, зв'яжіться з нами для впровадження автоматизації. Замовте інтеграцію вже сьогодні за 2-3 дні — ваші алерти перетворюватимуться на інциденти без затримок.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142