Beiträge zu “Nagios”

RSnapshot Monitoring mit Icinga

Aus gegebenem Anlass sollte jetzt mal eine Icinga Warnung für Fehler im Backup mit RSnapshot eingerichtet werden.

Für meinen Bedarf schien dieses Plugin recht sinnvoll.

Die Installation lehnt sich an meinen bereits beschriebenen Ablauf von NSCA Meldungen in Nagios/Icinga an. Als Vorrausetzung braucht man nur Ruby.

apt-get install ruby
wget https://raw.githubusercontent.com/tommyblue/Rsnapshot-Nagios-Plugin/master/check_rsnapshot > check_rsnapshot
chmod +x check_rsnapshot 
./check_rsnapshot 

Gegebenenfalls sind im Sript der Name des Logfiles für RSnapshot anzupassen. Auf dem Nagios/Icinga Server wird ein weitere passiver Service aufgesetzt

define service{
    use                           service-no-notification
    active_checks_enabled           0
    passive_checks_enabled          1
   host_name                       Backup
   service_description             RSnapshot
   check_command                   return-ok
   }

Und auf dem Backupserver wird ein Script eingerichtet das den Check ausführt und an den Icinga Server sendet

vi nsca-check_rsnapshot.sh

   service1=RSnapshot
   plugin=/opt/caserio/nagios/check_rsnapshot
   output1=`$plugin`
   rc=$?
   echo -e "$host\t$service1\t$rc\t$output1"|$send_nsca -H $nagioshost -c $send_nsca_cfg

Leider ist Rsnapshot mit dem Status “Warning” etwas spendabel. In den nächsten Tagen werde ich mal prüfen ob man die RSnapshot “Warning” nicht in einenn Icinga “OK” Status auswertet und sich wirklich nur die “Errors” als Störung anzeigen läst

Icinga RSnapshot

8.9.14
Weitere Beiträge zu: Nagios   Backup  

Nagios: Ausführung von Cron Aufgaben überwachen

In meinem konkreten Fall wollte ich mit Nagios prüfen ob Befehle, welche alle zwei Wochen ausgeführt werden sollen, auch wirklich ausgeführt werden. Wie immer unter Linux gibt es viele Wege. So habe ich das gelöst. Ich ändere einfach eine Datei und prüfe mit Nagios, das sich die Datei auch richtig verändert. Dazu muss ich in meinen Befehl einfach nur einfügen (pfad natürlich anpassen)

touch /snapshots/biweekly.0/lastmodified

Dann verwende ich den hier  beschriebenen Ansatz zur Prüfung der Aktualität einer Datei.

201101-cron-befehle-checken.png

Fertig ist die Laube. Wieder ein Aufgabe weniger die ich in Logfiles manuell überwachen muss ;-)

19.1.11
Weitere Beiträge zu: Nagios  

Nagios: Dateiaktualisierungen mit passiven Checks prüfen

Mein Backupserver wird nachts geweckt (per wake on lan) und um eine bestimmte Uhrzeit started ein Prozess der per rsnapshot  verschiedene Backups durchführt. Danach schaltet sich der Server wieder ab. Ein Backup ist mir dabei besonders wichtig. Nämlich eine bestimmte MYSQL Datenbank. Ich möchte das Nagios überwacht ob diese Datei aktuell ist.

Da der Backup Server nicht immer eingeschaltet ist, muss mit passiven Checks gearbeitet werden. Die generelle Vorgehensweise dazu hatte ich hier beschrieben.

Der Eintrag in der service.cfg sieht also so aus

define service{
     use                             service-no-notification
     active_checks_enabled           0
     passive_checks_enabled          1
     host_name                       Backup
     service_description              Datensicherung-Shop-DB
     check_command                  check_dummy_ca
   }

Zum prüfen nehme ich check_fileage.py. Das ganze Script auf dem Backup sieht dann so aus

