Check_MK: Livestatus Schnittstelle

Check_MK stellt alle Informationen per Livestatus Schnittstelle bereit. So gut wie alles was man auf der Webseite des Monitorings sehen kann kommt aus Livestatus. Der Sprachsyntax für Abfragen ist LQL -> Livestatus Query Language. Per Default ist die Livestatus Schnittstelle nur auf dem Host selbst über einen Socket abrufbar. Es gibt aber die Möglichkeit per … Weiterlesen

Python: Cisco Config grabber – Suchen von Interface Configs & Erzeugen von neuer Config

Das Script Snippet dient dazu in den Backupfoldern z.B. vom 20.09.2016 nach Interfaces mit einer bestimmten Description und einem gesetzten Parameter z.B. service-policy zu suchen und automatisch Konfiguration zu erzeugen die diese Config entfernt. Configbeispiel Cisco Config  (swt70/20.09.2016/swt70-config.txt): interface GigabitEthernet1/0/47 description acp10 switchport access vlan 17 switchport mode access switchport nonegotiate spanning-tree guard loop service-policy … Weiterlesen

Check_MK: Cluster Checks bauen

Hier ein kleines Beispiel wie man einen Cluster Check implementieren kann. Testumgebung: 3 Nodes node1,node2 und node3 welche als Clusterobjekt cluster zusammengefasst sind. Die Daten kommen von Piggybacks. Clustercheck ist mycluster und ist ein Beispiel Check. Schritt 1: Nodes anlegen In WATO 3 Nodes anlegen mit der IP 127.0.0.1 (Testumgebung, Daten kommen von Piggybacks), Agent: … Weiterlesen

DNS Blacklist Check

Check um zu Überprüfen ob ein Mailserver auf einer Blacklist ist. Der Check lässt sich auch in Check_MK einbinden, dazu das Script in ~/local/lib/nagios/plugins/ ablegen und eine Regel „Classical active and passive Monitoring checks“ für den Mailserver erstellen. Eine native Check_MK Implementierung folgt noch 😉 #!/usr/bin/env python # -*- encoding: utf-8; py-indent-offset: 4 -*- # # … Weiterlesen

Python: Einfacher IMAP Client

Die Überschrift sagt eigentlich schon alles. Das Code Snippet dient dazu von einem IMAP Server Mails zu laden und mit dem Payload Dinge anzustellen. #!/usr/bin/env python import imaplib import sys import email import re import email.header import base64 from HTMLParser import HTMLParser username = „blah@blah.de“ password = „xxxxxx“ imap_rz1 = „imap.xxx.de“ imap_rz2 = „imap-rz2.xxxxx.de“ class … Weiterlesen

Check_MK: Host custom variables

Check_MK bietet auch die Möglichkeit die Host Variablen zu erweitern um z.B. ein Host Description Feld hinzuzufügen. Die Erweiterung muss in ~/local/share/check_mk/web/plugins/wato/ abgelegt werden. Die Dateiendung ist zwingend .py. OMD[dev1]:~/local/share/check_mk/web/plugins/wato$ cat host_custom_vars.py #!/usr/bin/env python declare_host_attribute( NagiosTextAttribute( # Sektion / Gruppe „MY_HOST_CUSTOM_VARIABLES“, # Variable mit beginnenden Unterstrich „_HOST_MAGIC“, # Feldbeschreibung _(„Host Magic“), # Hilfe _(„Hilfe“), ), … Weiterlesen

Check_MK: Service custom variables

Die Service Variablen lassen sich genau so Erweitern wie die Host Variablen. Dazu muss man eine neue Definition erstellen im Folder ~/local/share/check_mk/web/plugins/wato/. Die Dateiendung muss .py sein. #!/usr/bin/env python register_rule( # Sektion „Test“, # Variable „extra_service_conf:_test_test“, # Parameter TextUnicode( title = _(„TEST TEST“), help = _(„Test test“), size = 80, attrencode = True, ), itemtype … Weiterlesen

Check_MK: yield statt return in der Check Funktion

Check_MK erwartet bei der Check Funktion ein Tuple mit 2 (ohne Performance Daten) bzw. 3 Werten (mit Performance Daten). <STATUS>, <MESSAGE>, <PERFOMANCEDATA> Wenn man in einem Service mehrere Werte aggregieren möchte z.B. man hat mehrere Lüfter im System möchte aber nicht für jeden einen eigenen Service sondern nur einen einzigen, so muss man die Werte … Weiterlesen

Check_MK: Piggyback Checkergebnisse anderer Hosts bereitstellen

Es gibt die Möglichkeit Check Ergebnisse wenn ein Host nicht direkt erreichbar ist für Check_MK oder man bestimmte Dinge z.B. Erreichbarkeit eines TCP Services von einem anderen Host aus testen möchte, als Piggyback über den Agenten eines anderen Hosts mitzugeben. In den Beispiel haben wir einen Host (router) der ein Check Ergebnis von einem anderen … Weiterlesen

Check_MK: Mit gespeicherten SNMP Walks Checks entwickeln

Es ist keine schlechte Idee seine Checks auf einer Testinstanz zu entwickeln, geht etwas schief wird das Produktionssystem davon nicht beeinflusst. Check_MK bietet die Möglichkeit einen SNMP Walk zu exportieren und diesen für die Checkentwicklung zu verwenden. Schritt 1: Export eines SNMP Walks in Check_MK OMD[test1]:~$ cmk -v –snmpwalk router router: Walk on „.1.3.6.1.2.1″…2939 variables. … Weiterlesen

Check_MK: Helferlein und Treasures

Check_MK hat ein paar kleine Helferlein & Treasures an Board die nicht jeder kennt. mkcheck Mkcheck ist ein Script das ein Template für einen neuen eigenen Check erzeugt. Zu finden ist es unter ~/share/doc/check_mk/helpers/mkcheck OMD[test1]:~$ ~/share/doc/check_mk/helpers/mkcheck -h DESCRIPTION: This script creates a basic check file or if ‚-m‘ specified a manual page. You have to … Weiterlesen

Check_MK: Eigener Agent Check

Neben den lokalen Checks gibt es noch Checks die als Plugin im Agenten laufen. Der Unterschied liegt darin das auf dem Host auf dem der Agent läuft keine Bewertung der Informationen stattfindet, diese werden dem Check_MK Monitoring nur als Text zur Verfügung gestellt. Somit basiert ein Agent Plugin aus einem Host Teil (Agent Plugin) und … Weiterlesen

Check_MK: Einfacher lokaler Check (Agent)

Dem Check_MK Agenten ist es egal mit welcher Sprache ein lokaler Check geschrieben ist, er muss vom Betriebsystem ausführbar sein. Somit kann jede Scriptsprache (Perl, PHP, Python, Powershell, VBS, etc.) verwendet werden. Der Agent erwartet folgendes Format: <checkresult> <name> <perfdata> <status_text> Checkresult 0 = OK – 1 = Warning – 2 = Crtitcal – 3 … Weiterlesen