IDoc ist das Austauschformat von SAP ERP-Systemen, welches benutzt wird, um per Import und Export Daten sowohl untereinander als auch mit Fremdsystemen auszutauschen. Typische Beispiele solcher Daten sind Bestellungen, Lieferscheine, Überweisungen, Stundenbuchungen, etc. Ein IDoc besitzt neben Control- und Data-Records auch Status-Records, in denen jeder einzelne Verarbeitungsschritt protokolliert wird. Diese Status-Records werden in der Tabelle EDIDS gespeichert. Die neue Version 1.9 von check_sap_health kennt den Mode failed-idocs, mit dem in EDIDS nach Fehlermeldungen gesucht wird.
Beim Monitoring von SAP mit check_sap_health wurden bisher die Bereiche CCMS, Verbuchungssystem und Shortdumps abgedeckt. Mit der neuen Version können nun auch Hintergrundjobs überwacht werden. Folgende Anforderungen wurden implementiert:
Mit den bisherigen Versionen von check_sap_health verband man sich unter Angabe von Hostname und System-Nummer direkt mit einem NetWeaver Application Server, um CCMS-Metriken abzufragen oder Geschäftslogik zu monitoren. In einer größeren Umgebung mit mehreren Application Servern gibt es noch eine weitere Komponente, die in der Überwachung nicht fehlen darf: Der Message Server der Zentralinstanz.
Seit der Version 1.4 kann sich check_sap_health nun auch zu diesem Server verbinden. Sogar der Weg über einen SAProuter ist möglich, so daß auch noch dieser wichtige Bestandteil einer SAP-Landschaft vom Monitoring abgedeckt wird.
Bei der Ablösung des alten SAP-Monitorings eines unserer Kunden bin ich über Ungereimtheiten beim Auslesen von CCMS-Metriken gestolpert. Nicht alle Werte, welche man per RZ20 in der SAP-GUI angezeigt bekommt, werden nagios-seitig korrekt wiedergegeben. Teilweise sind die Messwerte um den Faktor 1000 zu hoch und werden so auch in den entsprechenden RRD-Files abgespeichert bzw. sorgen für ungläubiges Kopfschütteln. Das ist beispielsweise dann der Fall wenn der SAP-Server eine Load von 7.06 hat, laut Monitoring aber 706. Bisher ist das halt nicht aufgefallen, weil üblicherweise der von SAP gelieferte Status eins zu eins in Nagios verwendet wurde.
Update 23.6.14: im Git von check_mk wurde mein Patch mittlerweile eingespielt.
Update 26.6.14: im Git von Netways auch.
Update: Die beiden angemeckerten Plugins sind (Stand 26.6.14) gefixt und somit ist meiner Stänkerei jede Grundlage entzogen. Alles ist gut :-)
Monitoring von SAP mit den bisher vorhandenen Plugins beschränkte sich auf die Abfrage von CCMS-Metriken. In einem SAP-System steckt aber noch viel mehr, das sich überwachen lässt. Check_sap_health ist ein neues Plugin, welches in Perl geschrieben wurde. Es entstand in einem Projekt, bei dem von unterschiedlichen Standorten aus die Laufzeiten von BAPI-Aufrufen gemessen werden sollten. Durch die einfache Erweiterung des Plugins um selbstgeschriebene Perl-Elemente lassen sich beliebige Funktionen per RFC aufrufen und somit firmenspezifische Logik implementieren.