Aus organisatorischen oder Performancegründen kann es manchmal sinnvoll sein, seine Hosts auf mehrere Nagiosinstanzen zu verteilen. Damit man den Nagios-Source nicht mehrmals mit unterschiedlichem –prefix übersetzen und installieren muss, behilft man sich mit einer besonderen Verzeichnis- und Konfigurationsstruktur. Im Rahmen dieses HowTos betrachten wir zwei Nagiosinstanzen, jeweils eine für die Solaris- und eine für die Linux-Rechner. Wir bezeichnen diese als instance_os_solaris und instance_os_linux.
export NAGIOSHOME=/opt/nagios # ein im Prinzip beliebiges Basisverzeichnis cd nagios-2.0 ./configure --prefix=$NAGIOSHOME/core/nagios ; make ; make install cgis ; make install nagios
cd nagios-plugins-1.4.2 ./configure --prefix=$NAGIOSHOME/core/nagios-plugins; make ; make install
mkdir $NAGIOSHOME/instances mkdir $NAGIOSHOME/instances/instance_os_solaris mkdir $NAGIOSHOME/instances/instance_os_solaris/etc mkdir $NAGIOSHOME/instances/instance_os_solaris/var mkdir $NAGIOSHOME/instances/instance_os_solaris/var/rw ln -s $NAGIOSHOME/core/nagios/bin $NAGIOSHOME/instances/instance_os_solaris/bin ln -s $NAGIOSHOME/core/nagios/sbin $NAGIOSHOME/instances/instance_os_solaris/sbin ln -s $NAGIOSHOME/core/nagios/share $NAGIOSHOME/instances/instance_os_solaris/share ln -s $NAGIOSHOME/core/nagios-plugins/libexec $NAGIOSHOME/instances/instance_os_solaris/libexec mkdir $NAGIOSHOME/instances/instance_os_linux mkdir $NAGIOSHOME/instances/instance_os_linux/etc mkdir $NAGIOSHOME/instances/instance_os_linux/var mkdir $NAGIOSHOME/instances/instance_os_linux/var/rw ln -s $NAGIOSHOME/core/nagios/bin $NAGIOSHOME/instances/instance_os_linux/bin ln -s $NAGIOSHOME/core/nagios/sbin $NAGIOSHOME/instances/instance_os_linux/sbin ln -s $NAGIOSHOME/core/nagios/share $NAGIOSHOME/instances/instance_os_linux/share ln -s $NAGIOSHOME/core/nagios-plugins/libexec $NAGIOSHOME/instances/instance_os_linux/libexec
Nun teilen sich die Instanzen alle statischen Komponenten einer Nagiosinstallation. Lediglich die Verzeichnisse /etc und /var mit den dynamischen Daten verbleiben bei den Instanzen.
$NAGIOSHOME/instances/instance_os_solaris/etc/nagios.cfg referenziert nur Dateien im Verzeichnis instance_os_solaris $NAGIOSHOME/instances/instance_os_solaris/etc/resource.cfg enthält die Zeile USER1$=/opt/nagios/instances/instance_os_solaris/libexec
Gleiches gilt für instance_os_linux.
$NAGIOSHOME/instances/instance_os_solaris/bin/nagios -d $NAGIOSHOME/instances/instance_os_solaris/etc/nagios.cfg $NAGIOSHOME/instances/instance_os_linux/bin/nagios -d $NAGIOSHOME/instances/instance_os_linux/etc/nagios.cfg
main_config_file=/opt/nagios/instances/instance_os_solaris/etc/nagios.cfg physical_html_path=/opt/nagios/instances/instance_os_solaris/share url_html_path=/instance_os_solaris
# Apache config für die Solaris Instanz # Der Pfad /opt/nagios ist nur ein Beispiel. Verwende $NAGIOSHOME aus den letzten Schritten. ScriptAlias /instance_os_solaris/cgi-bin /opt/nagios/instances/instance_os_solaris/sbin <Directory "/opt/nagios/instances/instance_os_solaris/sbin"> SetEnv NAGIOS_CGI_CONFIG /opt/nagios/instances/instance_os_solaris/etc/cgi.cfg Options +FollowSymLinks AllowOverride AuthConfig Options ExecCGI Order allow,deny Allow from all </Directory> Alias /instance_os_solaris /opt/nagios/instances/instance_os_solaris/share <Directory "/opt/nagios/instances/instance_os_solaris/share"> Options FollowSymLinks AllowOverride AuthConfig Order allow,deny Allow from all </Directory>
Zuletzt müssen noch in der Datei $NAGIOSHOME/core/nagios/share/side.html die Links im Seitenmenü modifiziert werden. Die absoluten Pfade werden ersetzt durch
<a href="./cgi-bin/tac.cgi" target="main" usw.
Ich betreue eine Landschaft von 1800 Hosts und ca. aktiven 30000 Services. Eine einzelne Nagiosinstanz würde hier fraglos überfordert sein. Die Aufteilung in einzelne Instanzen (nach Betriebssystemen getrennt) mit jeweils unter 500 Hosts erlaubt es mir, Nagios in dieser Größenordnung zur Not auch auf einem einzigen Compaq DL380 ohne Performanceprobleme zu betreiben. mailto:gerhard.lausser@consol.de