more nsca-check-backup-date.sh
#!/bin/bash
send_nsca=/usr/lib/nagios/plugins/send_nsca
send_nsca_cfg=/etc/nagios/send_nsca.cfg
nagioshost=x.c.de
host=Backup
service1=Datensicherung-Shop-DB
plugin2=/opt/caserio/nagios/check_fileage.py
warn2=1440
crit2=2800
file1='your-path-to-the-critical-file'
output1=`$plugin2 -f $file1 -w $warn2 -c $crit2`
rc=$?
echo -e "$host\t$service1\t$rc\t$output1"| $send_nsca -H $nagioshost -c $send_nsca_cfg
exit 0

Das Script wird beim Starten und Runterfahren des Servers gestartet.

16.8.10
Weitere Beiträge zu: Rsnapshot   Nagios  

Nagios: Festplatten Raid überwachen

Hat man unter Linux ein Software RAID 1 installiert und auch NAGIOS installiert kann man das RAID System recht einfach überwachen. Wie immer zuerst der checkcommand.cfg Eintrag und dann der Service

define command{
    command_name    check_raid
    command_line    /usr/lib/nagios/plugins/check_linux_raid
   }

 

define service{
        use                             your-service-template
        host_name                       your-host
        service_description             RAID
        notification_options            n
        check_command                   check_raid
        }

201007-nagios-raid.png

7.8.10
Weitere Beiträge zu: Nagios   RAID  

Nagios und NSCA reden nicht miteinander: Leerzeichen zuviel.

Bei meiner Migration von Nagios von Gentoo nach Debian wollte ich auch meine passiven Checks rekonstruieren. Im Prinzip geht auch alles wie schon mal beschrieben. Nur ein Leerzeichen hat mich "etwas Zeit und Nerven" gekostet.

In der Datei

/etc/nsca.cfg

muss man folgenden Paramter angeben

command_file=/var/lib/nagios3/rw/nagios.cmd

In diese Datei werden die externen Befehle geschrieben. Ich hatte das Phänomen das der NSCA Daemon zwar alle passiven Statusmeldungen angenommen hat, diese aber nicht an Nagios weitergegeben hat. Nach einiger Zeit viel mir dann im Debug File in folgende Zeile ein Leerzeichen auf

SERVICE CHECK -> Host Name: 'Backup', Service Description: 'Datensicherung-' , Return Code: '0', Output: 'OK: error.log has a modified date of Sat 24 Jul/2010 02:15'
Jul 24 19:34:38 551208p nsca[20172]: Command file '/var/lib/nagios3/rw/nagios.cmd ' does not exist, attempting to use alternate dump file '/var/run/nagios/nsca.dump' for output
Jul 24 19:34:38 551208p nsca[20173]: Connection from 192.168.221.3 port 1707

Hier noch mal in GROSS

Command file '/var/lib/nagios3/rw/nagios.cmd '

Ich hatte in der Konfigurationsdatei ein Leerzeichen am Ende. :-(

Macht man das weg gehts auch mit dem Nachbarn ;-)

27.7.10
Weitere Beiträge zu: Nagios  

Nagios unter Debian installieren

in meinem Fall war Apache2 war schon installiert

apt-get install nagios3
cd /etc/nagios3/

htpasswd -c htpasswd.users hbauer
New password:
Re-type new password:
Adding password for user hbauer

http://yourserver/nagios3/

jetzt kan man sich mit dem eben definierten Namen und Kennwort anmelden und man bekommt hoffentlich den Standard Startbildschirm.

Jetzt einchecken der Nagios Konfiguration in die Versionskontrolle

svn add nagios3/
svn ci nagios3 -m "initial nagios config"

In meinem Fall migriere ich meine bereits existierende Nagios Konfiguration auf Basis Gentoo auf den Debian Server. Da die Konfigurationsdateien unterschiedlich sind werde ich das ganze schrittweise machen.

 

25.7.10
Weitere Beiträge zu: Nagios  

Nagios: Netzwerkdrucker überwachen

Will man Nagios auch dazu benutzen den Status von HP Druckern zu überwachen geht das recht einfach. Startpunkt sollte diese Dokument sein. Um einzusteigen mache ich immer gern einen ersten Test manuel von der console. In der checkcommands.cfg kann man den notwendigen Befehl finden.

