Wir nutzen Cookies, um Ihnen eine optimale Nutzung dieser Webseite zu ermöglichen. Mehr Informationen finden Sie im Datenschutzhinweis. Wir nehmen an, dass Sie damit einverstanden sind, falls Sie diese Webseite weiter besuchen.

Ihre Cookie-Einstellungen
Ihre Einstellungen wurden aktualisiert.
Damit die Änderungen wirksam werden, löschen Sie bitte Ihre Browser-Cookies und den Cache und laden dann die Seite neu.

Die Checkmk-Konferenz #6 steht an! Regulärer Verkauf endet in . Tickets hier!

Alarmierung per Jira (Notifications)

Checkmk Manual
Letzte Aktualisierung: 20. November 2019

Verwandte Artikel

Suche im Handbuch

1. Einleitung

Wenn Sie die Software Jira zur Fehlerverfolgung, Problemverfolgung oder zum Projektmanagement verwenden, können Sie mit der Checkmk Enterprise Version ab Version 1.6.0 Alarmierungen aus Checkmk heraus an Jira senden.

Unterstützt werden dabei folgende Optionen:

  • Erzeugen von Issues für Host- oder Service-Probleme
  • Issues mit definierter Priority erstellen
  • Issues mit einem definierten Label erstellen
  • Verlinkung auf Host/Services in Checkmk aus den erzeugten Jira-Issues
  • Setzen einer Resolution im Issue bei eintretenden OK-Zuständen

2. Konfiguration

Um die Anbindung von Checkmk an Jira einzurichten, legen Sie in Jira zunächst zwei neue Felder (Fields) an und ermitteln bestimmte Jira-IDs. Außerdem konfigurieren Sie das Alarmierungs-Programm in Checkmk.

2.1. Einrichten der benutzerdefinierten Felder in Jira

Checkmk muss bei der Interaktion mit Jira wissen, welche Alarmierungen bereits einen Issue erzeugt haben und welche nicht. Damit das möglich wird, müssen Sie in Jira zwei sogenannte Custom fields, also benutzerdefinierte Felder, anlegen.

Öffnen Sie dazu in Jira als administrativer User den Punkt Administration in der Kopfleiste.

Wählen Sie nun Issues und navigieren Sie im Abschnitt Fields zu Custom Fields. Über Add Custom Field können Sie ein neues, benutzerdefiniertes Feld anlegen.

Wählen Sie im nächtsten Fenster All, damit alle Feldarten angezeigt werden.

Suchen Sie hier die Auswahlmöglichkeit Text Field (single line) und drücken den Button Next.

Im Abschnitt Name tragen Sie den gewünschten Namen ein, in unserem Beispiel CMK_HOST_FIELD. Die Description können Sie optional mit einer Beschreibung des benutzerdefinierten Felds befüllen.

Da wir auch für Service-Alarmierungen ein solches Feld benötigen, wiederholen Sie das Anlegen mit einem entsprechenden Eintrag für Services, z. B. mit dem Feldnamen CMK_SVC_FIELD.

Damit Checkmk Issues in Jira erzeugen kann, benötigen Sie noch folgende Jira-IDs:

  • Project ID
  • Issuetype ID
  • Priority ID
  • Custom Host Field ID
  • Custom Service Field ID

Es gibt zwei Wege, um diese IDs zu ermitteln.

IDs über Jira GUI ermitteln (benötigt administrativen Account in Jira)

Atlassian, der Hersteller von Jira, bietet für diesen Weg eine eigene Anleitung.

IDs über externes Skript ermitteln

Sie können die IDs auch gesammelt mit einem Skript abfragen:

example_script.py
#!/usr/bin/env python

import requests
import sys
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

user = "JIRA_USERNAME"
password = "JIRA_PASSWORD"
project_name = "PROJECT_NAME"
jira_instance = "https://jira.server.your-domain.de"
custom_field_1 = "CMK_HOST_FIELD"
custom_field_2 = "CMK_SVC_FIELD"

