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 :-)
Ich habe mir dann mal in einer Testumgebung die gängigsten Plugins für's SAP-Monitoring installiert und verglichen, was die denn so messen.
Der Grund für die falschen Werte ist die Nichtberücksichtigung eines Umrechnungsfaktors, der von SAP mitgeliefert wird. Wenn man mit BAPI_SYSTEM_MTE_GETPERFCURVAL die Detailangaben eines Performance-MTEs holt, dann steckt der Messwert im Feld ALRELEVVAL. Da dieses vom Typ Integer ist und somit einen Wert wie 7.06 nicht richtig abbilden kann, kommt noch ein weiteres Feld DECIMALS mit.
ALRELEVVAL 706
ALRELVALDT 20140614
ALRELVALTI 080801
ALTREENUM 1
ATTRGROUP 5minLoadAverage
...
DECIMALS 2
Dieses wird verwendet, um ALRELEVVAL durch eine bestimmte Größenordnung zu dividieren. Dabei gilt die Formel:
in RZ20 angezeigter Wert = ALRELEVVAL / 10 ** DECIMALS
Und damit es nicht wieder heisst, der Laußer kann nur blöd daherreden und kritisieren, habe ich mich hingesetzt und Patches erstellt. Zum Download geht's hier lang:
Einmal für Netways, bitte schön
check_sap.patch
und einmal für Kettner, bitte schön
check_mk.patch
Bleibt noch herauszufinden, welche der CCMS-Metriken betroffen sind und welche RRD-Files repariert werden müssen. Sowas lässt sich einfach per Script automatisiert erledigen. Wenden sie sich bitte an ihren jeweiligen Dienstleister :-)