# /usr/lib/nagios/plugins/check_hpjd -H printer.ip-address -C public
Printer ok - ("BEREIT")

Ok. Scheint erst mal nicht schlecht zu starten. Zuerst wie immer den Host definieren.

hostdefinition define host{
        use                     your-host-template
        host_name               printer-name
        alias                   Printer
        address                 printer.ip-address
        check_command           check-host-alive
        }

und dann die service Definition

define service{
        use                     your-service-template
        host_name               printer-name      
        service_description     Printer 
        check_command           check_hpjd!-C public  
        }

define service{
       use                     your-service-template
       host_name                printer-name
       service_description     PING
       check_command           check_ping!100.0,20%!500.0,60%
       }

Wenn alles klappt kann man dann den Status in der Nagios Console überwachen

201007-nagios-printer.png201007-nagios-printer-warning.jpeg


16.7.10
Weitere Beiträge zu: Nagios  

ModSecurity mit Nagios check_http kombinieren

Nagios checked ja ob mein WebServer läuft. Modsecurity verhindert durch definierbare Regeln das "unerwünschte" Anfragen auf den WebServer durchkommen. Beide Programme kennen sich nicht. Eine der Regeln die man bei ModSecurity standardmässig meistens verwendet ist "Die Anfrage muss sagen welche Dateitypen sie als Antwort erwartet". Das Nagios Plugin check_http macht das aber standardmässig nicht ;-(

Deswegen sagt Modsecurity: "Das darfst du nicht" und Nagios wirft eine Warnung.

201005-nagios-modsec-warning.gif

Bisher bin ich diesem Problem recht brutal aus dem Weg gegangen in dem ich dem User-Agent check_http relativ freie Rechte gegeben haben. Nach einem Nagios Update musste ich mir das aber wieder ansehen, da sich der User-Agent geändert hatte. (Hintergründe zu User-Agents und Broswer  findest du hier)Jetzt wollte ich das Problem "richtig" lösen. Am Ende bin ich hier auf die richtige Spur gekommen. Ich richte das Nagios Plugin einfach so ein das es diesen Anfrage einfach mitschickt. Der Parameter lautet

-k "Accept: text/html"

und in die Nagios Definition von check_http eingebaut

define command{
        command_name    check_http
        command_line    /usr/lib/nagios/plugins/check_http -H $HOSTADDRESS$ -k "Accept: text/html"
        }

Dann ist auch wieder Ruhe und die Warnung verschwindet.

201005-nagios-modsec-ok.png

29.5.10
Weitere Beiträge zu: ModSecurity   Nagios  

Nagios: Capi Treiber für Asterisk überwachen

nagios.jpgIch wollte mit Nagios überwachen ob der CAPI Treiber geladen ist. Mein Asterisk Server ist an eine Fritzbox angeschlossen und stellt einen Anrufbeantworter bereit und verbindet mein Cisco 7960 SIP Telefon mit dem normalen Telefonnetz. Der Ansatz ist folgender; Prüfe ob capiinfo einen Fehler liefert. Wenn Fehler dann ist etwas falsch im Staate Dänemark. Ansonsten alles gut ;-) Zuerst das Script welches das prüft und dann den Eintrag in checkcommands.cfg und services.cfg. Capiinfo braucht root Rechte. Also immer daran denken

asterisklogo.jpgvi /opt/c/nagios/check-asterisk-capi.sh

#!/bin/bash
capi="`/usr/bin/capiinfo | grep -c CAPI`"
if [ $capi -eq 0 ] ; then
        echo "ISDN Critical: lines down"
        exit 2
fi
echo "ISDN: CAPI OK "
exit 0

vi /etc/nagios/checkcommands.cfg

define command{
        command_name    check_asterisk_capi
        command_line    sudo /opt/c/nagios/check-asterisk-capi.sh
  }

vi /etc/nagios/services.cfg

