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

HobbyStern

Aktives Mitglied
Mitglied seit
5 Dez 2005
Beiträge
1,844
Punkte für Reaktionen
0
Punkte
36
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
        [B]pager                           Die Rufnummer - so wie Asterisk sie DIREKT wählen kann, also : zBsp. "SIP/40"[/B]
        email                           [email protected]
        }

define contact{
        contact_name                    nagiosemail-empfaenger
        use                             phone-contact
        alias                           Voller Name
        email                           [email protected]
        }

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     [B]Arbeitszeit[/B]
        host_notification_period        [B]Arbeitszeit[/B]
        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 :

nagios.jpg


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.
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,696
Beiträge
2,216,700
Mitglieder
371,316
Neuestes Mitglied
realbluethunder
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.