Translations of this page:

Nagios Framework 2.10

Installation

Nagios liegt zurzeit (November 2007) für den produktiven Einsatz in der Version 2.10 vor.

Als Betriebssystem für die Installation dient Suse Linux 10.2.

Bei der Installation von Suse Linux 10.2 während der Installation unter „Desktop“ KDE wählen. In dieser Konfiguration fehlen für Nagios nur noch wenige zusätzliche Pakete.

Am einfachsten rüstet man sie in der Software-Auswahl mit der Selektion „C/C++ Compiler und Werkzeuge“ nach und nimmt zusätzlich die Pakete Apache2, imap, gd, libjpeg-devel und openssl-devel, mysql*, perl-net-snmp, php5* mit. Nach dem Ja zu den Abhängigkeiten kann es wie gewohnt mit der Installation weitergehen.

Nachdem man das frisch installierte System gebootet hat, muss das Paket gd-devel installiert werden. Da es leider nicht auf den als Download erhältlichen Medien ist, muss das Paket von Suse heruntergeladen werden. Ein einfaches rpm -ivh gd-devel-2.0.32-23.i586.rpm erledigt dann die Installation.

Zunächst werden die benötigten Benutzer und eine Gruppe angelegt, sowie die Gruppenmitgliedschaften geklärt.

useradd nagios
groupadd nagios
mkdir /usr/local/nagios
chown nagios.nagios /usr/local/nagios
groupmod -A nagios www
groupmod -A nagios nagios

Dann wird das tar-Archiv mit dem Nagios-Sourcecode entpackt und die Sourcen konfiguriert und kompiliert.

tar xfvz nagios*.tar.gz
cd nagios*
./configure --with-command-group=www –enable-event-broker
make all

Eine Reihe von make install-Kommandos verteilen dann Nagios, ein Startskript und einen Satz Dateien auf der Festplatte, darunter auch eine Beispielkonfiguration in /usr/local/nagios/etc/:

make install
make install-init
make install-commandmode
make install-config

Sonstiges

Über Runleveleditor den automatischen Start von Apache2, Mysql und Nagios veranlassen. (oder mit

ln –s /etc/init.d/nagios /etc/init.d/rc5.d/S99nagios

ln –s /etc/init.d/nagios /etc/init.d/rc5.d/K99nagios ….)

Damit die Nachrichten auch verschickt werden muß im Mail Transfer Agent die IP des SMTP-Servers eingetragen werden.

Firewall deaktiviert.

Webinterface

Der Webserver muss in der Datei /etc/apache2/conf.d/nagios.conf konfiguriert werden. Das sieht mit konfigurierter Zugangsberechtigung so aus:

ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin/
<Directory /usr/local/nagios/sbin/>
   Options ExecCGI
   order deny,allow
   allow from all
   AuthName "Nagios Access"
   AuthType Basic
   AuthUserFile /usr/local/nagios/etc/htpasswd.users
   Require valid-user
</Directory>


Alias /nagios /usr/local/nagios/share/
<Directory /usr/local/nagios/share/>
   Options None
   order deny,allow
   allow from all
   AuthName "Nagios Access"
   AuthType Basic
   AuthUserFile/usr/local/nagios/etc/htpasswd.users
   Require valid-user
</Directory>

Die letzten vier Zeilen in den beiden oben gezeigten Directory-Blöcken weisen den Web-Server an, nur Benutzern Zugriff zu gewähren, die sich mit Benutzername und Passwort anmelden.

Die Passwörter werden in diesem Fall in der Datei /usr/local/nagios/etc/htpasswd.users nachgeschlagen.

Dazu müssen die Benutzer angelegt werden, der erste mit

htpasswd2 -c /usr/local/nagios/etc/htpasswd.users nagios password 

alle weiteren ohne das -c.

Der Name muss dem contact_name aus der Host- oder Service-Definition entsprechen, denn anhand dieser Kombination bestimmt Nagios, wer was zu sehen bekommt. Zusätzlich erhält jeder Benutzer Zugriff auf die Funktionen des Webinterface, für die er durch die mit authorized_for_ beginnenden Parameter in cgi.cfg autorisiert ist.

Eine entsprechende Konfiguration in der cgi.cfg könnte beispielsweise so aussehen:

use_authentication=1
authorized_for_system_information=nagios
authorized_for_configuration_information=nagios
authorized_for_system_commands=nagios
authorized_for_all_services=nagios
authorized_for_all_hosts=nagios
authorized_for_all_service_commands=nagios
authorized_for_all_host_commands=nagios

