BigBrother im D-PHYS

Axel Beckert

beckert@phys.ethz.ch

Übersicht

  • Das Konzept hinter BigBrother
  • Wie funktioniert BigBrother?
  • Welche Schnittstellen bietet BigBrother?
  • Wie konfiguriert man BigBrother?
  • Welche Erweiterungen gibt's am D-PHYS?
  • Vergleich mit Nagios
  • Vor- und Nachteile allgemein
  • Zusammenfassung / Ressourcen

Das Konzept hinter BigBrother

  • Vier Ebenen: Pages, Gruppen, Hosts, Dienste
  • Sechs Farben — sechs Zustände:
    rot Trouble Bad things are happening.
    violett No report No report from this client in the last 30 minutes. The client may have died.
    gelb Attention The reporting system has crossed a threshold you should know about
    grün OK Everything is fine. Have a nice day.
    klar Unavailable The associated test has been turned off, or does not apply. A common example is connectivity on disconnected dialup lines.
    blau Disabled Notification for this test has been disabled. Used when performing maintenance.

Wie funktioniert BigBrother?

  • Remote-Netzwerk-Tests vom BigBrother-Server aus: Ping, SSH, HTTP, HTTPS, etc.
  • Lokale Tests melden Zustände dem Server: Prozessüberwachung, Plattenplatz, RAM, Load, etc.
  • Externe Tests: Setzen Statusnachrichten auf Port 1984 des Servers ab.
    Syntax: status[+$minvalid] $host.$service $farbe `date` - $status $data

Welche Schnittstellen bietet BigBrother?

  • Webseite mit automatischen Refresh alle 5 Minuten: http://bb.phys.ethz.ch/.
  • E-Mail- und damit via Gateway auch SMS-Benachrichtung
  • IRC (Eigenbau, schaut auf die Status-Dateien im Filesystem)

Wie funktioniert BigBrother?

  • Tests überwachen Zustände und melden diese alle 5 Minuten dem Server.
  • Der Server generiert alle 5 Minuten für jeden Service und jede Gruppe eine Webseite.
  • Weiter werden eine Startseite mit allen Rechnern ohne Gruppe (bei uns: Server) sowie eine Zusammenfassungsseite mit allen roten, gelben oder violetten Zuständen generiert.
  • Ist eine der angezeigten Komponenten rot, gelb oder violett, so wird dies auch der Hintergrund der Seite — die aktuelle Lage ist sofort erkennbar.

Wie konfiguriert man BigBrother? (1)

Lokale Clients und der Server können der Einfachkeit halber die gleiche Basis-Konfiguration haben. Jeder Rechner wertet das aus, was ihn betrifft.

Vereinfachter Auszug aus $BBHOME/etc/bb-hosts:

group-compress <h3>Servers</h3>
129.132.86.197  wiggis # ntp ssh smtp pop3 imap2 http://webmail.phys.ethz.ch/ https://webmail.phys.ethz.ch/
192.168.127.2   wiggis1 # noconn
page physsem Workstations
group-compress <h3>Windows XP</h3>
195.176.49.212  PIGWIDGEON # dialup
195.176.49.213  PETRIFICUS # dialup
group-compress <h3>Workstations Linux</h3>
195.176.48.34   accra # ntp ssh
195.176.48.35   makat # ntp ssh

Wie konfiguriert man BigBrother? (2)

Vereinfachter Auszug aus $BBHOME/etc/bb-bbexttab:

# FreeBSD Servers
sardona : : raid
schabell : : raid

Vereinfachter Auszug aus $BBHOME/etc/bb-cputab:

# localhost defines the global default values
localhost : : 400 : 1000
# chensit has a lot of work with bb
chensit : : 800 : 1500
# wiggis has fast disks and is able to process 8 simultanous disk access
wiggis : : 800 : 1200
# foostock
foostock : : 250 : 400

Wie konfiguriert man BigBrother? (3)

Vereinfachter Auszug aus $BBHOME/etc/bb-dftab:

# localhost defines the global default values (default in bbdefs.sh is 90:95)
# No warnings for zip, floppy or cdrom at all
localhost:/zip:101:101
localhost:/cdrom:101:101
localhost:/floppy:101:101
# backup servers may be filled quite close to maximum
glaernisch:/backup/hosts1:98:99
baechistock:/backup/hosts2:98:99

Vereinfachter Auszug aus $BBHOME/etc/bb-proctab:

# servers
wiggis: :syslogd klogd cron portmap inetd rpc.mountd lockd rpc.statd nfsd master mailmanctl mysqld saslauthd ypbind
wiggis1:freshclam clamd sendmail:syslogd klogd amd ypbind amavisd spamd
schabell:!quotacheck !fsck_ufs:syslogd inetd cron
# Student workstations
berlin:dhclient;1 afsd condor_master:X11/X !httpd !delegate !Xvnc automount amd atd cron inetd sshd syslogd master qmgr wdm
paris:dhclient;1 afsd condor_master:X11/X !httpd !delegate !Xvnc automount amd atd cron inetd sshd syslogd master qmgr wdm

Welche Erweiterungen gibt's am D-PHYS?

  • Status-Meldungen per IRC-Bot
  • Status-Meldungen vom Sniffer (Take-Overs, Unregistrierte Rechner)
  • Status-Meldungen vom aktiven Scanner (Sicherheitslücken / ungepatchte Systeme)
  • Warnung, dass Rechner rebootet haben
  • Abfragen von Druckern, Drucker-Queues und Print-Server

Vergleich mit Nagios

  • Dialup- und No-Connection-Logik hilfreich
  • Dafür fehlende Abhängigkeiten zwischen Hosts und Services
  • Keine Karte — an der ETH dank sehr flacher Netzwerkstruktur nicht ganz so kritisch.
  • Clients melden Status dem Server.
  • Kann mehr als eine Zeile Statusinformation speichern: http://bb.phys.ethz.ch/bb/html/rauti.http.html
  • Einfacher skriptbar als Nagios (IMHO)

Vorteile allgemein

  • Flexibel erweiterbar (viele Shell-Skripte)
  • Basics sehr leicht und schnell erlernbar.
  • Optisch schnell erfassbare Statusmeldungen

Nachteile allgemein

  • Keine freie Software, nur nicht-kommerzielle Nutzung ohne Kauf einer Lizenz erlaubt.
  • Performance: Engpass ist der Server (viele Shell-Skripte)
  • Kann auf verschiedene Server aufgeteilt werden, wird dann aber unübersichtlicher.
  • 5-Minuten-Intervall ist relativ hart verdrahtet.

Zusammenfassung / Ressourcen

Zusammenfassung

  • Hilfreich, Basics leicht verständlich
  • Performance bei uns ein Problem, wollen keine neuen Tests in Mengen (z.B. CPU- und HD-Temperaturen überwachen) hinzufügen.
  • Sind am Überlegen, ob uns ein Umstieg auf Nagios helfen würde.

Ressourcen