Nagios Core Update 4.2.2

Wie zieht man seine Nagios Installation auf die neuste Version hoch?

Zunächst sollte ein Backup der Konfiguration erstellt werden.

cp /usr/local/nagios/ /usr/local/nagios_backup -R

Anschließend kann das Paket heruntergeladen und entpackt werden.

cd /tmp
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.2.2.tar.gz
tar xzf nagios-4.2.2.tar.gz

Nun wird das Core Skript laufen gelassen, dem man die Gruppe mitgibt, welche Kontrolle über die Command-Datei innehat.

cd nagios-4.2.2/
./configure --with-command-group=nagcmd

Compilieren des Source Codes

make all

Bei Fehlern kann es sein, dass das “unzip” Paket noch nicht installiert wurde. Dann muss es installiert werden und das make Skript nochmals durchgeführt werden.

apt-get install unzip

Installation der Binaries etc.

make install

Prüfen der Konfiguration

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Neustart des Dienstes

/etc/init.d/nagios restart

Nagios – Integration von Add-Ons in die Hauptseite

Für den schnelleren Zugriff auf die Funktionen von pnp4nagios, NagiosQL und NagVis, werden die Funktionen in die Hauptseite integriert. Dazu wird die php Datei bearbeitet, die die Seitennavigation von Nagios bereitstellt.
(/usr/local/nagios/share/side.php)

[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”]

<div class="navsection">
<div class="navsectiontitle">Reports</div>
<div class="navsectionlinks">
<ul class="navsectionlinks">
<li><a href="https://nagiosserver/pnp4nagios/"  target="<?php echo $link_target;?>"> PNP</a></li>
<li><a href="https://nagiosserver/nagvis/"  target="<?php echo $link_target;?>"> NagVis</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/avail.cgi" target="<?php echo $link_target;?>">Availability</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/trends.cgi" target="<?php echo $link_target;?>">Trends</a></li>
…
<div class="navsection">
<div class="navsectiontitle">System</div>
<div class="navsectionlinks">
<ul class="navsectionlinks">
<li><a href="<?php echo $cfg["cgi_base_url"];?>/extinfo.cgi?type=3" target="<?php echo $link_target;?>">Comments</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/extinfo.cgi?type=6" target="<?php echo $link_target;?>">Downtime</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/extinfo.cgi?type=0" target="<?php echo $link_target;?>">Process Info</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/extinfo.cgi?type=4" target="<?php echo $link_target;?>">Performance Info</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/extinfo.cgi?type=7" target="<?php echo $link_target;?>">Scheduling Queue</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/config.cgi" target="<?php echo $link_target;?>">Configuration</a></li>
<li><a href="https://nagiosserver/nagiosql/admin.php"  target="<?php echo $link_target;?>"> NagiosQL</a></li>
		</ul>
	</div>
</div>

