Um die Performancedaten von Nagios auszuwerten, zu speichern und grafisch aufzubereiten, wird das Nagios Add-On pnp4nagios installiert. Es sammelt die von Nagios durchgeführten Abfragen mit ihren Ergebnissen und speichert die Daten in einer eigenen Datenbank. Dazu gehören z.B. die Antwortzeiten von Ping-Abfragen oder die Auslastung einer CPU. Dadurch ist es zudem möglich, Langzeitauswertungen von bestimmten Diensten oder Systemen zu machen.
Voraussetzung dafür ist das RRDtool sowie weitere Pakete, mit denen pnp4nagios die zeitbezogenen Messdaten analysiert und grafisch darstellt.
Nach ihrer Installation kann man pnp4nagios herunterladen und installieren.
[fusion_builder_container hundred_percent=”yes” overflow=”visible”][fusion_builder_row][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]
# apt-get install rrdtool librrds-perl php5-gd
# wget http://netcologne.dl.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.25.tar.gz
# cd pnp4nagios
# ./configure
# make all
# make fullinstall
Ebenfalls muss ein Apache Modul aktiviert und die LDAP Anbindung eingerichtet werden.
[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]
# a2enmod rewrite
# service apache2 restart
Damit man auf die Performance-Daten genauso zugreifen kann wie auf Nagios selbst, muss die Apache Konfiguration von pnp4Nagios analog zur Nagios Konfiguration angepasst werden.
Es gibt verschiedene Modi, wie Nagios die Performancedaten auswerten soll. In diesem Projekt wurde sich für den „Bulk Mode with NPCD“ entschieden. Dieser Modus ist aufwändiger in der Konfiguration, nimmt dafür aber erheblich Einfluss auf die Reduzierung der Prozessorlast.
In diesem Modus werden die Performancedaten von Nagios in eine temporäre Datei geschrieben, die in einem festgelegten Zeitintervall abgearbeitet wird. Diese Abarbeitung übernimmt der Nagios-Perfdata-C-Daemon (NPCD), der eine asynchrone Bearbeitung der Performancedaten ermöglicht.
Um die generelle Verarbeitung von Performancedaten zu aktivieren, muss dies explizit eingestellt werden (NagiosQL – Host Service auswählen- Prüfeinstellungen – Verarbeite Performance Daten).
Anschließend müssen zwei neue Befehle angelegt werden, die die Verarbeitung der Daten starten.
1. process-host-perfdata-file
[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]
/bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
2. process-service-perfdata-file
[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]
/bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
Ebenfalls müssen der Nagios Konfiguration einige neue Parameter mitgegeben werden.
[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]
###########pnp4nagios#############
process_performance_data=1
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATAtTIMET::$TIMET$tHOSTNAME::$HOSTNAME$tSERVICEDESC::$SERVICEDESC$tSERVICEPERFDATA::$SERVICEPERFDATA$tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$tHOSTSTATE::$HOSTSTATE$tHOSTSTATETYPE::$HOSTSTATETYPE$tSERVICESTATE::$SERVICESTATE$tSERVICESTATETYPE::$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATAtTIMET::$TIMET$tHOSTNAME::$HOSTNAME$tHOSTPERFDATA::$HOSTPERFDATA$tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$tHOSTSTATE::$HOSTSTATE$tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file
###########pnp4nagios#############
Dadurch, dass die Verarbeitung ermöglicht wird, kann nun der NPCD Daemon gestartet werden, der das temporäre Verzeichnis überwacht und die Daten an pnp4nagios übergibt. Dieser Befehl wird ebenfalls in das Nagios Init Skript mit aufgenommen, um bei einem Neustart des Servers wieder ausgeführt zu werden.
[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]
# /usr/local/pnp4nagios/bin/npcd -d -f /usr/local/pnp4nagios/etc/npcd.cfg
Man kann aus Nagios direkt auf die Performancedaten zugreifen. Dafür müssen die sogenannten „Vorgangs URLs“ eines Hosts/Services angepasst werden. Da auch in diesem Fall eine Generalisierung erwünscht ist, wird jeweils ein neues Host- und Servicetemplate angelegt, welches lediglich diese URLs übergeben bekommt. Im Anschluss können diese Templates den jeweiligen Services und Hosts übergeben werden, die Performancedaten ausgeben können und sollen.
1. service-pnp
[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]
/pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
2. host-pnp
[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]
/pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
Dadurch wird bei den betroffenen Hosts und Services ein neues Icon in der Weboberfläche angezeigt, welches zum einen signalisiert, dass Daten erfasst werden und zum anderen auf diese Daten verlinkt.
Um ein Popup zu erhalten, wenn man mit der Maus über diese Icons fährt, muss folgende Datei kopiert werden
[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]
# cp /tmp/pnp4nagios/contrib/ssi/status-header.ssi /usr/local/nagios/share/ssi/
[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]