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.

Alarmierung per Jira (Notifications)

Checkmk Manual

Verwandte Artikel

Suche im Handbuch

Dieser Artikel ist noch nicht fertig und nur ein Entwurf!

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 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, müssen Sie in Jira zunächst zwei neue Felder (Fields) anlegen und bestimmte Jira IDs ermitteln. Außerdem muss das Alarmierungs Programm in Checkmk eingerichtet werden.

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 bitte All, damit alle Feld Arten ersichtlich werden.

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

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 die Anlage bitte 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 Script ermitteln

Sie können die IDs auch gesammelt mit einem Script 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 Scripts 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 bitte 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 bitte den Benutzer und das Passwort für den Zugriff.

Jetzt benötigen Sie die vorher ermittelten IDs in den Feldern Project ID und Issue type ID. Die IDs der in Jira angelegten, benutzerdefinierten Felder tragen Sie bitte 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 bitte unter Monitoring URL die URL Ihrer Checkmk Instanz ein, also z. B. https://cmkserver/site.

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

Die Beschreibung, die in den Issues für Host und Service Probleme erzeugt wird, 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 transistion ID definieren. Jira hat dafür folgende Optionen:

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

Als letzte Option können Sie optional über Set optional timeout for connections to JIRA den Timeout für Verbindungen mit Jira konfigurieren. Wenn Sie hier nichts definiere, wird ein Timeout von 10 Sekunden genommen.