pnp-in-hauptseite[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

NagiosQL – Neustart von Nagios nicht möglich

Nach dem ersten Einpflegen von neuen Daten über NagiosQL in das System, sollte der Nagios Daemon neu gestartet werden, um die geänderten Konfigurationen zu übernehmen. Über den Verwaltungsdialog wurden die Konfigurationsdateien geprüft und geschrieben. Die Überprüfung der Dateien erfolgte ohne Fehler, sodass der Daemon neugestartet werden konnte. Das Betätigen der dafür vorgesehenen Schalfläche gab die Rückmeldung, dass der Neustart erfolgreich verlaufen ist.
Allerdings wurden weder die neu angelegten Hosts angezeigt, noch wurden andere eingestellte Änderungen sichtbar.
Daraufhin wurden alle getätigten Einstellungen nochmals kontrolliert und die Pfadangaben zu den Konfigurationsdateien auf ihre Richtigkeit hin geprüft. Ein Blick auf die Konsole ergab, dass alle Dateien ordnungsgemäß angelegt wurden.
Um eine fehlerhafte Konfiguration auszuschließen, wurde der von NagiosQL initiierte Kontrollbefehl

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Manuell im System ausgeführt. Die Rückmeldung war fehlerfrei.
Anschließend wurde der Nagios Daemon ebenfalls händisch über die Konsole neu geladen.

# /etc/init.d/nagios reload

Dies funktionierte einwandfrei und alle Änderungen erschienen wie gewünscht auf der Weboberfläche.
Daraufhin wurde sich das Log des Nagios Daemons genauer angeschaut. Dort wird u.a. jeder Neustart des Dienstes vermerkt. Parallel dazu wurde versucht, den Dienst wie zu Anfang über die Weboberfläche zu starten. Dies wurde allerdings nicht im Log vermerkt.
Damit Nagios überhaupt Befehle von außerhalb entgegen nimmt, muss ein Parameter in der nagios.cfg angepasst werden.

check_external_commands=1

Dieser Eintrag war allerdings vorhanden, sodass die Funktion gegeben sein müsste.
Befehle, die nicht von Nagios selbst abgesetzt werden, werden in eine Datei geschrieben (/usr/local/nagios/var/rw/nagios.cmd). Nagios arbeitet diese Datei sofort ab, sobald eine Änderung erfolgt und prüft sie auf externe Kommandos, die ausgeführt werden sollen. Ein Blick auf das Änderungsdatum dieser Datei bestätigte, dass sie beschrieben wird, sobald der Neustart Button im NagiosQL betätigt wird.
Um einen Fehler dieser Datei auszuschließen, wurde das Kommando händisch in die Datei geschrieben.

# now=`date +%s`
# commandfile='/usr/local/nagios/var/rw/nagios.cmd'
# /usr/bin/printf "[%lu] RESTART_PROGRAMn" $now > $commandfile

Daraufhin startete der Daemon neu. Dies wurde korrekt im Log vermerkt.

[1423236025] EXTERNAL COMMAND: RESTART_PROGRAM;[1423235917]
[1423236025] PROGRAM_RESTART event encountered, restarting...
[1423236025] Nagios 4.0.8 starting... (PID=3890)

Daraus war zu schließen, dass der Fehler in dem zu übertragenden Befehl seitens NagiosQL lag. Die Datei /opt/nagiosql/admin/verify.php bildet das in PHP geschriebene Frontend der Nagios Steuerung ab. Im Bereich des Neustarts wurde der Befehl analysiert und die Ergebnisse der Übergabe im Frontend durch eine Codeänderung eingeblendet. Inhaltlich war der Befehl korrekt und passend zu dem händisch abgesetzten Befehl. Allerdings fehlte der Übergabe im Vergleich zum o.g. Befehl ein Zeilenumbruch (n). Der Neustart Befehl wurde auf der Konsole sowohl mit als auch ohne Zeilenumbruch abgesetzt. Erfolgreich war nur der mit besagtem Umbruch. Dieser scheint für den Daemon ein Zeichen zu sein, dass der abgesetzte Befehl komplett übergeben wurde. Nach Einfügen eines Umbruchs in das PHP Skript der Webseite und eines erneuten Tests konnte das Problem behoben werden.

Nagios – Versenden von SMS Benachrichtigungen

Um auch bei Ausfall des Netzwerks in der Lage zu sein, Benachrichtigungen an die Administratoren verschicken zu können, wird im Folgenden ein SMS Gateway für Nagios eingerichtet.
Zur Realisierung wird ein UMTS Modem der Firma Huawei Technologies Co. verwendet. Nachdem das Modem eingebaut ist, muss überprüft werden, ob das Betriebssystem dieses richtig erkannt hat.

# dmesg
…
usb 2-4: new high-speed USB device number 3 using ehci_hcd
usb 2-4: New USB device found, idVendor=12d1, idProduct=1003
usb 2-4: New USB device strings: Mfr=3, Product=2, SerialNumber=0
usb 2-4: Product: HUAWEI Mobile
usb 2-4: Manufacturer: Huawei Technologies
…
# lsusb
Bus 002 Device 005: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E230/E270/E870 HSDPA/HSUPA Modem

Anschließend kann die SMS Gateway Software installiert werden.
# apt-get install gammu
Um der Software mitzuteilen, an welchem Port sich das Gerät befindet, muss die dafür vorgesehene Konfigurationsdatei (/root/.gammurc) angepasst werden. Die benötigten Portinformationen erhält man durch
# dmesg | grep ttyUSB
usb 2-4: GSM modem (1-port) converter now attached to ttyUSB1

und kann damit die Gammu – Konfigurationsdatei dementsprechend anpassen.

[gammu]
port = /dev/ttyUSB1
connection = at19200
synchronizetime = yes
logfile = /var/log/sms.log
logformat = textall

Danach kann das Gerät von Gammu identifiziert werden.
# gammu --identify
Gerät : /dev/ttyUSB1
Hersteller : Huawei
Modell : unknown (E176)
Firmware : 11.104.14.01.55
IMEI : 355851022******
SIM IMSI : 262010052******

Abschließend wird eine Test-SMS verschickt, um die Funktionalität zu bestätigen.
# echo "Testsms vom Server" | gammu --sendsms TEXT 00491516*******
Drücken Sie Strg-C, wenn Sie unterbrechen möchten...
Sende SMS 1/1....warte auf Netz-Bestätiung..OK, Nachricht-Referenz=9

Da die Benachrichtigungen unter dem Benutzer „nagios“ durchgeführt werden, muss die Berechtigung hierfür noch vergeben werden.
# chown root:nagios /usr/bin/gammu
# chmod 4755 /usr/bin/gammu
# su nagios
$ echo "Testsms vom Server" | gammu --sendsms TEXT 00491516*******
Sende SMS 1/1....warte auf Netz-Bestätiung..OK, Nachricht-Referenz=12

Damit Nagios SMS versendet, wird ein neuer Kontakt angelegt, der sowohl die Handynummer enthält als auch die Definition, wann eine SMS verschickt werden soll. Dieser Kontakt wird danach einer neuen Kontaktgruppe namens „SMS“ hinzugefügt. So können neue Benutzer, die ebenfalls SMS-Benachrichtigungen erhalten wollen, einfach zu dieser Gruppe hinzugefügt werden.
Die Anzahl an Benachrichtigungen soll möglichst gering gehalten werden und sich nur auf die wichtigen Systeme beziehen. Aus diesem Grund wird eine neue Host- und Servicevorlage angelegt, die nur den Systemen und Diensten zugewiesen wird, die eine hohe Priorität innehaben. Ebenfalls wird eine neue Zeitperiode definiert, die sich auf die Zeit außerhalb der normalen Arbeitszeit bezieht. Diese wird dem Kontakt zugewiesen, wodurch gegeben ist, dass eine SMS-Benachrichtigung nur erfolgt, wenn keine reguläre Arbeitszeit ist.

Nagios Performancedaten mit pnp4nagios

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$&amp;srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&amp;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$&amp;srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&amp;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/

pnp-nagios[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

Nagios ESXi Überwachung

Da sich bei der Implementierung der Überwachung der Hypervisor gezeigt hat, dass SNMP nicht die gewünschten Resultate erzielt, wurde entschieden, direkt über die VMware eigene API die relevanten Informationen abzugreifen. Realisiert wird es über das OP5 Check VMware API Plug-In, welches in Perl geschrieben ist. Dieses Plug-In kann entweder einzelne ESXi Hosts überwachen oder aber einen vCenter Server, die verwalteten ESXi und die einzelnen virtuellen Maschinen.
Damit dieses Plug-In funktioniert, muss das VMware Perl SDK installiert werden. Dieses ist über die Herstellerseite verfügbar.
Das SDK wird auf dem Nagios Server entpackt und installiert. Da der Server Debian als Betriebssystem nutzt, welches nur inoffiziell unterstützt wird, müssen zuerst einige Anpassungen vorgenommen werden.
[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 update
# apt-get install libssl-dev perl-doc libxml-libxml-perl libxml2-dev uuid-dev libnagios-object-perl libnagios-plugin-perl

Das VMware Installationsskript sucht unter /etc nach einer /etc/*-release Datei, in der das Betriebssystem hinterlegt ist. Diese Datei wird für die weitere Installation temporär erstellt, um die Prüfung zu bestehen.
[/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”]

# echo ubuntu > /etc/tmp-release

Daraufhin kann das SDK installiert und die temporäre Datei entfernt sowie das Plug-In in das Verzeichnis /usr/local/nagios/libexec gelegt und ausführbar gemacht 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”]

# tar -xvzf /tmp/VMware-vSphere-Perl-SDK-6.0.0-2503617.x86_64.tar.gz
# /tmp/vmware-vsphere-cli-distrib/vmware-install.pl
# rm /etc/tmp-release
# chmod a+x /usr/local/nagios/libexec/check_vmware_api.pl

Abschließend können die Befehlsdefinitionen in Nagios integriert werden.
esx-check-nagios
[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

Nagios LDAP Anbindung

In der Nagios-Grundinstallation erfolgt die Authentifizierung über eine “.htaccess”-Datei, in der Benutzernamen und Passwörter lokal gespeichert sind.

Da der Apache Webserver nach einer Grundinstallation nicht in der Lage ist, LDAP-Anfragen verarbeiten zu können, wird ein zusätzliches Modul aktiviert.

a2enmod authnz_ldap

Die LDAP-Anbindung für Nagios wird in einer eigenen Konfigurationsdatei im Webserver-Verzeichnis festgelegt (/etc/apache2/conf.d/nagios.conf). Diese Datei muss so angepasst werden, dass der Webserver bei der Authentifizierungsabfrage eine LDAP Schnittstelle benutzt.

<Directory "/usr/local/nagios/sbin">
	Options ExecCGI
	AllowOverride None
	AuthBasicProvider ldap
	AuthType Basic
	AuthName "Nagios Access"
	AuthLDAPURL "ldap://example.com:389/ou=user,dc=example,dc=com?sAMAccountName?sub?(objectClasss=user)" NONE
	AuthLDAPBindDN LDAPUser@example.com
	AuthLDAPBindPassword "***"
	Require ldap-group CN=Nagios_Agenten,OU=Sicherheitsgruppen,DC=example,DC=com
</Directory>

Hier wird dem Apache zum einen mitgeteilt, wie er bei der Authentifizierung zu verfahren hat (AuthBasicProvider) und zum anderen wird festgelegt, welches LDAP Verzeichnis als Grundlage zur Benutzerfindung genutzt wird (AuthLDAPURL). Mit den Benutzer-Parametern (AuthLDAPBindDN/Password) wird eine Anmeldung an diesem Verzeichnisdienst ermöglicht.

Durch diese Einstellungen können sich nun alle Benutzer am Webserver anmelden, die Mitglied dieser hinterlegten Active Directory Sicherheitsgruppe sind. Allerdings sind sie noch nicht dazu berechtigt, auf die Nagios Inhalte zugreifen zu können. Um den Benutzern nicht nur den Zugriff auf den Webserver zu gestatten, sondern ebenfalls die Möglichkeit zu geben, das Nagios Portal nutzen zu können, muss die cgi.cfg Konfigurationsdatei angepasst werden, die unter anderem den Zugriff auf die Weboberfläche steuert. Dazu werden folgende Werte mit Wildcards (*) angepasst, die einen beliebigen Benutzernamen repräsentieren.

authorized_for_system_information=*
authorized_for_configuration_information=*
authorized_for_system_commands=*
authorized_for_all_services=*
authorized_for_all_hosts=*
authorized_for_all_service_commands=*
authorized_for_all_host_commands=*

Anschließend muss im Active Directory die Gruppe zur Webserver-Berechtigung angelegt werden. Dadurch haben alle Mitglieder dieser Gruppe Zugriff auf das Nagios Web Frontend.