Translations of this page:

Aufsetzen mehrerer Nagiosinstanzen mit nur einer Codebasis

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.

  • Zunächst wird Nagios wie gewohnt kompiliert und in ein Basisverzeichnis installiert.
    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
  • Genauso werden die Plugins kompiliert und installiert.
    cd nagios-plugins-1.4.2
    ./configure --prefix=$NAGIOSHOME/core/nagios-plugins; make ; make install
  • Danach werden die Verzeichnisse der einzelnen Instanzen angelegt und Links zu den Binaries und Webseiten im Nagios-Basisverzeichnis angelegt.
    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.

  • Editieren der Konfigurationsdateien (jeweils im „Privatbesitz“ der 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.

  • Starten der Instanzen
    $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
  • Anpassungen für den Webserver. In jeder Instanz müssen Pfade im entsprechenden cgi.cfg geändert werden.
    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
  • Umleitungen erzeugen. Ich empfehle, unterhalb der Apache-Konfiguration ein Verzeichnis instances anzulegen, welches für jede Instanz eine eigene Konfigurationsdatei enthält. Das komplette Unterverzeichnis wird mit der Direktive „Include /lfs/opt/nagios/apache/conf/instances“ beim Start des Apache eingelesen. Der Inhalt einer solchen Konfigurationsdatei sieht folgendermassen aus:
    # 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

nagios/howto/mehrere_instanzen.txt · Zuletzt geändert: 2006/10/31 02:00 von lausser
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