Ergebnis 1 bis 1 von 1

Thema: [HOWTO] Howto zu Nagios (VoIP Endgeräte etc. überwachen)

  1. #1
    IPPF-Tausend-VIP Avatar von HobbyStern
    Registriert seit
    05.12.2005
    Ort
    Ruhrgebiet
    Beiträge
    1.810

    [HOWTO] Howto zu Nagios (VoIP Endgeräte etc. überwachen)

    Hallo Zusammen,

    seit 2005 läuft hier Asterisk - immer gab es irgendwo mal ein Problem, resultierend aus vielen einfachen Nebenstellen - auch außerhalb. Mal steckte ein Stecker wie durch Geisterhand nicht mehr in der Buchse, mal wurde schlichtweg der Kabel zerstört, mal war ein Gerät überlastet oder nach einem autom. Update nicht sauber neu hochgefahren......

    ################################################## ###########
    Wie findest Du das HowTo?
    Ich freue mich sehr über eine kleine Bemerkung im Diskussions-Thread!

    ################################################## ###########

    VORWORT - Der Grundgedanke im Sinne der VoIP

    Seit Anfang 2010 läuft hier Nagios 3 und es ist wirklich ein Festschmaus, alle VoIP Geräte sind eingebunden, so bekomme ich eine Meldung (Email - aber auch Anruf ist möglich) BEVOR die berühmte "Panik" ausbricht, zBsp. eine Fritz!Box in einer räumlich getrennten Niederlassung ausfällt, oder eine VPN Verbindung nicht aufgebaut wird, ein Drucker ausfällt (auch zBsp. kein Papier wäre möglich), ein Faxgerät streikt, ein POS System nach einem Update nicht mehr hochfährt oder natürlich einer der Server Probleme bereitet. In meinem Umfeld könnte man Nagios als hoffnungslos überdimensioniert betrachten - ich sehe Nagios als Entspannung an - ich kann mich dann um Dinge sorgen, wenn ich es muss - ansonsten habe ich einen freien Kopf und weniger schlechten Schlaf!

    Hätte man mir früher die Vorzüge einer ca. 3-4 Stunden dauernden Installation von Nagios herangetragen so hätte ich das ganze direkt mit aufgesetzt. Ein alter Schulfreund (alleiniger Administrator eines sehr großen TK Lieferanten) meinte als alter Windows-Freund dazu "Wenn etwas schief geht, habe ich das in 15 Minuten wieder im Griff." Ich wunderte mich, da bei mir die "Meldung über ein Problem" ohne Nagios immer erst dann kam, wenn bereits alle Arbeit zum Erliegen kam, dann kam meine Fahrtzeit, Ausfindig machen des Problems und entgültiges Beseitigen dazu. Ich habe es sehr selten auf 15 Minuten "verlorene Zeit" gebracht.

    Das folgende HOWTO ist in fünf Teile aufgebaut, es wird in den nächsten Tagen erweitert und vervollständigt - es verfolgt (auch) das Ziel Nagios zu erklären und ich erhoffe mir persönlich auch eine bessere Konfiguration, im Dez09 arbeitet Nagios hier nur mit einem einfachen Ping Check, alle anderen Optionen liegen bereit, es fehlt nur schlichtweg die Zeit. Update - im Februar 2011 fragt Nagios differenzierter ab (Service ON, snmp-walk..)

    Sollten in diesem HOWTO Fehler entstehen, Dinge nicht richtig erklärt sein oder sollte es noch bessere Lösungswege geben, so würde ich es sehr begrüßen wenn die Diskussion HIER stattfinden würde. Auch Bemerkungen, Hilfe etc. bitte dort - ich freue mich darauf! Vielen Dank.

    ------------------------------------------------------------------------

    Teil 1 - Einsetzen der Abhängigkeiten und Grundinstallation

    Teil 2
    - Konfiguration von Nagios

    Teil 3 - Überwachen von Endgeräten
    a) rudimentäre Drucker
    b) VoIP Geräte
    c) Windows-PCs (mit Nagios Plugin)
    d) Linux-Server (auch mit dem Nagios-Plugin)

    Teil 3 1/2 - Fehlerbehandlung in der Konfiguration
    a) Hilfe! Wie finde ich den Fehler

    Teil 4 - Meldungen/Alarme zum Empfänger reichen
    a) per simpler Mail
    b) per Anruf (zBsp. ISDN)
    c) per SMS

    Teil 5 - Manuelle Modifikationen (Tipps!)

    <<im Aufbau>>>

    ------------------------------------------------------------------------

    Teil 1
    - Einsetzen der Abhängigkeiten und Grundinstallation

    Wir gehen im Folgenden von diesen Gegebenheiten aus :

    - Unser PC ist so dimensioniert das er noch >50MB Speicherplatz anbietet
    - Unser PC ist möglichst sehr gut verfügbar und hat idealerweise eine Möglichkeit zur ISDN Nutzung
    - Wir setzen Nagios ebenfalls idealerweise auf 2 PCs auf, welche unterschiedliche Anbindungen haben.
    - Unser Linux ist Debian, zur Not auch Ubuntu
    - Wir sind bei der Installation "root"
    - Später werden wir Nagios als "nagios" (!) ansprechen.
    - Linuxer sind seltsam, zum editieren nehme ich "nano" - wer "vi" mag nehme den..

    -unter Debian-

    i. Abhängigkeiten erfüllen

    Code:
    apt-get install apache2 build-essential php5 libapache2-mod-php5 libgd2-xpm-dev
    ii. Benutzer und Gruppe erstellen

    Code:
    useradd -m nagios
    passwd nagios
    
    groupadd nagios
    usermod -G nagios nagios
    
    groupadd nagcmd
    usermod -a -G nagcmd nagios
    usermod -a -G nagcmd www-data
    iii. Herunterladen von Nagios Source und den Addons

    Code:
    mkdir nagios-download && cd nagios-download
    Wir suchen uns die gewünschte Version von hier aus, wir benötigen den Core und die Plugins! Wget lädt für uns in das Download-Verzeichnis und wir machen weiter.

    Alternativ nehmen wir die zur Zeit der Erstellung aktuellste Version 3.2.0 und 1.4.14 :

    Code:
    wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.0.tar.gz
    wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz
    
    tar -xzf nagios-3.2.0.tar.gz
    tar -xzf nagios-plugins-1.4.14.tar.gz
    iv. Nagios kompilieren

    Code:
    ./configure --with-command-group=nagcmd
    make all
    make install
    make install-init
    make install-config
    make install-commandmode
    v. Wir kompilieren das Webinterface

    Code:
    make install-webconf
    htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
    /etc/init.d/apache2 reload
    vi. Die Plugins kompilieren

    Code:
    ./configure --with-nagios-user=nagios --with-nagios-group=nagios
    make
    make install
    vii. Wir stellen das Nagios Startskript in Runlevel 2

    Code:
    ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
    viii. Wichtig ! Für spätere Zeitpunkte! wir setzen uns ein Skript für unseren Nutzer (hier root) um schnell die Konfigurationsdateien zu überprüfen! Bitte beim "täglichen Nutzer" erstellen, da wir ja root nur zur Installation nutzen möchten! Es gibt mehrere Wege zum Ziel, dies ist meiner:

    Code:
    nano ~/.bashrc
    In die nun geöffnete Bash.rc setzen wir :

    Code:
    alias nag='/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg'
    Und schließen Nano oder vi. Nach einem ab und anmelden unter aktuell root können wir mit "nag" die Konfigurationsdateien überprüfen und erhalten idealerweise ein :

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


    Herzlichen Glückwunsch, Nagios ist installiert und könnte bereits starten. KÖNNTE!


    ------------------------------------------------------------------------

    Teil 2
    - Konfiguration von Nagios

    Wir teilen das ganze nun in "Anfänger" (i.) und "das reicht schon" - und "wir wollen Funktionalität prüfen, nicht nur Anwesenheit" (ii.) !

    i. Basis-Konfiguration

    Am einfachsten kann man ein Gerät überwachen welches sich im Netzwerk schlichtweg anpingen lässt.

    Das setzen wir am Beispiel eines Routers, welcher sich praktischerweise auf 10.0.0.1 befindet - so um :

    Man wechsle in das Nagios Hauptverzeichnis .. :

    Code:
    cd /usr/local/nagios/etc/objects
    Unter dem Verzeichnis "Objects" befindet sich unser Hauptsteuerungsmechanismus - die Konfigurationsdateien der Objekte.
    Wir möchten gerne von Null anfangen, das eignet sich in meinen Augen am besten um zu lernen und erstellen eine Neue Konfiguration, die wir "Router.cfg" nennen, in ihr sollen später alle "Router" Ihre Überwachungskonfiguration finden :

    Hinweis! Nagios ist so ausgelegt das man Entwürfe vorfertigen kann, daher macht diese separate Konfigurationsdatei Sinn, Router werden selten in der Lage sein zBsp. Ihre CPU Auslastung zurückzugeben, das können wir mit einem Template so markieren und dieses Template legen wir als Definition für alle Router fest. Die Konfigdatei zBsp. Server würde dann ein anderes Template haben, wo es besonders darauf ankommt wieviel ? Speicherplatz ? eine Partition hat, oder wie hoch die Auslastung ist oder oder.
    Code:
    nano router.cfg
    In die Konfigurationsdatei, welche idealerweise noch leer ist - setzen wir nun unsere Definition unseres ersten, zu überwachenden Routers ein, an jedem "host" können wir mehrere Arten der Prüfung fahren, aber step by step:

    Hinweis! (Siehe zur Konfiguration auch "Tipp2" ganz unten im Thread!)

    Code:
    define host{
            use             generic-switch          ; Das ist ein vordefiniertes Template - welches wir nun für Router nehmen.
            host_name   unser_router              ; Der Maschinenlesbare Name, also ohne Leerzeichen etc.
            alias            Dieser Router verbindet Zentrale 1 mit 2 und ist sehr wichtig ; ein langer - menschenlesbarer Text, ein Alias
            address        10.0.0.1              ; Die IP des Gerätes, wir hatten uns auf 10.0.0.1 geeinigt.
            hostgroups    switches                ; Welcher Gruppe gehört dieser einzelne Router an? Der vordefinierten Gruppe "switches"
            }
    Ist eigentlich ganz einfach - nicht? Ist ja auch das "Schnellschema"..
    Nun müssen wir unsere zu prüfenden Schemen anpassen, wir setzen direkt nach dem o.g. Eintrag diesen hier ein:

    Code:
    define service{
            use                          generic-service ; Wir nutzen, mal wieder ein Template, der einfachherheithalber aus den Vorlagen
            host_name                unser_router     ; Wie heisst nochmal das Gerät welches geprüft werden soll? Achja, "unser_router"
            service_description     PING            ; Beschreibung des Services - diese kommt zBsp. bei Fehlermeldungen zur Ansicht.
            check_command           check_ping!200.0,20%!600.0,60%  ; Wir geben dem Plugin "PING" seine Anweisungen
            normal_check_interval   5               ; Wenn alles okay ist dann prüfe alle 5 Minuten
            retry_check_interval    1                ; Schlägt Check1 fehl, prüfe alle 1 Minute ob wir wieder online sind
            }
    Fertig.

    Nun könn(t)en wir bereits unseren Nagios laufen lassen, jedoch - was passiert wenn etwas schief geht? Wer wird informiert?

    Wir werfen einen kurzen Blick in die Contacts.cfg und setzen unseren Namen und unsere Email ein.
    ACHTUNG! Bitte stell sicher das Dein System auch Emails versenden kann!

    Nagios Konfig. prüfen mit "nag" - ist alles okay?
    Nagios starten.

    Code:
    /etc/init.d/nagios start
    Wer nunmehr mag, kann schon per Apache auf seinen Neuen Nagios Webauftritt schauen :

    Code:
    http://localhost/nagios
    Benutzer ist per default : nagiosadmin
    Passwort : nagiospwd

    Sicherheitsbedenken wegen des einfachen Passwortes? Richtig, wir setzen unser eigenes :

    Code:
    htpasswd2 -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
    Eingeben. Übernommen. Fertig. Verloren? Befehl als root neu starten.

    Wir können auch noch den Zugriff separieren, aber das sprengt den Rahmen - wer es mag .. :

    Code:
    nano /etc/apache2/conf.d/nagios.conf
    Ende der Schnellanleitung.


    ii. Funktionsweite Konfiguration (wir beginnen bei Null - aber wir lernen viel)

    Fangen wir einfach an und entfernen alle Vorlagen .. :

    Code:
    cd /usr/local/nagios/etc/objects
    mkdir backup
    mv *.cfg backup
    So. Nun sind wir rein und können verstehen wie Nagios arbeitet und warum.

    ##### Neubau heisst viel Zeit haben - ich arbeite an beidem ######

    ------------------------------------------------------------------------

    Teil 3
    - Überwachen von Endgeräten

    ------------------------------------------------------------------------

    Teil 3 1/2 - Fehlerbehandlung in der Konfiguration
    a) Hilfe! Wie finde ich den Fehler

    Fehler gefunden? Nagios startet nicht? Was nun?

    Versuche es mit dem Nagios Prüfroutinchen, der v erbosity :

    Code:
    /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
    Das sollte Dir den Fehler deutlich einkreisen!

    ------------------------------------------------------------------------

    Teil 4 - Meldungen/Alarme zum Empfänger reichen

    Vorweg, da zwingend benötigt um per Telefon alarmiert zu werden - aber OffTopic - wer noch keine Sprachausgabe - also besser gesagt eine Sprachsynthese in sein Asterisk integriert hat sollte dies an dieser Stelle mit meinem HOWTO zu MBROLA tun. MBROLA ist Freeware und kann frei genutzt werden, für kommerzielle Einsätze sollte man auf CEPSTRAL wechseln - ich nutze hier kein MBROLA mehr, weshalb meine Skripte den CEPSTRAL Weg folgen werden, die Übernahme nach MBROLA ist aber ein Kinderspiel.

    Wer noch SMS Kontakt wünscht der kann dies zBsp. hier finden, oder hier - ich stehe auf ausgesprochene Worte und eine bestätigte Warnung (durch abheben des Hörers)

    Wir richten unsere KONTAKTE richtig ein, das machen wir über die Datei "contacts.cfg" in objects :

    Code:
    define contact{
            contact_name                    nagiosadmin
            use                             phone-contact
            alias                           Voller Name
            pager                           Die Rufnummer - so wie Asterisk sie DIREKT wählen kann, also : zBsp. "SIP/40"
            email                           TECHNIK@WELTKONZERN.DE
            }
    
    define contact{
            contact_name                    nagiosemail-empfaenger
            use                             phone-contact
            alias                           Voller Name
            email                           TECHNIK2@WELTKONZERN.DE
            }
    
    define contactgroup{
            contactgroup_name       admins
            alias                   Nagios Administrators
            members                 nagiosadmin, nagiosemail-empfaenger
            }
    Speichern.

    Wir modifizieren die "commands.cfg" im Verzeichnis "objects" des Nagios "etc" um unsere Sprachanrufe zu tätigen (Hinweis! Wer MBROLA nutzt muss nur den Befehl lt. HOWTO oben verändern, dieses Beispiel weist Cepstral an zu konvertieren!)

    Unter den beiden Kommandos zum EMAIL Support fügen wir nun unsere beiden Telefonkommandos ein :

    Code:
    # 'notify-service-by-phone' command definition
    define command{
            command_name    notify-service-by-phone
            command_line    /opt/swift/bin/swift -o /tmp/nagios-alert-service.wav -p audio/sampling-rate=8000,audio/channels=1' "NAGIOS-ÜBERWACHUNG VON EINZELNEN DIENSTEN. Zustand ist $NOTIFICATION$, $SERVICESTATE$. Der Service $SERVICEDESC$ auf  $HOSTALIAS$ benötigt Ihre Aufmerksamkeit. Es wird keine weiteren  Hinweise auf Ihrem Telefon zu diesem Status geben."  &  /var/lib/asterisk/agi-bin/nagios-anruf.sh $CONTACTPAGER$
            }
    
    # 'notify-host-by-phone' command definition                                                                                                                                      
    define command{
            command_name    notify-host-by-phone
            command_line    /opt/swift/bin/swift -o /tmp/nagios-alert-host.wav -p audio/sampling-rate=8000,audio/channels=1' "NAGIOS-ÜBERWACHUNG VON HOSTS. Zustand ist $NOTIFICATION$, $SERVICESTATE$. Der Service $SERVICEDESC$ auf $HOSTALIAS$ benötigt Ihre Aufmerksamkeit. Es wird keine weiteren Hinweise auf Ihrem Telefon zu diesem Status geben."  & /var/lib/asterisk/agi-bin/nagios-anruf.sh $CONTACTPAGER$
            }
    Nun noch den Kontakt selber unter dem default "generic-contact" in "templates.cfg" erstellen, ich habe ihn hier mit "Arbeitszeit" und nur bei kritischen Fehlern laufen lassen :

    Code:
    define contact{
            name                            phone-contact
            service_notification_period     Arbeitszeit
            host_notification_period        Arbeitszeit
            service_notification_options    c                       ; c = critical
            downtime events                      
            host_notification_options       d,u                       ; down und unreachable
       
            service_notification_commands   notify-service-by-phone
            host_notification_commands      notify-host-by-phone
            register                        0                       
            }
    Die Uhrzeiten setzen wir ebenfalls etwas eleganter, wer will schon unterm Weihnachtsbaum nen Anruf bekommen ?

    timeperiods.cfg

    Code:
    define timeperiod{
            timeperiod_name Arbeitszeit 
            alias           Normal Work Hours
            monday          04:00-19:00
            tuesday         04:00-19:00
            wednesday       04:00-19:00
            thursday        04:00-19:00
            friday          04:00-19:00
            saturday        04:00-19:00
            sunday          06:00-16:00
            }
    Wir müssen ebenfalls unser Shellskript in /var/lib/asterisk/agi-bin/ erstellen, wir geben eine Variable "$1" als Rufnummer für Asterisk mit - nochmals deutlich - Asterisk muss dies inkl. CHANNEL erhalten !! Also nicht "40" sondern "SIP/40" "mISDN/1/123456" oder mW "ZAP/2" oder oder..

    Wir erstellen die Datei "nagios-anruf.sh" in /var/lib/asterisk/agi-bin

    Code:
    #!/bin/bash
    #
    # NAGIOS ALARMFUNKTIONS-SKRIPT
    #
    # $1 beinhaltet die Rufnummer des zu alarmierenden
    # Wir pruefen als ersten Schritt ob die Datei von NAGIOS auch wirklich existiert!
    # ACHTUNG! Diese Vorgehensweise hat einen Haken - alarmiert Nagios urplötzlich über viele Probleme, so wird die Sprachdatei laufend aktualisiert und 
    # könnte zum Zeitpunkt unserer Kontrolle nicht verfügbar sein, so dass nicht alarmiert wird. Umgehung mit einer TIMESTAMP Datei und der Weiterverfolgung
    # des Ansatzes unten - jedes Callfile bekommt eine eigene Nummer oder halt einen TIMESTAMP, ich mache es immer so das ich bis zu 3 Nummern vergebe und dann
    # bei Skriptstart pruefe ob .1 da ist, dann prüfe ich ob .2 da ist, nein? dann nutze ich .2 usw
    #
                    if [ -f /tmp/nagios-alert-host.wav ]; then
                            ZEILE1="Channel: $1"                    # wer und wohin - variabel
                            ZEILE6="Extension: nagios"
    
                            ZEILE2="MaxRetries: 3"                  # Wie oft anrufen
                            ZEILE3="RetryTime: 300"                 # Wartezeit zwischen..
                            ZEILE4="WaitTime: 50"                   # Wartezeit bis zur Abnahme des Apparates
                            ZEILE5="Context: nagios"                # Sprungpunkt
                            ZEILE7="Priority: 1"                    # Prioritaet
                            ZEILE8="CallerID: Nagios <91>"          # Wer ruft an
    
                            rm /var/spool/asterisk/entwurf/nagios_nachricht.1 2>/dev/null
                            touch /var/spool/asterisk/entwurf/nagios_nachricht.1
    
                    # Hier setzen wir den Lock fuer die Verarbeitung von Anruf 1 - bei mir LOCK 10.
    
                            touch /var/spool/asterisk/entwurf/10
                            echo $ZEILE1 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            echo $ZEILE2 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            echo $ZEILE3 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            echo $ZEILE4 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            echo $ZEILE5 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            echo $ZEILE6 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            echo $ZEILE7 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            echo $ZEILE8 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            mv /var/spool/asterisk/entwurf/nagios_nachricht.1 /var/spool/asterisk/outgoing/nagios_nachricht.1
    
                    # Und hier nehmen wir den Lock wieder weg
    
                            rm /var/spool/asterisk/entwurf/10 2>/dev/null
                    fi
    
    # Wir pruefen ob ein Dienst einen Neuen Status hat..
    
                    if [ -f /tmp/nagios-alert-service.wav ]; then
                            ZEILE1="Channel: $1"                    # wer und wohin - variabel
                            ZEILE6="Extension: nagios-service"
    
                            ZEILE2="MaxRetries: 3"                  # Wie oft anrufen
                            ZEILE3="RetryTime: 300"                 # Wartezeit zwischen..
                            ZEILE4="WaitTime: 50"                   # Wartezeit bis zur Abnahme des Apparates
                            ZEILE5="Context: nagios"                # Sprungpunkt
                            ZEILE7="Priority: 1"                    # Prioritaet
                            ZEILE8="CallerID: Nagios <91>"          # Wer ruft an
    
                            rm /var/spool/asterisk/entwurf/nagios_nachricht.1 2>/dev/null
                            touch /var/spool/asterisk/entwurf/nagios_nachricht.1
    
                    # Hier setzen wir den Lock fuer die Verarbeitung von Anruf 1 - bei mir LOCK 10.
    
                            touch /var/spool/asterisk/entwurf/10
                            echo $ZEILE1 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            echo $ZEILE2 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            echo $ZEILE3 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            echo $ZEILE4 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            echo $ZEILE5 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            echo $ZEILE6 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            echo $ZEILE7 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            echo $ZEILE8 >>/var/spool/asterisk/entwurf/nagios_nachricht.1
                            mv /var/spool/asterisk/entwurf/nagios_nachricht.1 /var/spool/asterisk/outgoing/nagios_nachricht.1
    
                    # Und hier nehmen wir den Lock wieder weg
    
                            rm /var/spool/asterisk/entwurf/10 2>/dev/null
                    fi
    Ausführbar machen mit chmod a+x <dateiname>. Bitte beachtet die in diesem Skript nicht voll ausgefertigte Idee - "was passiert wenn mehrere notrufe ausgegeben werden?"

    Nun ran an Asterisk - wer NICHT REALTIME nutzt kann es so machen wie ich :

    extensions.conf editieren und folgendes einfügen :

    Was ist AMD ? AMD findet heraus ob ein Mensch abnimmt oder eine Maschine - es funktioniert super, ein Nachteil - hört AMD das man abnimmt aber sich nicht seinem Namen meldet nimmt AMD an das ein Anrufb. rangegangen ist und legt einfach auf, bzw. führt das aus was wir wollen was passiert wenn ein AB rangeht. anbei - ich lasse die Nachricht 2 x durchsprechen, es ist halt so das man beim ersten Anruf nicht immer alles wichtige versteht.

    Code:
    [nagios]
    
    exten => nagios,1,AMD
    exten => nagios,n,GotoIf($[${AMDSTATUS}=HUMAN]?humn:mach)    
    
    exten => nagios,n(humn),Playback(/tmp/nagios)
    exten => nagios,n(humn),Playback(/tmp/nagios)
    exten => nagios,n(humn),Hangup()
    
    exten => nagios,n(mach),Hangup()
    
    ; Aktion bei einem Service - ggf. nicht so dringend und somit anders zu behandeln?
    
    exten => nagios-service,1,AMD
    exten => nagios-service,n,GotoIf($[${AMDSTATUS}=HUMAN]?humn:mach)
    
    exten => nagios-service,n(humn),Playback(/tmp/nagios)
    exten => nagios-service,n(humn),Playback(/tmp/nagios)
    exten => nagios-service,n(humn),Hangup()
    
    exten => nagios-service,n(mach),Hangup()
    Fertig.

    Bitte noch mit "/etc/init.d/nagios checkconfig" die Konfiguration prüfen!

    Was jeder selber wissen muss ob er nicht eine Zeitfunktion einbaut, wer will schon nachts angerufen werden weil ein Drucker ausgegangen ist, aber wie gesagt, das muss jeder selber wissen.

    zBsp. so :

    Code:
    exten => nagios,n,GotoIfTime(22:00-06:00,mon-sun,*,*?email-reicht-aus,,1)
    Teil 5 - Manuelle Modifikationen (Tipps!)

    Tipp 1 - Wer nachher gerne mit der WebGUI arbeitet und zBsp. "Downtimes scheduled" oder "Notifikationen verändert" etc. wird etwas feststellen - unter meinem Debian wird aus irgendeinem Grund die Datei "nagios.cmd" täglich und nach jedem Neustart des PC / Server mit anderen Schreibrechten versehen - warum dem so ist und/oder ob es an dem Verzeichnis liegt weiss ich nicht - meine Abhilfe steht in einem kleinen "Tagesskript" an letzter Stelle :

    Code:
    chmod 777 /usr/local/nagios/var/rw/nagios.cmd
    Dann ist wieder alles möglich - es hilft allerdings NICHT bei einem Neustart und dem Willen direkt danach etwas in der GUI zu tun.

    Tipp 2 - [GuterTipp!!] Wer sich gerne "optisch" mit Nagios auseinandersetzen will, sollte die Option "parents" beherrschen und überall in der Konfiguration einpflegen !!

    Parents steht für nicht mehr als das man seinem Objekt der Überwachung sagt von wem es abhängt.
    Einfaches Beispiel - DSL fällt aus, der Webserver dahinter ist lokal natürlich noch zu erreichen - jedoch ist er für die Außenwelt tot.
    Gibt man dem Webserver jedoch die Option parents mit, versteht er das er ebenfalls down ist wenn die Eltern ausfallen - und noch mehr, mit gesetzter Parents kann man per Klick direkt zu einer geplanten Ausfallzeit (scheduled downtime) die Kinder mit einplanen.

    Eine Konfig sieht dann zBsp. so aus :

    Code:
    define host{
            use             generic-voip   
            host_name       asterisk-service
            alias           Der ASTERISK DIENST
            address         10.0.0.60             
            hostgroups      voip                   
            parents         patton-isdn
            parents         dsl-router-1
            parents         dsl-router-2
            parents         dsl-router-3
            }
    Wie man sieht sind auch mehrere parents möglich..!

    Optisch kann parents dann direkt auch noch was. Die Symbole werden in der "map" den Abhängigkeiten nach sortiert und aufgereiht.

    Bei mir sieht das ganze dann so aus :



    Tipp 3 - Wer gerne Windows Rechner auf HDD, RAM Nutzung, Logprobleme etc. überwachen will die nicht ständig an sind, oder auch Laptops oder was weiss ich was halt nicht immer da ist, der kann "check_multi" nutzen.

    Ich muss jedoch zugeben check_multi bisher nicht so verstanden zu haben das es einsatzfähig wäre
    Doku hier.

    War das HOWTO nützlich?
    Ich freue mich sehr über eine kleine Bemerkung im Diskussions-Thread!


    Stefan.
    Geändert von HobbyStern (27.02.2011 um 10:24 Uhr) Grund: Update
    Asterisk: 1.4.30 mit Russel-Devstate und PickPatch,MissedCalls - Übersicht mit Nagios, Redundanz durch LoadBalanced-Clusterung
    Nutze zahlreiche Snoms,Ciscos,Patton,Linksys und Grandstream. 24 Fritz!Boxen für VPN und VoIP an Remote-Standorten


    Bitte keine Supportanfragen per PM, Danke.

Ähnliche Themen

  1. [HowTo] Faxen mit Fritz! und sipgate.de (VOIP)
    Von peter48 im Forum AVM-Software
    Antworten: 0
    Letzter Beitrag: 17.06.2010, 13:14
  2. [DISKUSSION] Howto zu Nagios
    Von HobbyStern im Forum Linux allgemein
    Antworten: 5
    Letzter Beitrag: 18.04.2010, 14:26
  3. Trixbox und T-Online Voip - Howto
    Von Mr44er im Forum FreePBX, TrixBox (Asterisk@Home)
    Antworten: 0
    Letzter Beitrag: 25.08.2008, 04:39
  4. Router/ISDN-Anlage + VoiP ?! HowTo
    Von Hypernotus im Forum VoIP-Allgemein
    Antworten: 9
    Letzter Beitrag: 26.08.2006, 14:43
  5. [HowTo] ATA386: 2 VoIP Provider und nur ein Telefon !
    Von betateilchen im Forum ATA386 /ATA488 /ATA496
    Antworten: 3
    Letzter Beitrag: 02.03.2006, 21:36

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •