TKmon Servicekatalog erweitern

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen
Hinweis: Bitte beachten Sie, dass dieser Artikel / diese Kategorie sich entweder auf ältere Software/Hardware Komponenten bezieht oder aus sonstigen Gründen nicht mehr gewartet wird.
Diese Seite wird nicht mehr aktualisiert und ist rein zu Referenzzwecken noch hier im Archiv abrufbar.

TKmon ist ein von NETWAYS und der Thomas-Krenn.AG entwickeltes Open Source Webinterface für die vereinfachte Administration der Monitoring-Software Icinga. Zur Einbindung von Services verwendet TKmon einen Katalog im JSON Format, der durch eigene Services erweiterbar ist. Nachfolgend wird beschrieben wie so eine Erweiterung vorgenommen wird.

TKmon Logo

Struktur

Die Konfiguration der TKmon-Servicechecks erfolgt in drei verschiedenen Verzeichnissen.

  1. Icinga Pluginverzeichnis
    • /usr/lib/nagios/plugins/ die zu verwendenden Icinga Plugins.
  2. Icinga Konfigurationsverzeichnis
    • Der Ordner /etc/nagios-plugins/config/ enthält die Konfigurationen der Checks als *.cfg Files. Sie enthalten den Aufruf des Icinga Plugins mit den konfigurierten Parametern.
  3. Servicekatalog
    • Die Servicekataloge befinden sich im Verzeichnis /etc/tkmon/service-catalogues/. Sie sind als JSON-Files abgelegt und enthalten Bezeichnungen für die Weboberfläche sowie Parametereingabefelder.

Einen neuen Check hinzufügen

Folgende Komponenten werden für einen neuen Service-Check benötigt:

  • Ein Icinga Plugin
  • Eine Icinga Konfiguration, die den Aufruf des Plugins spezifiziert
  • Ein Eintrag im TKmon Service-Katalog, für die Integration in TKmon

Nachfolgend wird das Zusammenspiel der Komponenten exemplarisch anhand des Festplattenstatuschecks für Synology NAS erklärt.

Icinga Plugin-Verzeichnis

Die Synology Checks basieren auf /usr/lib/nagios/plugins/check_snmp.

Icinga Konfigurationsverzeichnis

Danach wird die Datei check_snmp_synology.cfg erstellt, die das Check-Kommando enthält:

define command{
command_name check_synology_disk_status
command_line /usr/lib/nagios/plugins/check_snmp -H $HOSTADDRESS$ -P 3 -U $ARG1$ -L authNoPriv -a MD5 -A $ARG2$ -o .1.3.6.1.4.1.6574.2.1.1.5.$ARG3$ -l "Diskstatus"
}
  • Eine command Konfiguration beginnt immer mit define command und wird von geschweiften Klammern umschlossen.
  • command_name Name des Checks
  • command_line Hier werden der Pfad zum Plugin und die Parameter mit Variablen festgelegt. Die Parameter können mit fixen Werten (z.B. authNoPriv) oder Variablen (z.B. $ARG1$) konfiguriert werden. Die Variablen werden dann anschließend im Servicekatalog konfiguriert. Über das TKmon-Interface erhalten später, beim Hinzufügen des Services, die Variablen konkrete Werte.

Servicekatalog-Verzeichnis

Dieser Servicekatalog-Eintrag ist der Datei check-snmp-synology.json entnommen. Soll das nachfolgende Beispiel als Vorlage dienen, müssen die Kommentar-Zeilen (beginnend mit "//") entfernt werden, da JSON diese nicht unterstützt.

{
        "type": "service",
        "version": "1.0",
        "description": "Services catalogue for synology snmp checks",
        "data": [

{
        "service_description": "snmp-synology-disk-status",
        "display_name": "SNMP-Synology-Disk-Status",
        "check_command": {
                "command_name": "check_synology_disk_status",
                //Hier wird die Bezeichnung des Checks in der *.cfg eingetragen
                "arguments": [
		{
		        "label": "SNMPv3 Username",
                        "description": {
                                "en_US": "SNMPv3 Username",
                                "de_DE": "SNMPv3 Username"
                        },
                        "validation": "string",
                        "argument": "-U",
                        //Hier wird der Parameter -U definiert
                        "value": ""
                        //Keine Vorbelegung des Wertes
                },
	        {
                        "label": "SNMPv3 Password",
                        "description": {
                                "en_US": "SNMPv3 Password",
                                "de_DE": "SNMPv3 Password"
                        },
                        "validation": "string",
                        "argument": "-A",
                        //Hier wird -A ohne Vorbelegung definiert
                        "value": ""
                },
                {
                        "label": "Disk number",
                        "description": {
                                "en_US": "Insert disk number",
                                "de_DE": "Disk Nummer angeben"
                        },
                        "validation": "string",
                        "argument": "-o",
                        //Hier wird -o ohne Vorbelegung definiert
                        "value": ""
                }
                ]
        },
        "_catalogue_attributes": {
                "tags": ["Disk status"],
                //Zusätzliche Tags, um den gewünschten Check schneller zu finden.
                "name": "snmp_synology_disk_status",
                //Der hier angegebene Name wird im Servicestatus angezeigt.
                "label": "SNMP-Synology-Disk-Status",
                //Diese Bezeichnung wird im Icinga Backend angezeigt.
                "description": {
                //Kurzbeschreibung
                        "en_US": "Checks via SNMP the disk status of a Synology NAS",
                        "de_DE": "Überprüft über SNMP den Diskstatus eines Synology NAS"
                },
                "defined": true,
                "defined_in": "/etc/nagios-plugins/config/check_snmp_synology.cfg",
                //Absolute Pfadangabe der *.cfg File
                "doc": {
                //Ausführlichere Erklärung des Checks
                        "en_US": [
                                "<h4>SNMP Synology Disk Status</h4>",
                                "<p>Using this plugin, the disk status of a Synology NAS",
                                "can be monitored with Nagios or Icinga over SNMP.</p>"
                        ],
                        "de_DE": [
                                "<h4>SNMP Synology Disk Status</h4>",
                                "<p>Mit diesem Plugin kann der Disk Status eines Synology NAS",
                                "mit Nagios oder Icinga über SNMP überwacht werden.</p>"
                        ]
                },
                "tk_notify": false,
                "tk_notify_default": false
        }
}

        ]
}


Foto Thomas Niedermeier.jpg

Autor: Thomas Niedermeier

Thomas Niedermeier arbeitet im Product Management Team von Thomas-Krenn. Er absolvierte an der Hochschule Deggendorf sein Studium zum Bachelor Wirtschaftsinformatik. Seit 2013 ist Thomas bei Thomas-Krenn beschäftigt und kümmert sich unter anderem um OPNsense Firewalls, das Thomas-Krenn-Wiki und Firmware Sicherheitsupdates.

Icon-Twitter.png 

Das könnte Sie auch interessieren

Adaptec RAID Monitoring Plugin
Call-Home-Service mit Icinga 2 nutzen
Thomas-Krenn Ubuntu Repository