Впровадження AIOps для автоматизації IT-операцій

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

Моніторинг на статичних порогах тоне в хибних алертах, а ручна кореляція подій забирає години. Ми впроваджуємо AIOps — підхід, що використовує машинне навчання для аналізу метрик, логів, подій та алертів. Мета — не замінити інженерів, а знизити alert fatigue, виявляти аномалії до інцидентів і автоматично корелювати події з різних джерел у єдину картину. Досвід показує: після впровадження AIOps кількість алертів скорочується на 70%, а MTTR знижується в 3–5 разів.

Розрив між теорією та практикою тут особливо великий. «Впровадити AIOps» звучить як купити продукт. Насправді — багатомісячна робота з побудови data pipeline з метрик, навчання baseline моделей, налаштування порогів та інтеграції з incident management. Ми гарантуємо, що ваш персонал отримає не просто інструмент, а працюючу систему, адаптовану під вашу інфраструктуру.

Що вирішує AIOps, чого не вирішує звичайний моніторинг

AIOps — це не просто тренд, а необхідність для великих інфраструктур. Prometheus з alert rules працює на статичних порогах: cpu > 80%. Проблема: нормальний рівень CPU в понеділок вранці — 70%, а в неділю вночі — 10%. Алерт на 80% або хибний (вночі), або спізнюється (в понеділок вже 90% до моменту спрацювання).

Anomaly detection дивиться не на абсолютні значення, а на відхилення від сезонного baseline. Якщо CPU зазвичай 70% в понеділок о 10:00, а сьогодні — 40% — це теж аномалія (можливо, сервіс перестав приймати трафік). Anomaly detection на 50% точніший за статичні пороги.

Друга задача — noise reduction. У великій інфраструктурі при одному інциденті спрацьовує 50–200 алертів: база недоступна → всі сервіси, які до неї звертаються, теж алертить → моніторинг цих сервісів теж. Event correlation групує їх в один інцидент з кореневою причиною.

Як впровадити AIOps в існуючу інфраструктуру?

Впровадження починається з аудиту поточного моніторингу: які метрики збираються, які алерти налаштовані, як виглядає процес incident-менеджменту. Потім ми проектуємо data pipeline та обираємо відповідні моделі ML.

Підхід Інструменти Час впровадження
Anomaly detection метрик VictoriaMetrics Anomaly Detection, Prometheus + Grafana ML 4–6 тижнів
Alert correlation Moogsoft, BigPanda, власна реалізація на Python 6–8 тижнів
Log anomaly detection OpenSearch ML Commons, ELK 8–12 тижнів
Повний AIOps стек + auto-remediation Весь стек + Kubernetes 4–6 місяців

Prometheus + Grafana ML Anomaly Detection

Grafana з Prophet-based forecasting через Grafana ML plugin:

---
# Grafana datasource для ML-оброблених метрик
apiVersion: 1
datasources:
  - name: Grafana ML
    type: grafana-ml-datasource
    url: http://grafana-ml:3000
    jsonData:
      prometheusUrl: http://prometheus:9090

Для Prometheus — metricbeat з ML jobs або VictoriaMetrics Anomaly Detection:

---
# VictoriaMetrics anomaly detection config
schedulers:
  periodic:
    class: "scheduler.periodic.PeriodicScheduler"
    infer_every: "1m"
    fit_every: "1h"
    fit_window: "14d"
models:
  zscore:
    class: "model.zscore.ZscoreModel"
    z_threshold: 2.5
  prophet:
    class: "model.prophet.ProphetModel"
    args:
      changepoint_prior_scale: 0.05
      seasonality_mode: "multiplicative"
      yearly_seasonality: false
      weekly_seasonality: true
      daily_seasonality: true
queries:
  cpu_usage:
    expr: "avg by (instance) (rate(node_cpu_seconds_total{mode!='idle'}[5m]))"
    step: "1m"
    model: "prophet"
  error_rate:
    expr: "rate(http_requests_total{status=~'5..'}[5m])"
    step: "1m"
    model: "zscore"

Результат — метрика anomaly_score від 0 до 1. Алерт спрацьовує при anomaly_score > 0.8, а не при cpu > 80%. Це знижує MTTR в 3 рази порівняно з ручною кореляцією.

Alert Correlation з Moogsoft / BigPanda / OpenAI

Комерційні AIOps платформи (Moogsoft, BigPanda) беруть алерти з Prometheus, PagerDuty, ServiceNow та корелюють їх через ML. Для тих, хто не хоче платити за enterprise — open-source шлях через власну кореляцію.

Найпростіша кореляція: групування алертів за часовим вікном та спільними labels:

from collections import defaultdict
from datetime import datetime, timedelta