define service{
       use                             service-level-2
       host_name                       mail
       service_description             Asterisk-CAPI
       check_command                   check_asterisk_capi
       notes_url              /nagios/cgi-bin/wiki.cgi?host=$HOSTNAME$&srv=$SERVICEDESC$
     }
 

201005-nagios-asteriks.png

 
6.5.10
Weitere Beiträge zu: Asterisk   Nagios  

Hagen! Schreibe 100 mal: Wenn Du nagios commands schreibst dann immer mit nagios user

201003-arggh.jpg

Wieder einmal Zeit verschwendet. Habe ein Nagios command gebaut. Und als root liefert es die richtigen Ergebnisse.

Auf der Console aber nicht.


Immer mit Nagios Benutzer Rechten testen. Wenn der nähmlich nicht darf was root darf - dann bekommt der Benutzer auch andere Ergebnisse :-( Und das ist jau "im prinzip" auch richtig.

 

(Foto by:coyotejack/ / CC BY 2.0

22.3.10
Weitere Beiträge zu: Nagios  

Nagios und DokuWiki Integration

Durch Zufall bin ich auf diesen Beitrag gestossen. Er beschreibt eine Möglichkeit wie man automatisch an ein Objekt (Dienst oder Server) in Nagios ein Dokument innerhalb eines Wikis verlinken kann. Ist das Dokument noch nicht vorhanden wird automatisch eins erstellt welches man dann editieren kann. Auf diese Art kann man gut Dokumentationen / Konfiguration / Passwörter direkt mit den Server oder Dienst verknüpfen.

Zuerst mal ein Wiki installieren (gilt für Gentoo)

emerge -av dokuwiki

Dann erstellen des scriptes wie hier.  Beim von mir installierten DokuWiki ist die Syntax etwas anders. Deshalb muss der Linkaufruf geändert werden.

# Der Link Zum Wiki Web
my $wikiweblink = "http://1
92.168.x.x:81/dokuwiki/doku.php?id=";
 

Ich habe nur der Übersichtlichkeit halber in dem cgi script die Namesgebung verändert.

#Linkgenerierung fuer Service immer hostname+:+servicedesc
$link = "${wikiweblink}${hostname}:$servicedesc";
#Linkgenerierung fuer Service immer Host+:+"Basisinfo
$link = "${wikiweblink}
$hostname:Basisinfo";

Im Wiki sieht das dann später so aus

201003-nagios-wiki-2.png

Das ganze an die richtige Stelle

cd /usr/lib/nagios/cgi-bin/
vi wiki.cgi
chmod +x wiki.cgi
chown nagios:nagios wiki.c
gi

Jetzt muss noch der Aufruf in der Konfiguration von Nagios konfiguriert werden. Da kann man jedem Service oder Host direkt oder in den erweiterten Informationen die URL angeben.

define hostextinfo{
        host_name       hostname
        notes_url       /nagios/cgi-bin/wiki.cgi?host=$HOSTNAME$
       }

define serviceextinfo{
   host_name        hostname
   service_description    servicename
   notes_url              /nagios/cgi-bin/wiki.cgi?host=$HOSTNAME$&srv=$SERVICEDESC$
   }

201003-nagios-wiki-1.png

22.3.10
Weitere Beiträge zu: Nagios   Wiki   Linux  

Passive Checks mit Nagios

Normalerweise arbeitet Nagios ja nach dem Prinzip: "Ich bin der Server und Ich prüfe" (aktive checks). In der Konfiguration steht drin welche Test in welchem Zeitraum abgearbeitet werden müssen und wann benachrichtigt wird. So weit so gut.

Jetzt gibt es aber Situationen in denen das nicht geht. Zum Beispiel möchte man vielleicht prüfen ob ein lange laufender Prozess erfolgreich beendet worden ist. Oder aber der Nagios Server selber hat keinen Zugriff auf den Server. In meinem Fall hatte ich folgendes Szenario.

Mein Backupserver wird nachts geweckt (per wake on lan) und um eine bestimmte Uhrzeit started ein Prozess der per rsnapshot  verschiedene Backups macht. Danach schaltet sich der Server wieder ab. Ich würde gerne in Nagios sehen welchen Plattenplatz ich auf dem Backupserver noch frei habe. Aktive Checks gehen nicht weil ich nicht genau terminieren kann wann die Backups fertig sind. (Und nachts um 2.00 Uhr schaue ich auch nicht nach :-).

So siehts dann am Ende aus:201002-nagios-nsca-disk.gif

Generell gibts verschiedene Optionen. Ich habe mich für NSCA (Nagios Service Check Acceptor). Ein Dienst der Nagios Stati entgegen nimmt und an Nagios weiterleitet. Er muss auf dem Nagios Server erstmal installiert werden. Bei Gentoo ging das so:

emerge -av nagios-nsca
rc-update add nsca default
vi /etc/nagios/nsca.cfg  
  (ich habs nicht mehr genau parat aber die defaults waren ok - nur das password musste geänder werden)

So jetzt noch auf dem Nagios Server sagen das es einen passiven check gibt

vi /etc/nagios/services.cfg

define service{
        use                             generic-service-important
        active_checks_enabled           0              
        passive_checks_enabled          1
       host_name                       backup
       service_description             Volume-Backup
       contact_groups                  mail-admins-crit
       check_command                   check_dummy
       }

Dieser check_dummy hat mich etwas Nerven gekostet. Eigentlich brauchen wir keinen Check (weil der wird ja remote ausgeführt) aber die Syntaxprüfung verlangt einen. Also

vi /etc/nagios/checkcommands.cfg

define command{
        command_name    check_dummy
         command_line   ls
                   }

So - auf dem Sever ist alles ready. Jetzt müssen wir noch dem anderen Rechner (in diesem Fall mein Backup) sagen was zu tuen ist. Wie oben erstmal NSCA installieren:

emerge -av nagios-nsca

vi /etc/nagios/send_nsca.cfg  (verschlüsselung muss kongruent zu oben sein)

Das Plugin was wir brauchen muss noch auf den server und in ein preferiertes verzeichniss kopiert sein. Bei mir

/opt/c/check_disk

Wie immer erstmal den Test local probieren und schauen das das Ergebniss stimmt. Dann habe ich alles auf Basis dieses Threads in ein Script gepackt.

vi /opt/c/nagios/c-nsca-check_disk.sh

#!/bin/bash
send_nsca=/usr/lib/nagios/plugins/send_nsca
send_nsca_cfg=/etc/nagios/send_nsca.cfg
nagioshost=x.c.de
host=backup
service=Volume-Backup
plugin=/opt/c/check_disk
warn=70%
crit=90%
mountpoint='/dev/mapper/c--vg-backup'
output=`$plugin -m $mountpoint -w $warn -c $crit`
rc=$?
echo -e "$host\t$service\t$rc\t$output"|$send_nsca -H $nagioshost -c $send_nsca_cfg
exit 0

Bemerkung: ist natürlich alles wichtig aber auf jeden Fall muss man darauf achten das im Script "service=Volume-Backup" mit dem passiven Check auf dem Server übereinstimmt.

Dieses Script muss natürlich irgendwann laufen. Ich habs einfach in die start/stop scripts gepackt.

vi /etc/conf.d/local.start
vi /etc/conf.d/local.stop

/opt/c/nagios/c-nsca-check_disk.sh &>/dev/null
/opt/c/nagios/c-nsca-check_backup-date.sh &>/dev/null
 

(boah: ist das wieder lange geworden. hätte ich nicht gedacht. aber jetzt wenigstens für mich sauber niedergeschreiben)

31.1.10
Weitere Beiträge zu: Gentoo   Nagios   Rsnapshot  

Mit Nagios Festplatten "Gesundheit" überwachen

Heutige Festplatten kommen von Haus aus mit Diagnoseeinrichtung daher. Leider werden die nur selten genutzt und dann ärgert man sich dass die Platte kaputt geht.  Nutzt man die Diagnosemöglichkeiten zum Beispiel mit smartmontools kann man die Vorwarnzeit deutlich verlängern und hat somit Zeit, ein Backup zu machen. Für  Nagios gibt es ein Plugin das diesen Dienst "anzapft" Check SMART status und auf die Service Übersicht bringt und den Nagios Warnungsmechanismus integriert. Hier meine persönliche Doku:

Die Datei downloaden und auf den Nagios Sever kopieren. (Ich halte alle meine "nicht Standard Plugins" in einem anderen Ordner)


cp check_smart /opt/c/nagios
cd /opt/c/nagios
chown nagios:nagios check_smart

Check_smart braucht root rechte: also Sudo

vi /etc/sudoers
nagios ALL=(ALL) NOPASSWD:/opt/c/nagios/check_smart

Erstmal unter der User nagios auf der Kommandozeile testen. Dann in

/etc/nagios/checkcommands.cfg

define command{
        command_name    check_smart
        command_line    sudo /opt/c/nagios/check_smart -i $ARG1$ -d $ARG2$
        }

und in
/etc/nagios/services.cfg für die verschiedenen Platten den Service definieren.

define service{
       use                             generic-service-important
       host_name                       mail
      service_description             SMARTD-SDC
       normal_check_interval          360
      check_command                   check_smart!scsi!/dev/sdc
                                         }
define service{
       use                             generic-service-important
       host_name                       mail
       service_description             SMARTD-HDA
       normal_check_interval          360
       check_command                   check_smart!ata!/dev/hda
       }

nagio-smartd.gif


 

26.1.10
Weitere Beiträge zu: Linux   Nagios  

Nagstamon: Ein Desktop Plugin für Nagios

Nagios bietet einem ja eine schöne Weboberfläche an um den Status der verschiedenen Services einzusehen. Nur habe ich nicht ständig einen Browser offen der mir die Übersicht zeigt.

nagstamon_header_logo.gif

Zuerst habe ich ein Firefox Plugin verwendet. Das war auch nicht schlecht. Hatte aber den Nachteil/Vorteil das es immer startete wenn ich den Firefox starte. Da ich häufig außerhalb meines privaten Netzes unterwegs bin musste ich das Plugin immer deaktivieren. Und dann vergaß ich es zu aktivieren wenn ich wieder zu Hause war. Ich war auf der Suche nach einer andere Lösung dich einfach starten/stoppen konnte und nicht in den Browser integriert war.

Hier kam ich auf NagStaMon. Ein kleines Programm für Linux das sich in die Taskleiste integriert.

nagstamon.jpg

(Gibt es auch für Win/Mac)

23.1.10
Weitere Beiträge zu: Nagios  

Nagios für den Hausgebrauch

Ich verwende Nagios um verschiedene Dienste innerhalb meiner IT Landschaft zu überwachen. (IT Landschaft hört sich schon monströs an trifft es aber am besten.) Da sind zum Beispiel:

  • Ein Server im Internet mit Shop/Blogs/Kindergartenwebsite
  • Mein interner Hausserver mit Telefonanlage Asterisk, Videorecorder VDR und den anderen üblichen Dingen wie File/Print/Mail
  • Backup Server

Alles auf Basis von Linux (meistens Gentoo aber immer mehr Debian)

Ausschlaggebend war die Überwachung des Internet Servers um sicherzustellen das dort nix schiefgeht. Und wenn man es schon hat dann kann man auch noch einige andere nette Dinge tuen. Zum Beispiel kann man einstellen wann man eine Warnung über zu wenig Hauptspeicher oder Festplattenplatz bekommt. Man kann Schwellenwerte festlegen wann man eine SMS bekommt usw.

nagios-1.gif

21.1.10
Weitere Beiträge zu: Asterisk   Debian   Gentoo   Nagios   VDR  

Dies ist ein privater Blog von Hagen Bauer- berufstätiger Vater, Ehemann, Naturliebhaber, Läufer, Zelter, technikverliebt.


Creative Commons License
This blog is licensed under a Creative Commons License