def handle_response(user, password, jira_instance, what):
    url = "%s/rest/api/2/%s" % (jira_instance, what)
    sess = requests.Session()
    sess.auth = (user, password)
    response = sess.get(url, verify=False)

    return response

sys.stdout.write("=== IDs for project %s ===\n" % project_name)
infotext = ""
for section, id_name in [ ("Project_ID", "project"),
                          ("Issue", "issuetype"),
                          ("Priority", "priority"),
                          ("Field", "field"),
                        ]:

    json_response = handle_response(user,password,jira_instance,id_name).json()
    if id_name == "project":
        try:
            infotext += "Project ID: %s\n\n" % (section, [
                 item["id"]
                 for item in json_response if item["key"] == project_name
                ][0])
        except IndexError as e:
            sys.stderr.write(
                "Error getting Project ID: %s, Project name existing?\n" % e)

    else:
        types = ""
        for line in json_response:
            if id_name == "field":
                if line["name"].lower() == custom_field_1.lower() or \
                    line["name"].lower() == custom_field_2.lower():
                    types += "%s: %s\n" % (line["name"], line["id"].split("_")[1])
            else:
                types += "%s: %s\n" % (line["name"], line["id"])

        infotext += "=== %s types\n%s\n" % (section, types)

sys.stdout.write(infotext)

Die Ausgabe des Skripts sieht dann so aus:

=== IDs for project MY_PROJECT ===
Project ID: 10401

=== Issue types
Test case: 10600
Epic: 10000
Task: 10003
Sub-task: 10004
Bug: 10006
Story: 10001
Feedback: 10200
New Feature: 10005
Support: 10500
Improvement: 10002

=== Priority types
Blocker: 1
High: 2
Medium: 3
Low: 4
Lowest: 5
Informational: 10000
Critical impact: 10101
Significant impact: 10102
Limited impact: 10103
Minimal impact: 10104

=== Field types
CMK_HOST_FIELD: 10325
CMK_SVC_FIELD: 10000

Weitere Informationen zur Jira-API finden Sie hier.

2.2. Einrichten der Alarmierung in Checkmk

Wie Sie Alarmierungen im Allgemeinen einrichten, haben Sie bereits im Artikel Alarmierungen erfahren. Um die Jira-Alarmierung zu nutzen, wählen Sie die Alarmierungsmethode Jira (Enterprise only).

Im Feld JIRA URL tragen Sie die URL Ihrer Jira-Instanz ein, also z. B. jira.server.your-domain.com. Bei User Name und Password hinterlegen Sie den Benutzernamen und das Passwort für den Zugriff.

Jetzt benötigen Sie die vorher ermittelten IDs für die Felder Project ID und Issue type ID. Die IDs der in Jira angelegten, benutzerdefinierten Felder tragen Sie entsprechend unter Host custom field ID und Service custom field ID ein.

Um in den erzeugten Issues direkt nach Checkmk verlinken zu können, tragen Sie unter Monitoring URL die URL Ihrer Checkmk-Instanz ein, also z. B. https://cmkserver/site.

Mit der Option Priority ID können Sie definieren, mit welcher Priorität die Issues in Jira angelegt werden.

Die Beschreibungen, die in den Issues für Host- und Service-Probleme erzeugt werden, können Sie über die Optionen Summary for host notifications und Summary for service notifications ändern.

Über den Punkt Label können Sie optinal definieren, ob Sie bei der Issue-Erzeugung in Jira Label mit übergeben möchten.

Wenn Sie bei OK Alarmierungen eine Resolution in den Issue eintragen lassen wollen, können Sie diese Resolution über Activate resolution with following resolution transition ID definieren. Jira hat dafür folgende Optionen:

  • 11 - 'To Do'
  • 21 - 'In Progress'
  • 31 - 'Done'

Über Set optional timeout for connections to JIRA können Sie den Timeout für Verbindungen zu Jira konfigurieren. Wenn Sie hier nichts eintragen, gilt der Standard-Timeout von 10 Sekunden.