Prüfen der Konfiguration

Mit dem Befehl

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

prüft man nun die Konfiguration. Syntaktische oder inhaltliche Fehler werden dabei gnadenlos angekreidet. Wenn dann ein

Things look okay – No serious problems were detected during the pre-flight check

das OK gibt, startet man mit

/etc/init.d/nagios start 

den Nagios-Server.

Das Startskript testet vorher die Konfiguration.

Um sich vom erfolgreichen Start zu überzeugen, kann man einen Blick in die Logdatei

/usr/local/nagios/var/nagios.log

werfen.

Nagios-PlugIns 1.4.10

Nagios selbst bringt noch keine Plug-ins mit. Das Kompilieren und die Installation der offiziellen Nagios Plug-ins ist aber nach dem Entpacken des tar-Archivs mit dem klassischen Dreisprung (./configure; make; make install; make install-root) in dem entstandenen Verzeichnis erledigt.

tar xfvz nagios-plugins-1.4.*.tar.gz
cd nagios-plugins-1.4.*
./configure 
make
make install
make install-root
chown –R nagios:nagios /usr/local/nagios/libexec

Die PlugIns check_icmp und check_dhcp benötigen folgende Rechte:


chown root:nagios /usr/local/nagios/libexec/check_icmp
chmod 4777 /usr/local/nagios/libexec/check_icmp

chown root:nagios /usr/local/nagios/libexec/check_dhcp
chmod 4777 /usr/local/nagios/libexec/check_dhcp


NdoUtilities 1.4b6

Falls mysql noch nicht aktiv ist:

/etc/init.d/mysql start

Tip: Unter SLES10 muss das Paket mysql-devel installiert sein, sonst werden die MySQL libaries nicht gefunden.

Die Installation erfolgt wie gewohnt:

tar xfvz ndoutils-1.4*.tar.gz.tar.gz
cd ndooutils-1.4*
./configure -–enable-mysql –with-mysql-lib=/var/lib/mysql
make

Anlegen der Konfigurieren der Datenbank:

mysqladmin –p create nagios
mysql –u root –p nagios < db/mysql.sql
cp src/ndo2db-2x /usr/local/nagios/bin/ndo2db
cp src/ndomod-2x.o /usr/local/nagios/bin/ndomod.o
cp config/ndo*.cfg /usr/local/nagios/etc

Die Inhalte der config/nagios.cfg und config/misccommands.cfg in die Original Konfigurationsdateien /usr/local/nagios/etc anpassen und einfügen

broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg
event_broker_options=-1

Anpassen der Rechte:

chown –R nagios:nagios /usr/local/nagios/bin
chown –R nagios:nagios /usr/local/nagios/etc

Der Befehl zum Starten:

/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg > /dev/null 2>&1;

Fehler werden in der Datei /usr/local/nagios/var/nagios.log mitprotokolliert.

Startskript

Komfortabler ist es ein Startskript unter /etc/init.d/ndo2db abzulegen und den automatischen Start zu veranlassen:

status_ndo ()
{	if test -x $NdoCGI/daemonchk.cgi; then
		if $NdoCGI/daemonchk.cgi -l $NdoRunFile; then
		        return 0
		else
			return 1
		fi
	else
		if ps -p $NdoPID > /dev/null 2>&1; then
		        return 0
		else
			return 1
		fi	
fi
	return 1
}
printstatus_ndo()
{

	if status_ndo $1 $2; then
		echo "ndo (pid $NdoPID) is running..."
	else
		echo "ndo is not running"
	fi
}


killproc_ndo ()
{
	kill $2 $NdoPID
}

pid_ndo ()
{
	if test ! -f $NdoRunFile; then
		echo "No lock file found in $NdoRunFile"
		exit 1
	fi
	NdoPID=`head -n 1 $NdoRunFile`
}

# Source function library
# Solaris doesn't have an rc.d directory, so do a test first
if [ -f /etc/rc.d/init.d/functions ]; then
	. /etc/rc.d/init.d/functions
elif [ -f /etc/init.d/functions ]; then
	. /etc/init.d/functions
fi

prefix=/usr/local/nagios