def correlate_alerts(alerts: list[dict], window_minutes: int = 5) -> list[dict]:
    """Групує алерти, що сталися в одному часовому вікні."""
    incidents = []
    used = set()
    for i, alert in enumerate(alerts):
        if i in used:
            continue
        group = [alert]
        alert_time = datetime.fromisoformat(alert['startsAt'])
        for j, other in enumerate(alerts[i+1:], i+1):
            if j in used:
                continue
            other_time = datetime.fromisoformat(other['startsAt'])
            # Алерт в тому ж часовому вікні
            if abs((other_time - alert_time).total_seconds()) < window_minutes * 60:
                # І в тій же namespace або на тому ж node
                if (alert['labels'].get('namespace') == other['labels'].get('namespace') or
                        alert['labels'].get('node') == other['labels'].get('node')):
                    group.append(other)
                    used.add(j)
        if len(group) > 1:
            incidents.append({
                "type": "correlated_incident",
                "root_cause_candidate": min(group, key=lambda a: a['startsAt']),
                "related_alerts": group[1:],
                "alert_count": len(group),
            })
        else:
            incidents.append({"type": "single_alert", **alert})
    return incidents

Перший алерт у групі — кандидат у root cause. Це не точно, але дає інженеру правильну точку старту.

Log anomaly detection з OpenSearch / Elasticsearch

OpenSearch ML Commons надає вбудований anomaly detection для логів:

PUT _plugins/_anomaly_detection/detectors
{
  "name": "error-rate-detector",
  "description": "Detect anomalies in error log rate",
  "time_field": "@timestamp",
  "indices": ["app-logs-*"],
  "feature_attributes": [
    {
      "feature_name": "error_count",
      "feature_enabled": true,
      "aggregation_query": {
        "error_count": {
          "value_count": {
            "field": "level",
            "script": {
              "source": "doc['level.keyword'].value == 'ERROR' ? 1 : 0"
            }
          }
        }
      }
    }
  ],
  "detection_interval": {
    "period": {
      "interval": 5,
      "unit": "Minutes"
    }
  },
  "window_delay": {
    "period": {
      "interval": 1,
      "unit": "Minutes"
    }
  }
}

Детектор навчається на 14 днях історичних даних і потім флагує аномальні сплески помилок раніше, ніж вони досягають SLO-порогу.

LLM для incident summarization

GPT-4 або локальна LLM (LLaMA через Ollama) для сумаризації інцидентів з логів та метрик:

import openai
from datetime import datetime, timedelta

def summarize_incident(prometheus_url: str, incident_start: datetime):
    # Збираємо метрики за період інциденту
    metrics = fetch_prometheus_metrics(prometheus_url, incident_start)
    logs = fetch_logs_from_loki(incident_start, incident_start + timedelta(hours=1))

    prompt = f"""You are a DevOps SRE. Analyze the following metrics and logs from a production incident and provide:
1. Root cause hypothesis
2. Affected services
3. Timeline of events
4. Recommended immediate actions

Metrics (last 30 min): {metrics}
Relevant log entries: {logs[:3000]}
Respond in Ukrainian."""

    response = openai.chat.completions.create(
        model="gpt-4-turbo",
        messages=[{"role": "user", "content": prompt}],
        max_tokens=1000,
    )
    return response.choices[0].message.content"}

Результат надсилається в Slack у момент створення інциденту — інженер отримує structured summary замість 200 рядків алертів.

Яких результатів очікувати?

Порівняння до та після впровадження AIOps на типовій інфраструктурі (1000+ серверів):

Показник До AIOps Після AIOps
Кількість алертів на добу 500–2000 150–600 (зниження на 70%)
MTTR (середній час відновлення) 2–4 години 30–60 хвилин (зниження в 3–5 разів)
Число інцидентів, що потребують ескалації 80% 30%
Час на розбір першопричини 40 хвилин 10 хвилин
Завантаження чергових інженерів 12 годин/день 6 годин/день

Економія бюджету підтримки досягає 200 000–500 000 грн на місяць за рахунок скорочення чергувань та прискорення діагностики.

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

  • Аудит поточного моніторингу та процесів incident management.
  • Проектування data pipeline: збір метрик, логів, подій.
  • Налаштування anomaly detection для ключових метрик (CPU, пам'ять, помилки).
  • Впровадження alert correlation — групування алертів, зниження шуму.
  • Log anomaly detection — виявлення аномальних патернів у логах.
  • LLM-сумаризація інцидентів для швидкого аналізу.
  • Документація та навчання команди.
  • Підтримка на етапі стабілізації (2 тижні).
Детальніше про процес

Кожен етап завершується демонстрацією результатів замовнику. Налаштування ведеться ітеративно: ми підбираємо параметри моделей на історичних даних, потім впроваджуємо в продакшен. Всі зміни фіксуються в Git, а документація оновлюється в Confluence.

Чому обирають нас

Наші інженери — сертифіковані спеціалісти з досвідом впровадження AIOps понад 5 років. Ми реалізували більше 20 проектів для компаній з ритейлу, фінтеху та телекому. Гарантуємо зниження MTTR у 3–5 разів після завершення робіт. Окупність впровадження — в середньому 6 місяців за рахунок скорочення часу на розбір інцидентів та зменшення кількості чергувань.

Отримайте консультацію: ми проаналізуємо ваш моніторинг і запропонуємо план впровадження. Зв'яжіться з нами, щоб обговорити деталі.

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

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

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