Kleine und große Linux AHAs
Beiträge getaggt mit Nagios
Monitoring: Hardware, die Software braucht, um zu wissen, wie es der Hardware geht
03. Jan
Ein neuer HP Server DL380 G7. Die aktuelle Baureihe – tolles Teil. Mit einem kleinen – wie ich finde total unnötigen Schönheitsfehler.
Hardware, die Software braucht, um zu wissen, wie es der Hardware geht?
Hört sich komisch an – ist aber so. Was wollten wir tun? Wir wollten auf diese Maschinen einen VMware Server installieren. Der neue VMware ESXi ist quasi eine freie Version des ESX Servers und wird direkt auf einem Server installiert, ohne dass ein Betriebssystem vorhanden sein muss (früher lief unter dem ESX ein RedHat, was heute darunter läuft weiß ich leider nicht).
Das ganze funktioniert auch mit der Hardware einwandfrei. Alles gut. Dann wollte ich die Maschine monitoren. Wie? Es gibt keine Agents für VMware. Also wollte ich das “Integrated Lights Out” (ILO) Board nutzen. Über diese Karte – mit separatem Netzwerkanschluss – kann man die Maschine remote administrieren (Konsole), bzw. auch direkt über die Hardware neu starten, Systeminfos einsehen (…). Unter anderem zeigt ILO auch das IML (Integrated Management Log) an. In diesem Log werden Systemmeldungen gespeichert wie z.B. Festplattenprobleme, ausgefallene Lüfter oder ähnliches.
Das ILO Interface kann über IPMI abgefragt werden (muss aktiviert werden). Damit lässt sich dann das Log auslesen, bzw. mit Hilfe des ipmievd das ganze auf Fehler beobachten. Der Befehl dazu lautet:
server01:~# ipmitool -I lanplus -U ilouser -H 10.10.200.98 -P <password> sel list 1 | 12/01/2011 | 15:10:13 | Power Supply #0x04 | Failure detected | Asserted 2 | 12/19/2011 | 07:16:21 | Power Supply #0x04 | Failure detected | Asserted
Das sah sehr gut aus. Nun sollte das mit einem Festplattenausfall getestet werden. Also eine Platte raus. Log abrufen …. nix. Keine Meldung. Hmmmm…. Bei den älteren Servern ging das.
Also alle Firmwarestände geprüft und am Ende mit HP in Kontakt getreten.
Extrawurst
Von HP haben wir dann erfahren, dass HP eine eigene Version (ich denke gepatcht mit Treibern/Modulen) des ESXi für ihre Hardware anbietet. Das ganze ist auch kostenfrei – nach Registrierung. Man benötigt diese Version, damit das ILO mitbekommt wenn eine Festplatte – oder möglicherweise auch andere Hardware – ausfällt, bzw. ein Problem hat. Verstehen muss ich das nicht, oder? Es muss auf dem System ein Agent/Modul/Treiber oder wie auch immer laufen, damit die eigene Hardware, in dem Fall eine Management Karte, den Status der Hardware mitbekommt.
Naja, wie dem auch sei. Nun funktioniert das ganze. Gut finde ich nicht, dass es eine solche Abhängigkeit gibt.
Schizophrene Router überwachen
25. Mrz
Es geht um redundante Internetanbindungen. Bekommt man diese von seinem Provider installiert, so hat man zwei Router in seinem Rechenzentrum stehen. Beide Router haben eine IP Addresse und halten eine weitere, virtuelle Addresse dei das Gateway darstellt.
Unterschiedliche Bandbreiten
Nun ist es so, dass man nur selten zweimal mit der identischen Bandbreite angebunden wird. Beispielsweise – auch je nach Standort – kann es sein, dass man nur 10% der normalen Leistung auf dem Backupmedium hat. So ist es natürlich wichtig zu wissen wenn die Hauptleitung ausfällt um einerseits das Problem zu melden und auch andererseits vielleicht diverse Dienste abzuschalten. Nur wie kann man erkennen welcher Router gerade aktiv ist? SNMP Zugriff ist meist auf Providerrouter nicht möglich – warum auch immer.
Welcher ist aktiv?
Wir hatten dann zuerst geplant die MAC Addresse über ARP zu prüfen – wenn sie sich ändert wäre der Router umgeschaltet worden. Leider nimmt HSRP (Hot-Standby-Routing-Protocoll) die MAC Addresse mit. Also ging das auch nicht. Was dann ging ist das ganze per traceroute zu machen. Traceroute zeigt als einen Hop eine der festen IPs der Router. Auf diese Weise kann man also bestimmen welcher Router gerade aktiv ist.
Das Script dazu
#!/bin/bash
# Dieses Script prueft per traceroute welcher
# Router gerade aktiv ist.
#
# Da wir keinen Zugriff auf die Router haben
# (snmp oder anders) musste das so gemacht werden.
#
# Ronny Becker, 03.2011
# Gateway IPs
PRI_GW=""
SEC_GW=""
# HOPs to GW
GW_HOPCOUNT="2"
# Check Target(s)
TEST_TARGET="www.heise.de www.google.de"
# Do your job
for TARGET in $TEST_TARGET
do
# run trace
TRACE=$(traceroute -m $GW_HOPCOUNT $TARGET 2>&1)
if [ $? != 0 ]
then
continue
fi
# check if primary matches
if [[ $TRACE =~ $PRI_GW ]]
then
echo "Primary Gateway active"
exit 0
fi
# check if secondary matches
if [[ $TRACE =~ $SEC_GW ]]
then
echo "Seconday Gateway active"
exit 1
fi
done
echo "Unknown Gateway status"
exit 2
Das Script ist so gemacht, dass es von Nagios genutzt werden muss. Wer das ganze auf Mail umstellen möchte muss halt ein paar Änderungen vornehmen.
HDYUYD Teil III: Lila Täubchen gut integriert – Pidgin
10. Feb
Instant Messenger gibt es mittlerweile sehr viele. Ich habe mich vor einiger Zeit schon für Pidgin entschieden.
Einige Gründe sprechen für Pidgin in meiner Umgebung (z.B. Gnome).
Pidgin (ehemals Gaim) unterstützt nahezu alle bekannten Chat-Protokolle und kann sich gleichzeitig bei verschiedenen Netzwerken anmelden. Die Funktionsvielfalt ist groß. Pidgin kann über diverse Plugins erweitert werden und sich dadurch prima in die Desktopumgebung einfügen. Da Pidgin sehr bekannt ist, können auch andere Programme an Pidgin andocken. Beispielsweise Gnome-Do aus dem letzten Artikel.
Integration in den Desktop
Pidgin integriert sich sehr gut in den Gnome Desktop. Wie es mit anderen (KDE,…) aussieht kann ich leider nicht sagen. Natürlich gibt es im Systemabschnitt des Panels oder Docks das Statusicon. Natürlich blinkt das wie wild wenn offene Nachrichten vorhanden sind. Das sind jedoch die Standardfunktionen die ein solcher Client unter einem aktuellen Desktop bringen muss.
Anders sieht es aus wenn es beispielsweise um die “Senden an …” Funktion geht.
Diese Funktion ermöglicht es, Dateien direkt aus Nautilus oder vom Desktop aus an einen Chatpartner zu schicken (soweit vom Protokoll unterstützt). Diese Möglichkeit wird nicht von allen Clients angeboten, ist jedoch sehr nützlich
Beim Dateitransfer über IM wird direkt zwischen den Clients eine Verbindung aufgebaut und die Datei somit direkt von PC zu PC übertragen. Im Unternehmensnetz macht dies absolut Sinn – einiges was vorher als Email verschickt wurde wird nun über IM verschickt. Dadurch werden die Mailserver entlastet und vor allen Dingen wird kein teurer Speicherplatz dafür verschwendet (seien wir mal ehrlich – die meisten Emailanhänge sind es nicht Wert gesichert zu werden).
Auch Gnome-Do interagiert mit Pidgin. Wie bereits im letzten Artikel beschrieben – naja per Screenshot – kann man über Gnome-Do seinen Chatpartner auswählen und direkt eine neue Konversation starten. Es ist ebenfalls möglich über Do seinen Status zu setzen; allerdings habe ich das noch nie genutzt.
Es gibt einige weitere Beispiele für die Integration wie beispielsweise die Zusammenarbeit mit dem Indicator Applet (Ubuntu) oder einem Plugin für den Avant Window Navigator.
Wichtiger Punkt – für mich
Ein wichtiges Feature für mich ist, dass Pidgin HTML anzeigen kann. Wir nutzen das ganze für Nagios Benachrichtigungen. Das ganze habe ich auch schon einmal beschrieben (Ein bisschen grün, ein bisschen gelb und möglichst wenig rot – Nagios per Jabber live und in Farbe [fixed]).
Ohne HTML würde man den Nagios Meldungen nicht direkt ansehen welchen Status sie vermitteln. Bei meinem letzten Test konnte z.B. Empathy (der Gnome IM) mit den HTML Nachrichten nichts anfangen.
Plugins
Obwohl Pidgin sehr viele Plugins bereits von Hause aus mitbringt, habe ich nur wenige in Benutzung.
- libnotify Popups (zeige neue Nachrichten per Bubble (Ubuntu) / OSD an)
- Off-the-Record Messaging (extra Verschlüsselung zwischen Clients durch vorherigen Schlüsselaustausch)
Naja, wie gesagt nutze ich derzeit nicht so wahnsinnig viele Plugins
SNMP und Update auf Sqeeze: Such die MIBs, suuuuuuuch … Keine MIBs mehr da.
24. Aug
Heute hab ich meinen Nagios Server von Debian Lenny auf Sqeeze aktualisiert. Dabei musste ich echt schwitzen. Einige meiner SNMP Plugins wollten partout nicht mehr funktionieren. MIBs waren nicht mehr da. Dann hab ich mir die MIBs aus dem Backup gezogen – trotzdem ging es nicht. Immer wieder bekam ich die Fehlermeldung präsentiert, dass die abzufragenden OIDs nicht existieren. Auch mit dem Parameter “-M <MIBDIR>” hat das nicht richtig funktioniert. Nach einigem hin&her hab ich dann einen Hinweis gefunden (/etc/snmp/snmp.conf):
# # As the snmp packages come without MIB files due to license reasons, loading # of MIBs is disabled by default. If you added the MIBs you can reenable # loading them by commenting out the following line. mibs :
Der Kommentar spricht für sich. Ich habe den Parameter auskommentiert und alles war wieder gut.
[UPDATE]
Hab ne Kleinigkeit vergessen. Damit die MIBs auf einem frischen System verfügbar sind, müssen sie natürlich von irgendwoher kommen. Dazu gibt es das Paket snmp-mibs-downloader. Es lädt während der Installation die MIBs herunter.
Nagios Plugin: check_snmp_storage – kleines Hilfswerkzeug
19. Jul
In meinem Artikel “Nagios Plugin – check_snmp_storage” hatte ich einen von mir erweiterten Nagios Plugin vorgestellt der mit einem Aufruf mehrere Partitionen/Platten prüft, und dabei trotzdem für jede Prüfung verschiedene warn/crit Werte akzeptiert.
Wer damit arbeitet und zwischendurch einmal bei der ein oder anderen Partition die Grenzwerte angepasst hat wird wissen, dass es je nach Menge der Partitionen recht mühsam ist die richtigen Wertepaare zu finden. Bei mir gibt es beispielsweise öfter mal sowas:
check-snmp-storage-multi!nagios!80,80,80,80,80,80,80,80,80!90,90,90,90,90,90,90,90,90!/,/var,/custom,/opt,/opt/om,/svc,/sbase,/estore,/opt/trans
ITler sind faule Menschen. Also hab ich mir ein Script geschrieben. Dieses Script zeigt mir das alles in einer Tabelle und lässt mich ganz easy Änderungen durchführen. Bei der Erstellung des Scripts habe ich nicht wirklich darauf geachtet das ganze für viele nutzbar zu machen. Wer Interesse hat sollte sich das also vorher mal anschauen
Ein bisschen grün, ein bisschen gelb und möglichst wenig rot – Nagios per Jabber live und in Farbe [fixed]
16. Jul
Es gibt mittlerweile doch so einige Beiträge im Internet, in denen beschrieben ist wie man Nagios Notifications per Jabber (XMPP) versendet. Was mich dabei immer ein wenig gestört hat war die Unübersichtlichkeit der Meldungen. Prinzipiell wurde die Konfiguration nur auf Jabber umgebogen – auf die Möglichkeiten die sich dadurch vielleicht ergeben wurde nicht eingegangen. Die Variante von der ich hier spreche hätte auch schon bei eMails angewendet werden können – warum nicht? Ich weiß es nicht.
Wohin des Weges?
Was möchte ich überhaupt? Ich möchte die Nagios Notifications per Jabber senden. Aber nicht einfach nur Text und gut, sondern Meldungen in einer vernünftigen Optik und weiteren Funktionen.
Damit meine ich:
- farbige Meldungen -> man sieht sofort welchen Status die Meldung beinhaltet (rot, gelb, grün)
- Links zu weiteren Diensten, die direkt aus dem Jabber Fenster zu weiteren Informationen führen
Prerequisites
Das ganze benötigt quasi nur sendxmpp als Zusatz zu einem funktionsfähigen Nagios. Wie man sendxmpp installiert möchte ich an dieser Stelle nicht beschreiben. Unter Debian Lenny befindet es sich im Repository; für RHEL muss man sich das Paket besorgen.
Es sollte soweit getestet sein, dass der Nagios Account Nachrichten mit Hilfe von sendxmpp senden kann. Dazu wird bspw. eine Konfigurationsdatei sendxmpprc angelegt. Diese habe ich im Nagios Plugins Verzeichnis abgelegt.
Und dann?
Dann geht alles ganz einfach
Ich habe ein sendxmpp_wrapper Script geschrieben. Dieses Script wird von Nagios aufgerufen und verschickt am Ende die Nachricht. Die diversen Informationen werden dabei in ein HTML Gerüst verpackt, wodurch das ganze dann formatiert zum Empfänger geschickt wird. Das Script gibt es hier: sendxmpp_wrapper
# 'host-notify-by-jabber' command definition
define command{
command_name host-notify-by-jabber
command_line /usr/lib/nagios/plugins/sendxmpp_wrapper.sh HOST $CONTACTNAME$\@xmpp.... "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$HOSTOUTPUT$" "$HOSTSTATE$" "$HOSTOUTPUT$"
}
# 'notify-by-jabber' command definition
define command{
command_name notify-by-jabber
command_line /usr/lib/nagios/plugins/sendxmpp_wrapper.sh SERVICE $CONTACTNAME$\@xmpp.... "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$SERVICEDESC$" "$SERVICESTATE$" "$SERVICEOUTPUT$"
}
Fragen über Fragen
02. Mrz
Linux Problem und beim googlen noch keine Lösung gefunden ?
Also wenn es nicht gerade um Anfängerfragen – sorry – geht, könnt ihr uns ja mal fragen. Mit welchen Themen wir uns so beschäftigen könnt ihr auf unserer Seite sehen und vielleicht kann man aus einer Frage auch einen Artikel machen, der für andere ebenfalls interessant ist.
Also einfach hier als Kommentar die Frage einstellen und damit vielleicht auch anderen helfen. Mal gespannt was da kommt …
Nagios Plugin – check_snmp_storage (update)
20. Mai
Plugin Update
Der Plugin akzeptiert in der “ursprünglichen” Form für Fenster (im englischen Windows) Systeme nicht einfach die Angabe des Laufwerkbuchstabens. Das ganze habe ich nun ebenfalls angepasst. Man kann also nun mit dem gleichen Aufruf Linux und Fester Systeme abfragen.
ex. --> check_snmp_storage_dld.pl -H pw300eg -m C,D -C public -w 80,80 -c 90,90 -r
Download: check_snmp_storage
Nagios Plugin – check_snmp_storage
18. Mai
Schon lange benutze ich den Nagios Plugin check_snmp_storage von dieser Seite um per SNMP und Nagios den Plattenplatz auf Systemen zu prüfen. Dabei hat man leider nur zwei Wahlmöglichkeiten um Partitionen zu checken (im groben). Entweder man nimmt alle – oder man nimmt nur eine. Dadurch hat man im einen Fall entweder zu viel drin, oder auf der anderen Seite muss man mehrere Dienste in Nagios anlegen um alle Informationen zu bekommen die man haben möchte. Was mehr Dienste bedeutet und auch mehr Traffic.
Den Plugin habe ich ein wenig angepasst, so dass der Plugin mehrere Partitionen mit einem Aufruf prüfen kann und man auch – und das war eben wichtig – für jede Partition eigene Schwellenwerte angeben kann.
Vorher: ... -m / -w 80 -c 90 -r (-> prüfe / mit einem Warning Schwellwert von 80% und einem Critical Schwellwert von 90%)
Nachher: ... -m /,/var,/tmp -w 80,70,90 -c 90,85,95 -r (-> prüfe / (W80%, C90%),/var (W70%, C85%) und /tmp (W90%,C95%) )
Hier gibt es das von mir abgewandelte check_snmp_storage zum Download.