exec_prefix=${prefix}
NdoBin=${exec_prefix}/bin/ndo2db
NdoCfgFile=${prefix}/etc/ndo2db.cfg
NdoStatusFile=${prefix}/var/status.dat
NdoRetentionFile=${prefix}/var/retention.dat
NdoCommandFile=${prefix}/var/rw/ndo.cmd
NdoVarDir=${prefix}/var
NdoRunFile=${prefix}/var/ndo.sock
NdoLockDir=/var/lock/subsys
NdoLockFile=nagios
NdoCGIDir=${exec_prefix}/sbin
NdoUser=nagios
NdoGroup=nagios
          

# Check that ndo exists.
if [ ! -f $NdoBin ]; then
    echo "Executable file $NdoBin not found.  Exiting."
    exit 1
fi

# Check that ndo.cfg exists.
if [ ! -f $NdoCfgFile ]; then
    echo "Configuration file $NdoCfgFile not found.  Exiting."
    exit 1
fi
          
# See how we were called.
case "$1" in

	start)
		echo -n "Starting ndo:"
				
		$NdoBin -c $NdoCfgFile > /dev/null 2>&1;
		if [ $? -eq 0 ]; then
			exit 0
		else
			echo "CONFIG ERsROR!  Start aborted.  Check your Ndo configuration."
			exit 1
		fi
		;;

	stop)
		echo -n "Stopping ndo: "
		pid_ndo
		killproc_ndo ndo
 		# now we have to wait for ndo to exit and remove its
 		# own NdoRunFile, otherwise a following "start" could
 		# happen, and then the exiting ndo will remove the
 		# new NdoRunFile, allowing multiple ndo daemons
 		# to (sooner or later) run - John Sellens
		#echo -n 'Waiting for ndo to exit .'
 		for i in 1 2 3 4 5 6 7 8 9 10 ; do
 		    if status_ndo > /dev/null; then
 			echo -n '.'
 			sleep 1
 		    else
 			break
 		    fi
 		done
 		if status_ndo > /dev/null; then
 		    echo ''
 		    echo 'Warning - ndo did not exit in a timely manner'
 		else
 		    echo 'done.'
 		fi

		rm -f $NdoStatusFile $NdoRunFile $NdoLockDir/$NdoLockFile $NdoCommandFile
		;;

	status)
		pid_ndo
		printstatus_ndo ndo
		;;

	check)
		echo "Running configuration check..."
		$NdoBin -v $NdoCfgFile;
		if [ $? -eq 0 ]; then
			echo "done."
		$0 stop
			$0 start
		else
			echo " CONFIG ERROR!  Check your Ndo configuration."
			exit 1
		fi
		;;

	restart)
		printf "Running configuration check..."
		$NdoBin -v $NdoCfgFile > /dev/null 2>&1;
		if [ $? -eq 0 ]; then
			echo "done."
			$0 stop
			$0 start
		else
			echo " CONFIG ERROR!  Restart aborted.  Check your Ndo configuration."
			exit 1
		fi
		;;

	reload|force-reload)
		printf "Running configuration check..."
		$NdoBin -v $NdoCfgFile > /dev/null 2>&1;
		if [ $? -eq 0 ]; then
			echo "done."
			if test ! -f $NdoRunFile; then
				$0 start
			else
				pid_ndo
				if status_ndo > /dev/null; then
					printf "Reloading ndo configuration..."
					killproc_ndo ndo -HUP
					echo "done"
				else
					$0 stop
					$0 start
				fi
			fi
		else
			echo " CONFIG ERROR!  Reload aborted.  Check your Ndo configuration."
			exit 1
		fi
		;;

	*)
		echo "Usage: ndo {start|stop|restart|reload|force-reload|status|check}"
		exit 1
		;;

esac
  
# End of this script

Zum automatischen Start beim booten:

ln -s /etc/init.d/rc3.d/S<Zahl>ndo2db /etc/init.d/ndo2db

NRPE plugin check_nrpe

Unter SLES10 aber bestimmt auch anderen Linux Distributionen muss das Paket OpenSSL-devel installiert sein.

tar xfvz nrpe-2.10.tar.tar
cd nrpe-2.10
./configure
make all

Auf dem Nagios-Server wird vom NRPE das Plug-in check_nrpe gebraucht, das mit

cp src/check_nrpe /usr/local/nagios/libexec/ 

am richtigen Platz landet.

libart 2.3.17

tar xfvz libart*.*.tar.gz
cd libart*
./configure 
make
make install

rrdtool 1.2.19

tar xfvz rrd*.*.tar.gz
cd rrd*
./configure 
make
make install

centreon 1.4.1

 
tar xfvz c*
cd c**
./install.sh

pear-Installation:

