- Datenstrukturen
- Methoden und
- Verfahren
Überwachung der Dienste und Rechnersysteme mit "XYMON"
System- und Netzwerkmonitoring ist eine wichtige Voraussetzung für die Realisierung zuverlässiger serverbasierter Dienste, die frühzeitige Erkennung von (zukünftigen) HW- und SW-Problemen sowie die Verfügbarkeit der eingesetzten Ressourcen.- Überwachung der Dienste und Rechnersysteme mit "XYMON"
- BigBrother im URZ
- Probleme
- Einführung in XYMON
- XYMON-Demo
- Konfiguration der Status-Anzeigen
- Integration eigener Service Tests (externe XYMON-Scripte)
- Automatische Benachrichtigung der Funktionsadmins
- Überlegungen zu Zugangsbeschränkungen zu den XYMON-Infos
- Projekt BigBrother New Generation (BBNG)
- Literatur
BigBrother im URZ
- Grundlage des Managements von Computersystemen im URZ: ToSCA
ToSCA (Toolbox for System Configuration and Administration) ist ein System von
- Überwachung der Systeme: BigBrother (BB)
- seit 1997 im Einsatz
- Prüfung von Dienst- und Komponenten-Ausfällen
- Prüfung der Einhaltung vorgegebener Kapazitätsgrenzen
- Benachrichtigung der Dienste-Verantwortlichen (Funktionsadmins)
- Integration in ToSCA, z.B.
- komplette SW-Bereitstellung
- generische Konfiguration
- mittels BB werden z.Z. fast 2000 Systeme überwacht
- In-House Erweiterungen und Anpassungen
- 3 BB-Server im Einsatz
| Name | Einsatz | URL des Monitoring-Servers |
|---|---|---|
| bb | alle Produktionsserver | http://bb.hrz.tu-chemnitz.de/bb.html |
| bb1 | Arbeitsplatz- und Entwicklungsrechner alle Einrichtungen (außer URZ,UB) | http://bb1.hrz.tu-chemnitz.de/bb.html |
| bb2 | Arbeitsplatz-, Pool-, Entwicklungsrechner UB und URZ | http://bb2.hrz.tu-chemnitz.de/bb.html |
Probleme
- BB ursprünglich freie SW, ab ca. 2005 keine Weiterentwicklung
- Skalierbarkeit
- Bugs (64-Bit)
- Security?
- keine neuen Features
- BigBrother Professional Edition (Quest Software) praktisch nicht bezahlbar
- Anforderungen, Randbedingungen an BB-Nachfolger
- produktiver Einsatz im ersten Halbjahr 2012
- ToSCA-Integration
- nahtloser Wechsel vom "alten" auf "neues" Monitoring-System
- vollständiger Übergang innerhalb weniger Minuten
- transparent aus Sicht der "Nutzer"
Unter den gegebenen Randbedingungen sind o.g. Anforderungen nur durch den Einsatz von XYMON
realisierbar.
Einführung in XYMON
- Henrik Størner (Jg. 1964, Kopenhagen)
- Phase 1: bbgen-Toolkit (2002-2004)
- ersetzt verschiedene BigBrother-Komponenten (Performance)
- Phase 2: Hobbit (2005) ersetzt BB komplett
- Hobbit: High-performance Open-source BB ImplemenTation
- Hobbit ist kompatibel zu BigBrother
- Phase 3: Umbenennung in XYMON (Nov 2008, Trademark-Probleme)
- XYMON 4.3.5: September 2011 (Basis für URZ-Experimente)
- XYMON 4.3.6: 4. Dezember 2011 (einige Features und Bugfixes)
- XYMON 4.3.7: 14. Dezember (Bug-Fixes)
- gegenwärtig läuft Entwicklung von XYMON 5
Architektur
XYMON-Server- speichert alle aktuellen (von Klienten) gelieferten Daten im RAM
- XYMON-Kerndämon "füttert" Server-Tasks über einen IPC-Kanal (shared memory)
- speichert und aktualisiert History- und Trend-Daten auf Platte
- führt Netzwerk-Tests durch
- Benachrichtigung bei kritischen Zuständen/Ereignissen
- stellt Web-Interface bereit
- Übersichten als statische HTML-Seiten (aller 60 Sekunden aktualisiert)
- Deatilierte Status-Seiten werden dynamisch generiert
- auf jedem überwachten System läuft XYMON-Klient
- führt Kommandos (Scripte) aus, z.B. uptime, free, df, ps, netstat, mount, who ...
- durchsucht Log-Files nach kritischen Einträgen, sammelt Statistische Werte usw.
- liefert die Daten an den XYMON-Server, der diese auswertet (entsprechend Konfigurationsregeln)
Status-Anzeigen und Farb-Codes
| Color | kürzlich geändert | Letzte Änderung > 24 Stunden |
|---|---|---|
| Green: Alles OK | ![]() | ![]() |
| Yellow: Achtung, Grenzwert überschritten, evtl. Gefahr im Verzug | ![]() | ![]() |
| Red: echtes Problem, Aktion notwendig | ![]() | ![]() |
| Clear: keine Daten verfügbar, Test abgeschaltet | ![]() | ![]() |
| Purple: keine Statusmeldungen (seit mind. 30 Minuten) report | ![]() | ![]() |
| Blue: Anzeige abgeschaltet (disabled) z.B: wegen Wartungsmaßnahmen | ![]() | ![]() |
| Red ACK bzw. Purple ACK: Problem bestätigt und in Bearbeitung | bzw. | - |
Status-Anzeigen
- Netzkonnektivität: conn
- CPU-Last: cpu
- Füllstand der lokalen Filesysteme: disk
- Infos über Konfiguration: info (Neu)
- RAM-Nutzung: memory
- kritische Systemnachrichten: msgs
- definierte Systemprozesse: procs
- Verfügbarkeitstests von Netzdiensten, falls vom Funktionsadmin angefordert, z.B.
- http[s]
- imap
- pop3
- smtp
- Funktionstest (falls vom Funktionsadmin realisiert): func
- graphische Trend-Anzeigen: trends (Neu)
XYMON-Demo
Views
Reports (Auswahl)
- Eventlog-Report
- Most changing hosts and services
- Availability-Report
- Config Report
- Metrics Report
- Notification Report
Administration (Auswahl)
Info-Anzeige
Trends-Anzeige
Host-Informationen- und Aktionen (Hostname-URL)
Konfiguration der Status-Anzeigen
- Konfigurationsregeln für Auswertung werden auf den XYMON-Servern zentral gehalten
- generische Erzeugung der Konfiguration (aus "Real World Host"-Daten)
- über ToSCA-Repos an die XYMON-Server verteilt
- Konfigurations-Anforderung durch Funktionsadmin: per OTRS-Ticket: mailto:support@hrz.tu-chemnitz.de?subject=XYMON: ...
| Konfigurations-Prinzip | Bedeutung |
|---|---|
| ZE | Monitoring-Direktive wird zentral für alle Hosts mit dem betreffenden BS einheitlich konfiguriert |
| ZI | Monitoring-Direktive wird zentral für jeden einzelnen Host individuell konfiguriert |
| GI | Monitoring-Direktive wird generisch für jeden Host individuell erzeugt |
| DI | Monitoring-Direktive wird dezentral , d.h. durch den Funktionsadmin für jeden einzelnen Host individuell konfiguriert |
conn
- Konfigurations-Prinzip Windows: ZI
- Konfigurations-Prinzip Linux: ZI
Für Produktionsserver ist der Konnektivitätstest zwingend und nicht abschaltbar.
Für Entwicklungs- bzw. Testsysteme kann der Funktionsadmin anfordern,
dass kein Test erfolgt (
)
)
cpu
- Konfigurations-Prinzip Windows: ZE
<cpu>
<setting name="alwaysgreen" value="false" />
<setting name="default" warnlevel="80%" paniclevel="95%" />
<setting name="uptime" value="1h" />
</cpu>
- Konfigurations-Prinzip Linux: ZI
analysis.cfg nach
folgendem Muster
HOST=<hostname>.<domaene>.tu-chemnitz.de LOAD <warnlevel> <paniclevel> z.B. HOST=aelius.hrz.tu-chemnitz.de LOAD 3.5 7.0
disk
- Konfigurations-Prinzip Windows: ZE
<disk>
<setting name="alwaysgreen" value="false" />
<setting name="default" warnlevel="90%" paniclevel="95%" />
<setting name="remote" value="false" />
<setting name="cdrom" value="false" />
</disk>
- Konfigurations-Prinzip Linux: GI (abhängig von der tatsächlichen FS-Kapazität)
DISK <filesystem> <warnlevel> <paniclevel> DISK <filesystem> IGNORE z.B.: HOST=beo.hrz.tu-chemnitz.de DISK / 85 88 DISK /www 92 93 DISK /var 84 87 DISK /.afscache 100 101 DISK /tmp 83 86 DISK %^/mnt IGNORE DISK %^/media IGNORE
procs
- Konfigurations-Prinzip Windows: ZE
- z.Z. leer
- Konfigurations-Prinzip Linux: ZI
PROC <processname> <minimumcount> <maximumcount color> ... z.B. HOST=* PROC crond yellow PROC ntpd 1 1 yellow PROC "%xinetd -stayalive -pidfile /var/run/xinetd.pid" 1 1 PROC "%/bin/xymonlaunch --config=./etc/clientlaunch.cfg" 1 1 ... HOST=xyz.hrz.tu-chemnitz.de PROC vmtoolsd yellow PROC %ora_...._vcdb 19 PROC bbd 1 2
svcs
- Konfigurations-Prinzip Windows: ZE
<svcs>
<setting name="alwaysgreen" value="false" />
<setting name="alarmcolor" value="yellow" />
<setting name="autoreset" value="false" />
<setting name="OpenAFS Client" value="started" autoreset="false" alarmcolor="red" />
<setting name="cfengine" value="started" autoreset="false" alarmcolor="red" />
<setting name="Big Brother Hobbit Client" value="started" autoreset="false" alarmcolor="red" />
</svcs>
- Linux: nicht verfügbar
msgs
- Konfigurations-Prinzip Windows: ZE
- Konfigurations-Prinzip Linux: ZE
HOST=* LOG /var/log/messages %(I/O|read).error COLOR=yellow LOG /var/log/messages %kernel:.Call.Trace: COLOR=yellow LOG /var/log/messages %Offline.uncorrectable.sectors COLOR=yellow LOG /var/log/messages %Currently.unreadable COLOR=yellow LOG /var/log/messages %:.segfault.at.COLOR=yellow LOG /var/log/messages %invoked.oom-killer: COLOR=red LOG /usr/local/xymon/client/logs/xymonclient.log %Whoops.!.Failed.to.send.message COLOR=yellow LOG /usr/local/xymon/client/logs/xymonclient.log %Could.not.connect.to.Xymon.daemon COLOR=yellow
used
Die used -Anzeige wird nur für die zentralen Pool-Rechner angezeigt. Sie zeigt an, ob ein Nutzer an der Konsole angemeldet ist sowie dessen Nutzerkennzeichen.Integration eigener Service Tests (externe XYMON-Scripte)
Die Bereitstellung eigener Service- oder Funktionstests und die Integration in das Monitoring-Konzept ist relativ einfach möglich und wird allen Funktionsadmins von Hosts, die kritische Dienste erbringen, dringend empfohlen.- allgemeingültiger Mechanismus für func -Anzeige
- Basis: Wrapper-Scripts
Definition der externen Variablen $GREEN, $YELLOW, $RED in /afs/tu-chemnitz.de/ToSCA/ROOTS/LINUX/ROOT4ANY/usr/local/xymon/client/ext/xymon-func.sh /afs/tu-chemnitz.de/ToSCA/ROOTS/LINUX/ROOT4ANY/usr/local/xymon/client/ext/xymon-sudo.sh
Bereitstellung des Scripts durch Funktionsverantwortliche
DasShell -Script muss in einem festgelegten Verzeichnis stehen: - Linux:
/usr/local/xymon//ext/func.d/
- Scriptname muss auf
.shenden
Im Linux wird der
sudo -Mechanismus benutzt, um gezielt root -Rechte zu ermöglichen.
Deshalb muss der Scriptname mit su - beginnen, falls die Ausführung root -Rechte erfordert.
Zusätzlich muss durch den Auftraggeber (Funktionsadmin) der entsprechende sudo -Eintrag angefordert werden.
exit -Status)
- Test OK:
exit $GREEN - Test ergibt unkritische Fehler:
exit $YELLOW - Test ergibt kritische Fehler:
exit $RED
stdout bzw. stderr
bereitgestellt und im Monitoring angezeigt werden.
- Beispiel für Script:
#!/bin/sh
# nkz, 11.06.2008: Funktionstest Mount
STATUS=$GREEN
SOLLMOUNT=$(awk ' /^[^#].*\/vicep/ { print $2 }' /etc/fstab| sort)
ISTMOUNT=$( mount| awk ' $3 ~ /\/vicep/ {print $3}'| sort)
echo "Sind alle Vice-Partitions montiert?"
echo
echo -n "SOLL: "; echo $SOLLMOUNT
echo -n "IST : "; echo $ISTMOUNT
if [ "$ISTMOUNT" != "$SOLLMOUNT" ]; then
STATUS=$RED
fi
exit $STATUS
Hinweise
Status-Anzeige $RED sollte nur dann passieren, wenn ein Dienstausfall festgestellt wurde,
der sofortige Problembehebung erforderlich macht.
Andernfalls ist z.B. eine Mail an die Funktionsadmins ausreichend.
Für BigBrother bereitgestellte func -Scripte funktionieren auch in der XYMON-Umgebung
Es wird empfohlen, die Funktionstest atomar zu gestalten,
d.h. pro Funktionstest ein separates Script bereitstellen.
Im Fehlerfall ist es sinnvoll, wenn ein Link auf die Dokumentation zur
Analyse und Behebung des Fehlers angezeigt wird.
Das Script sollte
in einem geeigneten ToSCA-Root-Repository
bereitgestellt werden.
z.B. in /afs/tu-chemnitz.de/ToSCA/ROOTS/LINUX/FU_xxx_SERVER/usr/local/xymon/client/ext/func.d/
Automatische Benachrichtigung der Funktionsadmins
- nur bei Systemen, die kritische Dienste erbringen (sog. Produktionsserver - FU_..._SERVER)
- keine Benachrichtigung:
- sog. Entwicklungs- oder Testsystemen (FU_..._DEVEL_MISC)
- Arbeitsplatzsystemen (FU_..._WS)
- Poolrechnern (FU_..._POOL_...)
- SH Level 1
- Benachrichtigungsregeln (z.Z.)
- kritische Anzeigen:
- Benachrichtigung erfolgt mit 5 Minuten Verzögerung an ALLE Funktionsadmins des betreffenden Servers
- Wiederholung nach jeweils 4 Stunden (sofern Anzeige nicht OK)
- Benachrichtigung erfolgt auch dann, wenn wieder OK
- kritische Anzeigen:
- Benachrichtigung: Mail mit Subject
Xymon [520115] xyz.hrz.tu-chemnitz.de:memory CRITICAL (RED)
--> 520115: Acknowledgment Code
Reaktionsmöglichkeiten der Funktionsadmins
Bestätigung (Acknowledge)
Funktionsadmin sollte bestätigen, dass er sich um die Lösung des Problems
kümmert. Damit zeigt er die Problembearbeitung an und es wird vermieden,
dass sich weitere Personen parallel mit dem Problem auseinandersetzen.
- über Administration --> Acknowledge Alert
- Zeitbedarf, bis Problem (vermutlich) gelöst ist
- Erklärung, Ursache für Problem
- Acknowledgement Code
Bitte beachten: Ursprungsbenachrichtigung muss innerhalb 24 Stunden bestätigt werden
- kurze Zeit später: "Häkchen"-Anzeige
bzw.
Zeitweises Abschalten kritischer Anzeigen (Disable)
- V1: Linux-Kommando bb_disable
$ /usr/local/bin/bb_disable
usage: /usr/local/bin/bb_disable
[-h] --> this help message
[-n] --> no mail to function admins
[-x] --> only disable for xymon
"<hostname>.<event>"|"<hostname>.*" --> disable <event> for <hostname> OR all events for <hostname>
<duration> --> how long should be disabled, e.g. 300s or 2h or 1d (Standard: m)
[reason] --> short text string
- nur Nutzern erlaubt, die Mitglieder der AFS-Gruppe to:user sind, aber nicht root
- Beispiel: für einen Tag keine Monitoring-Anzeigen für Host "hermes" wegen Mainboard Reparatur:
- Anzeigen werden
bb_disable "hermes*" 1d Reparatur Mainboard
- V2: über Info-Anzeige
- V3: über Administration --> Enable/Disable
Wieder-Einschalten (Enable)
- V1: festgelegte Zeitspanne ist abgelaufen
- V2: Linux-Kommando bb_enable
$ /usr/local/bin/bb_enable
usage: /usr/local/bin/bb_enable
[-h] --> this help message
"<hostname>.<event>"|"<hostname>.*" --> enable <event> for <hostname> OR all events for <hostname>
- Anzeigen bleiben so lange
bis zum nächste Zyklus des XYMON-Klient
bb_enable "hermes*"
- V3: über Info-Anzeige
- V4: über Administration --> Enable/Disable
Überlegungen zu Zugangsbeschränkungen zu den XYMON-Infos
- generell Zugang nur per Shibboleth (auch auf die Hauptseite)
das hat zur Folge, dass der Zugang zum Monitoring-Server voraussetzt, dass der Dienst Shibboleth funktioniert, deshalb ist das noch nicht entgültig entschieden.
- die (statischen) Übersichts-Views sind für all jene möglich, die in diesem Bereich administrative Verantwortung besitzen:
- alle Funktionsadmins und die benannten Ansprechpartner (Kontaktpersonen) der dort gelisteten Server
- URZ-Admins
- URZ-Dispatcher
- UB-Service-Mitarbeiter
| wer | welche Hosts |
|---|---|
| Funktionsadmins | betreffender Host |
| Selfadmins | betreffender Host |
| Kontaktpersonen | betreffender Host |
| Admins des URZ | alle Hosts |
| Dispatcher des URZ | URZ-Hosts |
| UB-Service-Mitarbeiter | UB-Hosts |
- die entscheidenden cgi-Scripts (z.B.
svcstatus.cgi) sollen ebenfalls nur diese Personengruppe ausführen können, wobei das abhängig vom betreffenden Host ist
Projekt BigBrother New Generation (BBNG)
- Phase 1 [10/2011 - 12/2011]: Experimente, Einsatzkonzept
- Phase 2 [11/2011 - 02/2012]: Erschließung, Parallel-Betrieb
- Phase 3 [03/2012 - voraussichtlich 08/2012]: produktiver Einsatz (Betriebsweise analog BB)
- Phase 4 [ab 06/2012] : Redesign, Effektivierung, flexiblere Konfiguration
Literatur
- http://www.tu-chemnitz.de/urz/admin/tosca/monitoring.html
- http://www.tu-chemnitz.de/urz/vpsh/vpslinux.html#Service_Level_Monitoring
- https://bb.hrz.tu-chemnitz.de/xymon.html
- https://bb1.hrz.tu-chemnitz.de/xymon.html
- https://bb2.hrz.tu-chemnitz.de/xymon.html
- SourceForge - http://sourceforge.net/projects/xymon/
- XYMON-Demo - http://www.xymon.com/
- BBWin-Klient - http://bbwin.sourceforge.net/









