Zpět na domů

Alertmanager-jira: integrace alertů s Jira

Alertmanager-jira — webhook plugin pro integraci alertů Prometheus/VictoriaMetrics s Jira. Podporuje flexibilní nastavení polí, šablony a deduplikaci. Nasazení v Dockeru, příklady konfigurace pro SRE týmy.

Webhook Alertmanager-jira pro Jira: úplný návod
Advertisement 728x90

# Integrace Alertmanageru s Jira: flexibilní webhookový plugin na Quarkus

Alertmanager-jira — open-source webhook plugin pro Alertmanager (Prometheus, VictoriaMetrics), který vytváří a spravuje úkoly v Jira. Podporuje přiřazování vykonavatelů, vlastní pole, šablony popisů a vyhledávání duplicit podle JQL. Vyvinuto na Quarkus, nasaditelné v Docker/Podman. Nástroj řeší problémy omezených alternativ jako jiralert, zajišťuje plnou kontrolu nad tikety bez vlastních skriptů.

Problémy stávajících řešení

Jiralert od prometheus-community vytváří úkoly podle group_key, používá Go šablony, podporuje automatické uzavírání. Na praxi se však projevují omezení:

  • Minimální nastavení: základní šablony v YAML, absence podpory vlastních polí a dynamických JQL dotazů.
  • Dlouhé haše group_key ničí UI Jira.
  • Pomalý vývoj: otevřené chyby od roku 2018, vzácné aktualizace.

Další varianty — enterprise řešení jako PagerDuty nebo vlastní kód. Alertmanager-jira nabízí flexibilitu: výchozí hodnoty pro projekty/typy úkolů, přepsání v alertech, komentáře k existujícím tiketům.

Google AdInline article slot

Nasazení v kontejneru

Projekt je dodáván s Docker obrazy na hub.docker.com. Příklad spuštění s Podman (analogicky Docker):

podman run -it --rm --name alertmanager-jira \
    --env JIRA_URL=https://your-jira.com \
    --env JIRA_USERNAME=service-account \
    --env JIRA_PASSWORD=your-token \
    -p 8080:8080 \
        hubbitus/alertmanager-jira:latest

Nastavení Alertmanageru

Do alertmanager.yml přidejte receiver:

receivers:
  - name: 'jira'
    webhook_configs:
      - url: 'http://your-host:8080'
        send_resolved: true

Konfigurace alertů v Prometheus/VictoriaMetrics

Pole Jira se zadávají předponou jira__ v labels/annotations pravidel. Podporovány jsou šablony Groovy SimpleTemplate.

Google AdInline article slot

Příklad prometheus-rules.yml:

groups:
- name: example
  rules:
  - alert: HighCPU
    expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
    for: 1m
    labels:
      severity: critical
      jira__field__severity: High
    annotations:
      summary: "High CPU on {{ $labels.instance }}"
      description: "CPU usage above 80%."
      jira__project_key: OPS
      jira__issue_type_name: Incident
      jira__field__assignee: oncall-sre
      jira__field__labels: 'monitoring, cpu, alert'
      jira__field__component_s: 'DevOps+infrastructure, DQ-issues+alerts'
      jira__field__name__1: 'Custom Field'
      jira__field__value__1: 'Some dynamic value: ${context.alert.severity}'

Výchozí hodnoty v prometheus.yml přes alert_relabel_configs:

alerting:
  alert_relabel_configs:
    - source_labels: [__alert_severity]
      target_label: jira__field__severity
      regex: critical;High
    - target_label: jira__project_key
      replacement: OPS

Přepsání v konkrétních alertech má prioritu. Šablony:

Google AdInline article slot
  • ${context.alert.fingerprint} — haš alertu.
  • ${context.jiraProject.name} — metadata projektu.
  • JQL pro vyhledávání: labels = "alert[${context.alert.hashCode()}]") AND statusCategory != Done.

Technická realizace

Na bázi Java + Groovy (Quarkus), Atlassian Jira SDK. Testy: modulární pro parsování, integrační na externí Jira instanci. CI nespouští testy kvůli licenčním omezením Jira — vyžaduje manuální spuštění na nasazeném serveru.

Možná zlepšení: integrace testů do CI přes dočasné licence nebo mock servery.

Co je důležité

  • Flexibilita polí: libovolná vlastní pole, labels, components přes předponu jira__ a šablony.
  • Deduplikace: JQL vyhledávání existujících úkolů s možností komentářů.
  • Automatizace: snížení MTTR v DevOps/SRE/ITSM díky auto-tiketům.
  • Připravenost pro produkci: 2 roky v provozu na data platformě.
  • Open-source: Apache 2.0, GitHub pro issues/PR.

— Editorial Team

Advertisement 728x90

Číst dál