pear install Auth_SASL-1.0.2.tgz
pear install DB-1.7.13.tgz
pear install DB_DataObject-1.8.7.tgz
pear install –n DB_DataObject_FormBuilder-1.0.ORC7.tgz
pear install Date-1.4.7.tgz
pear install HTML_Common-1.2.4tgz
pear install HTML_QuickForm-3.2.10.tgz
pear install HTML_QuickForm-advmultiselect-1.4.0.tgz
pear install HTML_Common-1.2.4tgz
pear install HTML_Table-1.6.1.tgz
pear install HTTP-1.4.0.tgz
pear install Image_Canvas-0.3.1.tgz
pear install Image_Color-1.0.2.tgz
pear install Image_Graph-0.7.2.tgz
pear install Image_GraphViz-1.2.1.tgz
pear install MDB2-2.4.1.tgz
pear install Mail-1.1.14.tgz
pear install Mail_Mime-1.3.1.tgz
pear Net_Ping-2.4.2.tgz
pear Net_SMTP-1.2.10.tgz
pear Net_Socket-1.0.8.tgz
pear Net_Traceroute-0.21.1.tgz
pear Numbers_Roman-1.0.1.tgz
pear Numbers_Words-0.15.0.tgz
pear –d SOAP-0.11.0.tgz
pear Validate-0.7.0.tgz
pear XML_RPC-1.5.1.tgz

Unter

http://127.0.0.1/oreon/install/setup.php

kann man nun die CETNTREON Datenbank konfigurieren.

Jetzt ist CENTREON unter

http:/127.0.0.1/oreon/

bereit.

Nagvis 1.2.2

tar xvzf nagvis-1.x.tar.gz
mv nagvis-1.2.2 nagvis
mv nagvis /usr/local/nagios/share
cd /usr/local/nagios/share/nagvis
cp etc/nagvis.ini.php-sample etc/nagvis.ini.php

Konfigurationsdatei anpassen! Infos hierzu:

http://www.nagvis.org/docs/1.2/nagvis_config_format_description


chown wwwrun:nagios /usr/local/nagios/share/nagvis -R
chmod 664 /usr/local/nagios/share/nagvis/etc/nagvis.ini.php
chmod 775 /usr/local/nagios/share/nagvis/nagvis/images/maps
chmod 664 /usr/local/nagios/share/nagvis/nagvis/images/maps/*
chmod 775 /usr/local/nagios/share/nagvis/etc/maps
chmod 664 /usr/local/nagios/share/nagvis/etc/maps/*

WUI

http://<nagiosserver>/<path-to-nagvis>/config.php
(http://127.0.0.1/nagios/nagvis/wui/index.php)

Wenn man das NagVis Icon sieht kann man diese mit der rechten Maustaste anklicken und NagVis konfigurieren und Maps anlegen.

(Achtung: Funktioniert nicht im Konqueror).

Das Konfigurationstool zeigt keine aktuellen Stände an.

Wenn man die WUI nicht nutzen will kann man auch einfach die Konfigurationsdateien (nagvis/etc/maps/) bearbeiten. Siehe auch: http://www.nagvis.org/doku.php?id=map_config_format_description_1_0

Aktuelle Mappen ansehen:

http://<nagiosserver>/<path-to-nagvis>/index.php?map=<mapname>
http://25.13.33.45/nagios/nagvis/nagvis/index.php)



PNP 0.4.3

tar xfvz pnp*.tar.gz
cd pnp*
./configure 
make all
make install

Eintrag in nagios.cfg

process_performance_data=1
service_perfdata_command=process-service-perfdata

Eintrag ändern:

illegal_macro_output_chars=`~$&|"<>

Eintrag in commands.cfg

define command{
command_name    process-service-perfdata
command_line    /usr/local/nagios/libexec/process_perfdata.pl
}

Ansehen kann man sich dann alles unter

http://127.0.0.1/nagios/pnp


Nagios Nuvola [OPTIONAL]

tar xzf nagios-nuvola-1.0.3.tar.gz

cp -r html/* /usr/local/nagios/share

Die Dateien config.js, main.html, side/apytmenu_data.js, side/dtree_data.js enthalten die Textstellen zu den Menüpunkten, man kann diese zum Beispiel ins Deutsche übersetzen oder generell anders benennen.

Hinweis: Die Datei config.js setzt die cgipath Variable.

chown -R nagios:nagios /usr/local/nagios/share
nagios/howtos/nagios_install.txt · Zuletzt geändert: 2008/05/27 15:20 von mr.montesa
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0