Anpassung der Grafiken mit Templates

Die Optik der Grafiken wird mit sogenannten Templates gesteuert. Das sind kleine PHP-Schnipsel die offenbar bei der Erzeugung der Grafiken mit eingebunden werden. Wenn man Templates für NRPE Checks benutzen will, muss das Konfiguriert werden. Dann stehen in “/etc/pnp4nagios/check_commands“ entsprechende Dateien. Hier beispielhaft einen solche für check_by_nrpe, die eigentlich schon fast selbsterklärend ist. Schließlich wollen wir das Ergebnis des Checks darstellen und nicht nrpe als solches.

#
# Adapt the Template if check_command should not be the PNP Template
#
# check_command check_nrpe!check_disk!20%!10%
# ________0__________|                     |      |   |
# ________1_____________________|      |   |
# ________2________________________|    | 
# ________3__________________________|
#
CUSTOM_TEMPLATE = 1
#
# Change the RRD Datatype based on the check_command Name.
# Defaults to GAUGE.
#
# DATATYPE = COUNTER

Hier zeigt sich aber auch schon die Schwierigkeit: Wenn man nämlich, wie wir das gern tun, dem nrpe nur ein Arument übergibt, muss das Template einen ziemlich kryptischen Namen haben, zum Beispiel „check_user_-w_10_-c_20.php“. Das ist doof!

Hinzu kommt, dass man dann nicht ein-und-dasselbe Template für mehrere Checks nehmen kann. Alle möglichen Temperaturen könnte man doch auch mit einem Template abhandeln.

Mit einiger Forschungsarbeit hat sich herausgestellt, dass man die Templates unter /etc/pnp4nagios/templates ablegen soll. Um nun (um bei unserem Beispiel zu bleiben) das Temperaturtemplate zu benutzen, legen wir ein Template namens temperatur.php dort hin und verlinken es auf alle erforderlichen Namen. Das können sehr kryptische Namen sein. Wenn man mit mehreren Parametern arbeitet, hat man es leichter, wenn man im ersten Parameter von check_by_nrpe den Namen des Checkscriptes angibt und im zweiten Parameter alles weitere.

Tja und welchen Namen erwartet PNP nun? Ich gebe zu, das ist mitunter sehr kryptisch, aber man findet den Namen heraus, indem man in /etc/pnp4nagios/perfomance_XXXXX.conf das debugging einschaltet (logging=2) dann kann man in /var/log/pnp4nagios/perforXXX.log mitlesen.