Barth Schneemann Oestreicher:...

30

Transcript of Barth Schneemann Oestreicher:...

❙�✁t✂✄✲ ☎✆✝ ✞✂t③✟✂✠✡✲▼☛✆☞t☛✠☞✆✌

✸✍ ✎✏✑❛✒✓

❇❛✔✕✖ ✥✗✖✘✓✓✙❛✘✘ ✚✓s✕✔✓✛✗✖✓✔

r♦♦✜❶✢r❡✣✤✦✧★

Barth Schneemann Oestreicher: Nagios

Wolfgang Barth Christian Schneemann Tobias D. Oestreicher

NagiosSystem- und Netzwerk-Monitoring

3. Auflage

Alle in diesem Buch enthaltenen Programme, Darstellungen und Informationen wurden nach bestemWissen erstellt. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grunde sind die in demvorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Artverbunden. Autor(en), Herausgeber, Übersetzer und Verlag übernehmen infolgedessen keine Verantwor-tung und werden keine daraus folgende Haftung übernehmen, die auf irgendeine Art aus der Benutzungdieser Informationen – oder Teilen davon – entsteht, auch nicht für die Verletzung von Patentrechten,die daraus resultieren können. Ebenso wenig übernehmen Autor(en) und Verlag die Gewähr dafür, dassdie beschriebenen Verfahren usw. frei von Schutzrechten Dritter sind.Die in diesem Werk wiedergegebenen Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw.werden ohne Gewährleistung der freien Verwendbarkeit benutzt und können auch ohne besondereKennzeichnung eingetragene Marken oder Warenzeichen sein und als solche den gesetzlichen Bestim-mungen unterliegen.

Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdrucks und

der Vervielfältigung des Buches – oder Teilen daraus – vorbehalten. Kein Teil des Werkes darf ohne

schriftliche Genehmigung des Verlags in irgendeiner Form (Druck, Fotokopie, Mikrofilm oder einem an-

deren Verfahren), auch nicht für Zwecke der Unterrichtsgestaltung, reproduziert oder unter Verwendung

elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.

Bibliografische Information Der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

Copyright © 2012 Open Source Press GmbH, MünchenGesamtlektorat: Dr. Markus WirtzLektorat: Franz MayerSatz: Open Source Press (LATEX)Umschlaggestaltung: Olga Saborov, Open Source PressGesamtherstellung: Kösel, KrugzellISBN der gedruckten Ausgabe: 978-3-941841-25-3

ISBN (E-Book, PDF) 978-3-941841-77-2 http://www.opensourcepress.de

Inhaltsverzeichnis

Vorwort zur dritten Auflage 21

Einleitung 23

I Vom Quellcode zum lauffähigen System 31

1 Installation 33

1.1 Vorbereitende Schritte . . . . . . . . . . . . . . . . . . . . . . . . . 34

1.1.1 Benötigte User ermitteln und anlegen . . . . . . . . . . . 34

1.2 Source-Code übersetzen . . . . . . . . . . . . . . . . . . . . . . . 35

1.3 Nagios automatisch starten . . . . . . . . . . . . . . . . . . . . . . 39

1.4 Plugins installieren und testen . . . . . . . . . . . . . . . . . . . . 40

1.4.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

1.4.2 Plugin-Test . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

1.5 Konfiguration des Webinterfaces . . . . . . . . . . . . . . . . . . 43

1.5.1 Apache einrichten . . . . . . . . . . . . . . . . . . . . . . . 43

1.5.2 SELinux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

1.5.3 User-Authentifizierung . . . . . . . . . . . . . . . . . . . . 45

2 Konfiguration 49

2.1 Die Hauptkonfigurationsdatei nagios.cfg . . . . . . . . . . . . . . 50

2.2 Objekte – eine Übersicht . . . . . . . . . . . . . . . . . . . . . . . 54

2.3 Zu überwachende Rechner mit host festlegen . . . . . . . . . . 57

2.4 Rechner gruppieren mit hostgroup . . . . . . . . . . . . . . . . . 62

2.5 Zu überwachende Dienste festlegen mit service . . . . . . . . . 62

2.6 Dienste mit servicegroup zusammenfassen . . . . . . . . . . . . 66

5

Inhaltsverzeichnis

2.7 Adressaten für Fehlermeldungen festlegen: contact . . . . . . . 67

2.8 Die Nachrichtenempfänger: contactgroup . . . . . . . . . . . . . 69

2.9 Wenn Nagios etwas tun soll: Das command-Objekt . . . . . . . 69

2.10 Zeitfenster definieren mit timeperiod . . . . . . . . . . . . . . . 70

2.11 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

2.12 Konfigurationshilfen für Tippfaule . . . . . . . . . . . . . . . . . 73

2.12.1 Services für mehrere Rechner definieren . . . . . . . . . 73

2.12.2 Eine Hostgruppe für alle Rechner . . . . . . . . . . . . . . 73

2.12.3 Weitere Konfigurationshilfen . . . . . . . . . . . . . . . . . 74

2.12.4 Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

2.13 CGI-Konfiguration in cgi.cfg . . . . . . . . . . . . . . . . . . . . . 75

2.14 Die Ressourcen-Datei resource.cfg . . . . . . . . . . . . . . . . . 77

3 Inbetriebnahme 79

3.1 Überprüfen der Konfiguration . . . . . . . . . . . . . . . . . . . . 79

3.2 Startschuss für die Überwachung . . . . . . . . . . . . . . . . . . 82

3.2.1 Manueller Start . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.2.2 Konfigurationsänderungen wirksam werden lassen . . . 82

3.3 Übersicht über das Webinterface . . . . . . . . . . . . . . . . . . 83

II Im Detail 87

4 Grundlagen 89

4.1 Die Netzwerktopologie berücksichtigen . . . . . . . . . . . . . . 90

4.2 On-Demand-Host-Checks vs. regelmäßige Prüfung . . . . . . . 93

4.3 Zustände von Hosts und Services . . . . . . . . . . . . . . . . . . 94

5 Service-Checks und ihre Ausführung 97

5.1 Netzwerkdienste direkt prüfen . . . . . . . . . . . . . . . . . . . . 99

5.2 Plugins via SSH auf dem entfernten Rechner ausführen . . . . 100

5.3 Der Nagios Remote Plugin Executor . . . . . . . . . . . . . . . . 101

5.4 Überwachung via SNMP . . . . . . . . . . . . . . . . . . . . . . . 101

5.5 Der Nagios Service Check Acceptor . . . . . . . . . . . . . . . . . 102

6

Inhaltsverzeichnis

6 Plugins für Netzwerkdienste 105

6.1 Standardoptionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

6.2 Erreichbarkeitstest mit Ping . . . . . . . . . . . . . . . . . . . . . 108

6.2.1 check_icmp als Service-Check . . . . . . . . . . . . . . . . 111

6.2.2 check_icmp als Host-Check . . . . . . . . . . . . . . . . . 112

6.3 Mailserver überwachen . . . . . . . . . . . . . . . . . . . . . . . . 113

6.3.1 SMTP überwachen mit check_smtp . . . . . . . . . . . . 113

6.3.2 POP und IMAP . . . . . . . . . . . . . . . . . . . . . . . . . 116

6.4 Überwachung von FTP- und Webservern . . . . . . . . . . . . . 119

6.4.1 FTP-Services . . . . . . . . . . . . . . . . . . . . . . . . . . 119

6.4.2 Webserverkontrolle via HTTP . . . . . . . . . . . . . . . . 120

6.4.3 Webproxies überwachen . . . . . . . . . . . . . . . . . . . 124

6.5 Domain Name Server unter Kontrolle . . . . . . . . . . . . . . . 127

6.5.1 DNS-Check mit nslookup . . . . . . . . . . . . . . . . . . 128

6.5.2 Nameserver-Überwachung mit dig . . . . . . . . . . . . . 129

6.6 Secure Shell Server abfragen . . . . . . . . . . . . . . . . . . . . . 131

6.7 Generische Netzwerkplugins . . . . . . . . . . . . . . . . . . . . . 132

6.7.1 TCP-Ports überprüfen . . . . . . . . . . . . . . . . . . . . . 133

6.7.2 UDP-Ports überwachen . . . . . . . . . . . . . . . . . . . . 135

6.8 Datenbanken überwachen . . . . . . . . . . . . . . . . . . . . . . 136

6.8.1 PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

6.8.2 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

6.9 LDAP-Verzeichnisdienste überwachen . . . . . . . . . . . . . . . 144

6.10 Kontrolle eines DHCP-Servers . . . . . . . . . . . . . . . . . . . . 146

6.11 USV-Überwachung mit den Network UPS Tools . . . . . . . . . 149

6.12 Gesundheitscheck eines NTP-Servers mit check_ntp_peer . . . 155

7 Lokale Ressourcen überprüfen 157

7.1 Freie Festplattenkapazität . . . . . . . . . . . . . . . . . . . . . . . 158

7.2 Auslastung des Swap-Bereichs . . . . . . . . . . . . . . . . . . . . 162

7.3 Systemlast prüfen . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

7.4 Prozesse überwachen . . . . . . . . . . . . . . . . . . . . . . . . . 164

7.5 Logfiles unter Kontrolle . . . . . . . . . . . . . . . . . . . . . . . . 167

7.5.1 Das Standard-Plugin check_log . . . . . . . . . . . . . . . 168

7

Inhaltsverzeichnis

7.5.2 Die moderne Variante: check_logs.pl . . . . . . . . . . . . 169

7.5.3 Das Schweizer Taschenmesser: check_logfiles . . . . . . 171

7.6 Anzahl der eingeloggten User im Blick behalten . . . . . . . . . 178

7.7 Systemzeit unter Kontrolle . . . . . . . . . . . . . . . . . . . . . . 178

7.7.1 Systemzeit via NTP überprüfen . . . . . . . . . . . . . . . 178

7.7.2 Systemzeit mit dem Time-Protokoll kontrollieren . . . . 179

7.8 Regelmäßiger Einblick in den Zustand der Mail-Queue . . . . . 181

7.9 Das Änderungsdatum einer Datei im Auge behalten . . . . . . . 182

7.10 USVs mit apcupsd überwachen . . . . . . . . . . . . . . . . . . . 183

7.11 Nagios kontrolliert sich selbst . . . . . . . . . . . . . . . . . . . . 184

7.11.1 Manueller Aufruf des Plugins per Skript . . . . . . . . . . 185

7.12 Hardware-Checks mit LM-Sensoren . . . . . . . . . . . . . . . . 185

8 Plugins für Sonderaufgaben 189

8.1 Das Dummy-Plugin für Tests . . . . . . . . . . . . . . . . . . . . . 190

8.2 Plugin-Ergebnisse negieren . . . . . . . . . . . . . . . . . . . . . . 190

8.3 Hyperlinks einfügen mit urlize . . . . . . . . . . . . . . . . . . . . 191

8.4 Host- oder Service-Cluster als Gesamtheit prüfen . . . . . . . . 191

8.5 Checks mit check_multi zusammenfassen . . . . . . . . . . . . . 194

8.5.1 Mehrzeiliger Plugin-Output . . . . . . . . . . . . . . . . . 195

8.5.2 Installationsvoraussetzungen . . . . . . . . . . . . . . . . 196

8.5.3 Installation und Test . . . . . . . . . . . . . . . . . . . . . . 196

8.5.4 Konfigurationsdatei . . . . . . . . . . . . . . . . . . . . . . 197

8.5.5 Kommandozeilenparameter . . . . . . . . . . . . . . . . . 198

8.5.6 Performancedaten und PNP . . . . . . . . . . . . . . . . . 200

8.5.7 Einfaches Business-Prozess-Monitoring . . . . . . . . . . 201

9 Plugins via SSH ausführen 207

9.1 Das check_by_ssh-Plugin . . . . . . . . . . . . . . . . . . . . . . . 208

9.2 SSH-Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

9.2.1 SSH-Schlüsselpaar auf dem Nagios-Server generieren . 211

9.2.2 Den User nagios auf dem Zielhost einrichten . . . . . . . 211

9.2.3 SSH-Verbindung und check_by_ssh testen . . . . . . . . 212

9.3 Nagios-Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . 213

8

Inhaltsverzeichnis

10 Der Nagios Remote Plugin Executor (NRPE) 215

10.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

10.1.1 Distributionsspezifische Pakete . . . . . . . . . . . . . . . 216

10.1.2 Installation aus dem Quellcode . . . . . . . . . . . . . . . 217

10.2 Start via Inet-Daemon . . . . . . . . . . . . . . . . . . . . . . . . . 218

10.2.1 xinetd-Konfiguration . . . . . . . . . . . . . . . . . . . . . 219

10.2.2 inetd-Konfiguration . . . . . . . . . . . . . . . . . . . . . . 220

10.2.3 Wacht der Inet-Daemon am NRPE-Port? . . . . . . . . . 220

10.3 NRPE-Konfiguration auf dem zu überwachenden Rechner . . . 221

10.3.1 Parameterübergabe an die lokalen Plugins . . . . . . . . 222

10.4 NRPE-Funktionstest . . . . . . . . . . . . . . . . . . . . . . . . . . 223

10.5 Nagios-Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . 224

10.5.1 NRPE ohne Parameter-Übergabe . . . . . . . . . . . . . . 224

10.5.2 NRPE mit Parameter-Übergabe . . . . . . . . . . . . . . . 225

10.5.3 Optimierung der Konfiguration . . . . . . . . . . . . . . . 225

10.6 Indirekte Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

11 Überwachungsrelevante Informationen sammeln mit SNMP 229

11.1 Einführung in SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . 230

11.1.1 Die Management Information Base . . . . . . . . . . . . . 231

11.1.2 SNMP-Versionen . . . . . . . . . . . . . . . . . . . . . . . . 235

11.2 NET-SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

11.2.1 Werkzeuge zur SNMP-Abfrage . . . . . . . . . . . . . . . . 237

11.2.2 Der NET-SNMP-Daemon . . . . . . . . . . . . . . . . . . . 240

11.3 Nagios-eigene SNMP-Plugins . . . . . . . . . . . . . . . . . . . . 249

11.3.1 Das generische SNMP-Plugin check_snmp . . . . . . . . 249

11.3.2 Mehrere Interfaces gleichzeitig überprüfen . . . . . . . . 254

11.3.3 Betriebszustand einzelner Interfaces testen . . . . . . . . 256

11.4 Weitere SNMP-basierte Plugins . . . . . . . . . . . . . . . . . . . 258

11.4.1 Festplattenplatz und Prozesse überwachen . . . . . . . . 259

11.4.2 Auslastung von Netzwerkinterfaces beobachten . . . . . 260

11.4.3 Die manubulon.com-Plugins . . . . . . . . . . . . . . . . 262

11.5 SNMP-Trap-Handling mit NagTrap . . . . . . . . . . . . . . . . . 267

11.5.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

9

Inhaltsverzeichnis

11.5.2 Konfiguration und Datenbank . . . . . . . . . . . . . . . . 268

11.5.3 Interaktion mit Nagios . . . . . . . . . . . . . . . . . . . . 270

11.5.4 Das NagTrap-Webfrontend . . . . . . . . . . . . . . . . . . 273

12 Das Nagios-Benachrichtigungssystem 277

12.1 Wer soll wann wie informiert werden? . . . . . . . . . . . . . . . 278

12.2 Wann entsteht eine Nachricht? . . . . . . . . . . . . . . . . . . . 279

12.3 Die Nachrichtenfilter . . . . . . . . . . . . . . . . . . . . . . . . . 279

12.3.1 Benachrichtigungen systemweit ein- und abschalten . . 281

12.3.2 Rechner- und dienstbezogene Nachrichten . . . . . . . . 281

12.3.3 Personenbezogene Filtermöglichkeiten . . . . . . . . . . 284

12.3.4 Fallbeispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . 285

12.4 Externe Benachrichtigungsprogramme . . . . . . . . . . . . . . . 288

12.4.1 Benachrichtigung per E-Mail . . . . . . . . . . . . . . . . 289

12.4.2 Nachricht per SMS . . . . . . . . . . . . . . . . . . . . . . . 291

12.5 Eskalationsmanagement . . . . . . . . . . . . . . . . . . . . . . . 294

12.6 Abhängigkeiten zwischen Hosts und Services berücksichtigen . 298

12.6.1 Der Standardfall: Service Dependencies . . . . . . . . . . 298

12.6.2 Nur für Ausnahmefälle: Host Dependencies . . . . . . . 302

13 Passive Tests über das External Command File 305

13.1 Die Schnittstelle für externe Kommandos . . . . . . . . . . . . . 306

13.2 Passive Service-Checks . . . . . . . . . . . . . . . . . . . . . . . . 307

13.3 Passive Host-Checks . . . . . . . . . . . . . . . . . . . . . . . . . . 308

13.4 Auf veraltete Informationen passiver Checks reagieren . . . . . 309

14 Der Nagios Service Check Acceptor (NSCA) 313

14.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

14.2 Konfiguration des Nagios-Servers . . . . . . . . . . . . . . . . . . 315

14.2.1 Die Konfigurationsdatei nsca.cfg . . . . . . . . . . . . . . 315

14.2.2 Konfiguration des Inet-Daemons . . . . . . . . . . . . . . 317

14.3 Konfiguration auf Clientseite . . . . . . . . . . . . . . . . . . . . . 318

14.4 Testergebnisse an den Server schicken . . . . . . . . . . . . . . . 319

14.5 Anwendungsbeispiel I: Syslog und Nagios integrieren . . . . . . 321

14.5.1 syslog-ng für den Einsatz mit Nagios vorbereiten . . . . 321

10

Inhaltsverzeichnis

14.5.2 Nagios-Konfiguration: Volatile Services . . . . . . . . . . 323

14.5.3 Fehlerzustände manuell aufheben . . . . . . . . . . . . . 325

14.6 Anwendungsbeispiel II: Verarbeitung von SNMP-Traps . . . . . 326

14.6.1 Traps empfangen mit snmptrapd . . . . . . . . . . . . . . 326

14.6.2 Traps an NSCA übergeben . . . . . . . . . . . . . . . . . . 328

14.6.3 Die passende Service-Definition . . . . . . . . . . . . . . 330

15 Verteiltes Monitoring 331

15.1 Den OCSP/OCHP-Mechanismus einschalten . . . . . . . . . . . 332

15.2 OCSP/OHCP-Kommandos definieren . . . . . . . . . . . . . . . . 333

15.3 Einsatzszenarien . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335

15.3.1 Redundanz bei Konfigurationsdateien vermeiden . . . . 335

15.3.2 Templates definieren . . . . . . . . . . . . . . . . . . . . . 336

16 Mod Gearman 339

16.1 Funktionsweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340

16.2 Szenarien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340

16.2.1 Load Balancing . . . . . . . . . . . . . . . . . . . . . . . . . 340

16.2.2 Verteiltes Monitoring . . . . . . . . . . . . . . . . . . . . . 341

16.3 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341

16.3.1 Gearman aus dem Quellcode übersetzen . . . . . . . . . 341

16.3.2 Mod Gearman aus dem Quellcode übersetzen . . . . . . 342

16.4 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

III Webinterface und Visualisierungsmöglichkeiten 345

17 Die klassische Weboberfläche 347

17.1 Probleme erkennen und behandeln . . . . . . . . . . . . . . . . . 350

17.1.1 Kommentare zu problembehafteten Rechnern . . . . . . 351

17.1.2 Verantwortung für Probleme übernehmen . . . . . . . . 353

17.2 Die einzelnen CGI-Programme im Überblick . . . . . . . . . . . 354

17.2.1 Statusanzeige in Variationen: status.cgi . . . . . . . . . . 354

17.2.2 Zusatzinformationen und Steuerzentrale: extinfo.cgi . . 358

17.2.3 Schnittstelle für externe Kommandos: cmd.cgi . . . . . . 363

17.2.4 Das Wichtigste auf einen Blick: tac.cgi . . . . . . . . . . . 366

11

Inhaltsverzeichnis

17.2.5 Topologische Netzwerkkarte mit statusmap.cgi . . . . . 367

17.2.6 Navigation in 3D: statuswrl.cgi . . . . . . . . . . . . . . . 369

17.2.7 Statusabfrage via Handy: statuswml.cgi . . . . . . . . . . 370

17.2.8 Gestörte Teilnetze analysieren: outages.cgi . . . . . . . . 371

17.2.9 Objektdefinition abfragen mit config.cgi . . . . . . . . . 371

17.2.10Verfügbarkeitsstatistik: avail.cgi . . . . . . . . . . . . . . . 372

17.2.11Wie oft tritt welches Ereignis ein? – histogram.cgi . . . . 374

17.2.12Logeinträge nach Zuständen filtern: history.cgi . . . . . 375

17.2.13Nachrichten verfolgen mit notifications.cgi . . . . . . . . 376

17.2.14Anzeige aller Logfile-Einträge: showlog.cgi . . . . . . . . 377

17.2.15Auswertung nach Wunsch: summary.cgi . . . . . . . . . . 377

17.2.16Zustände über die Zeit verfolgen: trends.cgi . . . . . . . 379

17.3 Wartungszeiten planen . . . . . . . . . . . . . . . . . . . . . . . . 380

17.3.1 Wartungszeiträume für Hosts . . . . . . . . . . . . . . . . 381

17.3.2 Wartungsfenster für Services . . . . . . . . . . . . . . . . . 382

17.4 Zusatzinformationen über Rechner und Dienste . . . . . . . . . 383

17.4.1 Erweiterte Host-Informationen . . . . . . . . . . . . . . . 384

17.4.2 Erweiterte Service-Informationen . . . . . . . . . . . . . . 387

17.5 Das Neustart-Problem bei Konfigurationsänderungen . . . . . 388

17.6 Modernes Outfit mit dem Nuvola-Style . . . . . . . . . . . . . . . 389

18 Flexible Weboberfläche mit den NDOUtils 395

18.1 Der Event-Broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396

18.2 Die Datenbankschnittstelle . . . . . . . . . . . . . . . . . . . . . . 398

18.3 Die Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400

18.3.1 Den Quellcode übersetzen . . . . . . . . . . . . . . . . . . 401

18.3.2 Vorbereiten der MySQL-Datenbank . . . . . . . . . . . . 401

18.3.3 Upgrade des Datenbank-Designs . . . . . . . . . . . . . . 403

18.4 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

18.4.1 Anpassen der Event-Broker-Konfiguration . . . . . . . . 404

18.4.2 Konfiguration des Datenbankzugriffs . . . . . . . . . . . 405

18.4.3 Den ndo2db-Daemon starten . . . . . . . . . . . . . . . . 406

18.4.4 Das Event-Broker-Modul in Nagios laden . . . . . . . . . 406

12

Inhaltsverzeichnis

19 Live-Zugriff auf die Statusdaten mit MK_Livestatus 409

19.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410

19.2 Zugriff über Netzwerk . . . . . . . . . . . . . . . . . . . . . . . . . 411

19.3 Die Livestatus Query Language . . . . . . . . . . . . . . . . . . . 412

20 NagVis 415

20.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418

20.1.1 Den Quellcode einspielen . . . . . . . . . . . . . . . . . . 418

20.1.2 Initiale Konfiguration . . . . . . . . . . . . . . . . . . . . . 419

20.1.3 Benutzer-Authentifikation . . . . . . . . . . . . . . . . . . 422

20.2 NagVis-Maps erstellen . . . . . . . . . . . . . . . . . . . . . . . . . 423

20.2.1 Konfiguration in Textform bearbeiten . . . . . . . . . . . 429

20.2.2 Die Nagios-Weboberfläche um NagVis-Maps erweitern . 429

21 Grafische Darstellung von Performancedaten 431

21.1 Plugin-Performancedaten mit Nagios verarbeiten . . . . . . . . 432

21.1.1 Der Template-Mechanismus . . . . . . . . . . . . . . . . . 433

21.1.2 Externe Kommandos zur Verarbeitung einsetzen . . . . 435

21.2 Graphen fürs Web mit Nagiosgraph . . . . . . . . . . . . . . . . . 436

21.2.1 Basis-Installation . . . . . . . . . . . . . . . . . . . . . . . . 436

21.2.2 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . 437

21.3 Performancedaten mit Perf2rrd zur Auswertung vorbereiten . . 443

21.3.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 444

21.3.2 Nagios-Konfiguration . . . . . . . . . . . . . . . . . . . . . 445

21.3.3 Perf2rrd in der Praxis . . . . . . . . . . . . . . . . . . . . . 446

21.4 Der Grafik-Spezialist drraw . . . . . . . . . . . . . . . . . . . . . . 448

21.4.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 448

21.4.2 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . 449

21.4.3 Praktische Anwendung . . . . . . . . . . . . . . . . . . . . 450

21.5 Reibungsloses Plotten mit PNP . . . . . . . . . . . . . . . . . . . 454

21.5.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 455

21.5.2 Die Standardkonfiguration . . . . . . . . . . . . . . . . . . 455

21.5.3 Die PNP-Weboberfläche . . . . . . . . . . . . . . . . . . . 457

21.5.4 Massenverarbeitung von Performancedaten . . . . . . . 460

13

Inhaltsverzeichnis

21.5.5 Wie soll die Grafik aussehen? . . . . . . . . . . . . . . . . 462

21.6 inGraph – Performancedaten visualisieren . . . . . . . . . . . . 464

21.6.1 Installation und Konfiguration . . . . . . . . . . . . . . . 465

21.6.2 Das Datenbank-Backend . . . . . . . . . . . . . . . . . . . 467

21.6.3 Nagios-Konfiguration . . . . . . . . . . . . . . . . . . . . . 467

21.6.4 inGraph-Webfrontends . . . . . . . . . . . . . . . . . . . . 469

21.6.5 Anomalien finden mit dem Check Plugin . . . . . . . . . 471

21.7 Weitere Tools und die Grenzen grafischer Auswertung . . . . . 472

IV Spezielle Einsatzzwecke 475

22 Windows-Server überwachen 477

22.1 Agentenlose Checks via WMI . . . . . . . . . . . . . . . . . . . . . 479

22.2 Installation und Konfiguration der Zusatzdienste . . . . . . . . 480

22.2.1 NSClient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480

22.2.2 NC_Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481

22.2.3 NSClient++ . . . . . . . . . . . . . . . . . . . . . . . . . . . 481

22.2.4 OpMon Agent . . . . . . . . . . . . . . . . . . . . . . . . . . 485

22.2.5 Probleme mit Port 1248 beheben . . . . . . . . . . . . . . 486

22.3 Das check_nt-Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . 487

22.3.1 Generell unterstützte Kommandos . . . . . . . . . . . . . 489

22.4 Die erweiterten Funktionen von NC_Net . . . . . . . . . . . . . . 496

22.4.1 Installation des Plugins check_ncnet . . . . . . . . . . . . 496

22.4.2 Windows-Performance-Counter . . . . . . . . . . . . . . . 497

22.5 NRPE für Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . 503

22.5.1 NRPE_NT, der Klassiker . . . . . . . . . . . . . . . . . . . . 504

22.5.2 Plugins für NRPE unter Windows . . . . . . . . . . . . . . 505

22.5.3 NRPE mit NSClient++ . . . . . . . . . . . . . . . . . . . . . 508

22.5.4 Interne NSClient++-Funktionen . . . . . . . . . . . . . . . 510

23 Raumtemperatur und Luftfeuchtigkeit überwachen 521

23.1 Sensoren und Software . . . . . . . . . . . . . . . . . . . . . . . . 522

23.1.1 Die messpc-Software für Linux . . . . . . . . . . . . . . . 522

23.1.2 Das Abfrageprotokoll . . . . . . . . . . . . . . . . . . . . . 523

14

Inhaltsverzeichnis

23.2 Das Nagios-Plugin check_pcmeasure2.pl . . . . . . . . . . . . . 523

24 Überwachung von SAP-Systemen 527

24.1 Überprüfung ohne Login: sapinfo . . . . . . . . . . . . . . . . . . 528

24.1.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 528

24.1.2 Erster Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528

24.1.3 Das Plugin check_sap.sh . . . . . . . . . . . . . . . . . . . 530

24.1.4 Aktueller und in Perl geschrieben: check_sap.pl . . . . . 532

24.2 Überwachung mit SAP CCMS . . . . . . . . . . . . . . . . . . . . 534

24.2.1 Der Alert-Monitor im Überblick . . . . . . . . . . . . . . . 535

24.2.2 Nagios die nötigen SAP-Nutzungsrechte verschaffen . . 537

24.2.3 Monitore und Templates . . . . . . . . . . . . . . . . . . . 539

24.2.4 Die CCMS-Plugins . . . . . . . . . . . . . . . . . . . . . . . 541

24.2.5 Performance-Optimierung . . . . . . . . . . . . . . . . . . 545

25 Ereignisse verarbeiten mit der EventDB 547

25.1 Funktionsweise der EventDB . . . . . . . . . . . . . . . . . . . . . 548

25.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549

25.2.1 Installationsvoraussetzungen . . . . . . . . . . . . . . . . 550

25.2.2 Vorbereiten der MySQL-Datenbank . . . . . . . . . . . . 551

25.2.3 Events an die Datenbank schicken mit syslog-ng . . . . 552

25.3 Das Webinterface nutzen . . . . . . . . . . . . . . . . . . . . . . . 554

25.3.1 Vorauswahl des Filters mit URL-Parametern . . . . . . . 556

25.4 Das Nagios-Plugin für die EventDB . . . . . . . . . . . . . . . . . 558

25.5 Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560

25.6 Windows-Events an Syslog senden . . . . . . . . . . . . . . . . . 561

25.7 Unverständliches lesbar machen mit SNMPTT . . . . . . . . . . 562

25.7.1 Die Konfigurationsdatei snmptt.ini . . . . . . . . . . . . . 563

25.7.2 MIBs konvertieren . . . . . . . . . . . . . . . . . . . . . . . 565

26 Überwachung von Geschäftsprozessen 567

26.1 Das Nagios Business Process Addon . . . . . . . . . . . . . . . . 568

26.1.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 568

26.1.2 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . 569

26.1.3 Integration in Nagios . . . . . . . . . . . . . . . . . . . . . 573

15

Inhaltsverzeichnis

26.1.4 Alarmierung durch Nagios . . . . . . . . . . . . . . . . . . 574

26.2 Nagios Business Process Intelligence . . . . . . . . . . . . . . . . 577

26.2.1 Installation und Konfiguration . . . . . . . . . . . . . . . 577

26.2.2 Einrichten der Geschäftsprozesse . . . . . . . . . . . . . . 579

26.2.3 Einbinden in Nagios . . . . . . . . . . . . . . . . . . . . . . 580

V Entwicklung 583

27 Plugins selbst schreiben 585

27.1 Programmierrichtlinien für Plugins . . . . . . . . . . . . . . . . . 586

27.1.1 Rückgabewerte . . . . . . . . . . . . . . . . . . . . . . . . . 586

27.1.2 Informationen für den Admin auf der Standardausgabe 587

27.1.3 Online-Hilfe an Bord? . . . . . . . . . . . . . . . . . . . . . 588

27.1.4 Reservierte Optionen . . . . . . . . . . . . . . . . . . . . . 589

27.1.5 Schwellwertangaben . . . . . . . . . . . . . . . . . . . . . 590

27.1.6 Abbruch nach Zeit . . . . . . . . . . . . . . . . . . . . . . . 591

27.1.7 Performancedaten . . . . . . . . . . . . . . . . . . . . . . . 591

27.1.8 Copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591

27.2 Das Perl-Modul Nagios::Plugin . . . . . . . . . . . . . . . . . . . . 592

27.2.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 592

28 Datei- und Verzeichnisgrößen ermitteln 595

28.1 Die Kommandozeile mit Getopt::Long zerlegen . . . . . . . . . 597

28.2 Die Perl-Online-Dokumentation . . . . . . . . . . . . . . . . . . . 598

28.2.1 Das Modul Pod::Usage . . . . . . . . . . . . . . . . . . . . 600

28.3 Schwellwerte ermitteln . . . . . . . . . . . . . . . . . . . . . . . . 602

28.4 Timeouts implementieren . . . . . . . . . . . . . . . . . . . . . . 603

28.5 Performancedaten ausgeben . . . . . . . . . . . . . . . . . . . . . 603

28.6 Konfigurationsdateien für Plugins . . . . . . . . . . . . . . . . . . 604

29 Oracle-Überwachung mit dem Instant-Client 607

29.1 Den Oracle-Instant-Client installieren . . . . . . . . . . . . . . . 608

29.2 Verbindung zur Oracle-Datenbank herstellen . . . . . . . . . . . 609

29.3 Ein Wrapper-Plugin für sqlplus . . . . . . . . . . . . . . . . . . . 609

29.3.1 Die Funktionsweise des Wrappers . . . . . . . . . . . . . 610

16

Inhaltsverzeichnis

29.3.2 Das Perl-Plugin im Detail . . . . . . . . . . . . . . . . . . . 611

Anhang 615

A Nagios-Konfigurationsparameter 617

A.1 Die Hauptkonfigurationsdatei nagios.cfg . . . . . . . . . . . . . . 618

A.2 CGI-Konfiguration in cgi.cfg . . . . . . . . . . . . . . . . . . . . . 639

A.2.1 Authentifikationsparameter . . . . . . . . . . . . . . . . . 639

A.2.2 Sonstige Parameter . . . . . . . . . . . . . . . . . . . . . . 641

B Schnell wechselnde Zustände: Flapping 645

B.1 Flap Detection bei Services . . . . . . . . . . . . . . . . . . . . . . 646

B.1.1 Nagios-Konfiguration . . . . . . . . . . . . . . . . . . . . . 647

B.1.2 Historienspeicher . . . . . . . . . . . . . . . . . . . . . . . 648

B.1.3 Darstellung in der Weboberfläche . . . . . . . . . . . . . 649

B.2 Flap Detection bei Hosts . . . . . . . . . . . . . . . . . . . . . . . 651

C Eventhandler 653

C.1 Ausführungszeitpunkte für Eventhandler . . . . . . . . . . . . . 654

C.2 Eventhandler in der Service-Definition festlegen . . . . . . . . . 655

C.3 Das Handler-Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . 656

C.4 Beachtenswertes beim Umgang mit Eventhandlern . . . . . . . 657

D Makros 659

D.1 Standardmakros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660

D.1.1 Host-Makros . . . . . . . . . . . . . . . . . . . . . . . . . . 661

D.1.2 Service-Makros . . . . . . . . . . . . . . . . . . . . . . . . . 662

D.1.3 Gruppen-Makros . . . . . . . . . . . . . . . . . . . . . . . . 662

D.1.4 Kontakt-Makros . . . . . . . . . . . . . . . . . . . . . . . . 663

D.1.5 Benachrichtigungsmakros . . . . . . . . . . . . . . . . . . 664

D.1.6 Makros für Zeit- und Datumsangaben . . . . . . . . . . . 664

D.1.7 Statistikmakros . . . . . . . . . . . . . . . . . . . . . . . . . 665

D.1.8 Standardmakros über das Environment verwenden . . . 665

D.2 On-Demand-Makros . . . . . . . . . . . . . . . . . . . . . . . . . . 666

D.3 Makros für selbstdefinierte Variablen . . . . . . . . . . . . . . . . 667

D.4 Makro-Inhalte: Nicht alles ist erlaubt . . . . . . . . . . . . . . . . 669

17

Inhaltsverzeichnis

E Single-Sign-On für die Nagios-Weboberfläche 671

E.1 HTTP-Authentifikation für Single-Sign-On . . . . . . . . . . . . . 672

E.2 Kerberos-Authentifikation mit mod_auth_kerb . . . . . . . . . . 674

E.2.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 675

E.2.2 Service-Ticket für Apache erstellen . . . . . . . . . . . . . 675

E.2.3 Kerberos-Konfiguration . . . . . . . . . . . . . . . . . . . . 676

E.2.4 Apache-Konfiguration . . . . . . . . . . . . . . . . . . . . . 677

E.2.5 Definition eines Nagios-Kontakts . . . . . . . . . . . . . . 678

E.3 Single-Sign-On mit mod_auth_ntlm_winbind . . . . . . . . . . . 679

E.3.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 679

E.3.2 Samba vorbereiten . . . . . . . . . . . . . . . . . . . . . . . 680

E.3.3 Apache-Konfiguration . . . . . . . . . . . . . . . . . . . . . 682

E.3.4 Definition eines Nagios-Kontakts . . . . . . . . . . . . . . 683

E.4 Mozilla Firefox als Webclient . . . . . . . . . . . . . . . . . . . . . 684

E.4.1 Firefox und NTLM . . . . . . . . . . . . . . . . . . . . . . . 685

E.5 Microsoft Internet Explorer als Webclient . . . . . . . . . . . . . 685

F Tipps zur Performance-Optimierung 687

F.1 Nagios-interne Statistiken . . . . . . . . . . . . . . . . . . . . . . 688

F.1.1 Das Kommandozeilentool nagiostats . . . . . . . . . . . . 688

F.1.2 Nagios-Performance im grafischen Verlauf . . . . . . . . 692

F.1.3 Ein Plugin zur Überwachung der Latenz . . . . . . . . . . 694

F.2 Maßnahmen zur Performance-Verbesserung . . . . . . . . . . . 696

F.2.1 Service-Checks – so oft wie nötig, so wenig wie möglich 696

F.2.2 Performancedaten intelligent verarbeiten . . . . . . . . . 697

F.2.3 Plugins in interpretierten Sprachen vermeiden . . . . . . 698

F.2.4 Host-Checks optimieren . . . . . . . . . . . . . . . . . . . 699

F.2.5 Die Sache mit dem Reaper . . . . . . . . . . . . . . . . . . 699

F.2.6 Passive Checks bevorzugen . . . . . . . . . . . . . . . . . 700

F.2.7 Optimierung großer Nagios-Umgebungen . . . . . . . . 701

F.2.8 NDOUtils-Datenbank optimieren . . . . . . . . . . . . . . 701

F.3 Neustart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702

18

Inhaltsverzeichnis

G Der Embedded Perl-Interpreter 705

G.1 Anforderungen an ein ePN-taugliches Plugin . . . . . . . . . . . 706

G.2 ePN verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708

G.2.1 ePN einkompilieren . . . . . . . . . . . . . . . . . . . . . . 708

G.2.2 Interpreter-spezifische Parameter in der nagios.cfg . . . 708

G.2.3 ePN auf Plugin-Basis deaktivieren . . . . . . . . . . . . . 709

G.3 Das Testwerkzeug new_mini_epn . . . . . . . . . . . . . . . . . . 709

19

Vorwort zur dritten Auflage

Seit dem Erscheinen der zweiten Auflage ist viel passiert – nicht unbedingtbeim Nagios-Core selbst. Dieser wird seit jeher konservativ entwickelt. Dasfreut einerseits den Admin, denn er muss sich keine Sorgen über Insta-bilitäten durch Featurismus machen. Auf der anderen Seite bedeutet dasaber auch, dass neue, sinnvolle Features nur langsam oder gar nicht in dieEntwicklung aufgenommen werden. Das bietet Raum und Ansporn für al-ternative Ansätze wie Icinga oder Shinken.

Icinga ist ein Fork von Nagios, also eine 1:1-Kopie eines bestimmten Ent-wicklungsstandes, der dann parallel weiterentwickelt wird. Shinken hinge-gen ist eine vollständige Neuentwicklung auf Python-Basis. Beide nutzendie klassische Nagios-Konfiguration (mit geringfügigen Erweiterungen), bei-de nutzen die Vielfalt an Plugins und Addons aus dem Nagios-Umfeld. Diegute Nachricht für den Leser ist, dass alles in diesem Buch auch weiterhinBestand hat. Ich empfehle Lesern, die sich zum ersten Mal mit dem The-ma Nagios-Monitoring befassen, zunächst mit dem Nagios-Core zu begin-nen. Schnell werden Sie feststellen, dass der Nagios-Core zwar wesentlicheGrundfunktionen für das Monitoring liefert, dass es aber gerade die unzäh-ligen Plugins und die zahlreichen Addons sind, die den Einsatz von Nagi-os so interessant machen. Finden Sie die klassische Nagios-Weboberflächezu hausbacken? Dann sehen Sie sich vielleicht Thruk, Multisite, Ninja oderNagvis an. Möchten Sie vielleicht testweise einen anderen Monitoring-Kernnutzen? Die Open Monitoring Distribution OMD bietet Ihnen eine Möglich-keit, vom Nagios-Core auf Shinken oder Icinga zu wechseln, ohne gleichwieder ganz von vorne beginnen zu müssen. Neben OMD gibt es weite-re Umgebungen, die den Nagios-Kern zusammen mit Plugins und Addonsleicht installierbar und vorkonfiguriert für den Anwender aufbereitet verpa-cken: Nagios XI vom Nagios-Autor Ethan Galstad selbst, OpMon, Ground-Works, Op5, Centreon und andere. Nicht alle sind jedoch in einer Com-munity-Edition frei verfügbar.

Fertige Pakete erleichtern den Einstieg, für konkrete Lösungen und das Ver-ständnis der Möglichkeiten kommen Sie aber nicht umhin, sich mit deneinzelnen Bestandteilen zu beschäftigen. Dieses Buch hilft Ihnen dabei. Esdient Ihnen sowohl als Einführung in die Materie wie auch als Nachschla-

21

Vorwort zur dritten Auflage

gewerk. Mit der dritten Auflage wurden alle Kapitel auf den aktuellen Standgebracht.

Die regelmäßige Aktualisierung eines Werkes wie des hier vorliegenden kos-tet Zeit und Kraft, die ich nicht mehr aufbringen konnte, da andere Projektezu viel Zeit in Anspruch nehmen. Ich freue mich daher besonders, dass esdem Verlag gelungen ist, für die Pflege und Weiterentwicklung dieses Stan-dardwerks mit Christian Schneemann und Tobias D. Oestreicher von derFirma „B1 Systems“ zwei kompetente Koautoren zu finden und den Fort-bestand des Buchprojekts sicherzustellen. Beim Verlag, insbesondere beiMarkus Wirtz, möchte ich mich für die jahrelange sehr gute Zusammen-arbeit bedanken. Und nicht zuletzt bei Ihnen, liebe Leser, die Sie diesesBuch zum Standardwerk haben werden lassen und mit kritischen Fragenzur stetigen Verbesserung beigetragen haben.

Allen Admins wünsche ich, dass Nagios-Monitoring Ihnen die Gewissheitgibt, drohende technische Katastrophen rechtzeitig erkennen und abweh-ren zu können.

Wolfgang Barth April 2012

22

Einleitung

Montagmorgen gegen 10 Uhr. Der Chef der Filiale tobt. Er wartet schonseit Stunden vergeblich auf eine wichtige E-Mail. Kann ja nur am Mailser-ver liegen, der hat sich sicher wieder mal aufgehängt. Ein kurzer Check desRechners zeigt aber, dass dort keine Mails in der Queue hängen gebliebensind. Und im Logfile steht auch nicht, dass eine Mail vom ersehnten Ab-sender eingetroffen wäre. Worin also besteht das Problem?

Der zentrale Mailserver des Konzerns antwortet nicht auf ping. Vermutlichliegt dort der Hund begraben. Die in der Konzernzentrale zuständige EDV-Abteilung weist aber jede Schuld von sich. Sie kann zwar den Mailknotender Filiale auch nicht anpingen, behauptet aber, in der Zentrale funktionie-re das Netzwerk einwandfrei, also müsse es am Netz in der Filiale liegen.Die Fehlersuche geht weiter. . .

Das unrühmliche Ergebnis: Die VPN-Strecke zur Zentrale war ausgefallen,die ISDN-Backup-Leitung funktionierte zwar, aber im Backup-Router warkeine Route zur Zentrale (und damit zum zentralen Mailserver) eingetra-gen. Zuständig für die Netzwerkverbindungen (VPN und ISDN) zwischenFiliale und Zentrale war ein global operierender IT-Dienstleister, bei demso was „nicht passiert“. Bilanz: stundenlange Fehlersuche, ein entnervterChef (die Besprechung, zu der die E-Mail dringend erforderlich gewesenwäre, ist längst vorbei) und ein schweißgebadeter Admin.

Mit einem entsprechend konfigurierten Nagios-System hätte der Adminis-trator bereits morgens um 8 Uhr das Problem bemerkt und in wenigen Mi-nuten seine Ursache eingrenzen können. Anstatt wertvolle Zeit zu verlieren,wäre der IT-Dienstleister direkt informiert worden. Die dann benötigte Zeitzur Fehlerbehebung (hier: eine halbe Stunde) hätte gereicht, um die E-Mailnoch rechtzeitig zuzustellen.

Zweites Beispiel: Irgendwo in Deutschland läuft in einem Krankenhaus dieFestplatte voll, auf der die zentrale Oracle-Datenbank ihre Logfiles ablegt.Zwar gehen im OP deswegen nicht „die Lichter aus“, da aber die Datenbankihre Arbeit verweigert, kommt es zu erheblichen Störungen im Betriebsab-lauf: Patienten können nicht aufgenommen werden, Untersuchungsergeb-nisse lassen sich nicht abspeichern und Befunde nicht dokumentieren –solange, bis das Problem behoben ist.

23

Einleitung

Bei Überwachung der kritischen Festplatte mit Nagios wäre die EDV-Abtei-lung frühzeitig gewarnt worden, das Problem gar nicht erst entstanden.

Bei immer knapper werdenden Personalressourcen kann es sich keine IT-Abteilung leisten, regelmäßig alle Systeme manuell zu überprüfen. Immerkomplexere Netzwerke verlangen geradezu, sich frühzeitig über auftreten-de Störungen oder kurz bevorstehende Probleme informieren zu lassen.Ethan Galstads Open-Source-Werkzeug Nagios1 zur System- und Netzwer-küberwachung hilft dem Administrator, Probleme zu erkennen, bevor dieTelefondrähte glühen.

Ziel der Software ist es, Administratoren schnell über bedenkliche (WAR-NING) oder kritische Zustände (CRITICAL) zu benachrichtigen. Was als„bedenklich“ oder „kritisch“ gilt, legt der Admin in der Konfiguration fest.Eine übersichtliche Webseite informiert ihn dann über normal arbeitendeSysteme und Dienste, die Nagios grün darstellt, über bedenkliche Zustände(gelb) und kritische Situationen (rot). Außerdem besteht die Möglichkeit,zuständige Administratoren – in Abhängigkeit von bestimmten Dienstenoder Systemen – gezielt per E-Mail, aber auch über Paging-Dienste wie SMSzu benachrichtigen.

Mit der Konzentration auf Ampelzustände (grün, gelb, rot) unterscheidetsich Nagios von Netzwerktools, die etwa den zeitlichen Verlauf grafisch dar-stellen (zum Beispiel die Auslastung eines WAN-Interfaces oder einer CPUüber den ganzen Tag) oder den Netzwerkverkehr zählen und vermessen(Wie hoch war der Anteil von HTTP auf einem bestimmten Interface?). BeiNagios geht es schlicht und ergreifend um die Frage, ob sich alles im „grü-nen Bereich“ bewegt. Deren Beantwortung beherrscht die Software ausge-zeichnet, und zwar nicht nur in Hinblick auf den aktuellen Zustand, son-dern auch über längere Zeiträume.

Die Tests

Beim Überprüfen kritischer Rechner und Dienste unterscheidet Nagios zwi-schen Host- und Service-Checks. Ein Host-Check testet einen Rechner aufErreichbarkeit – in der Regel kommt einfach ping zum Einsatz. Ein Service-Check prüft gezielt einzelne Netzwerkdienste wie HTTP, SMTP, DNS etc.,aber auch laufende Prozesse, CPU-Last oder Logfiles. Host-Checks führtNagios unregelmäßig und nur bei Bedarf durch, etwa dann, wenn auf demüberwachten Rechner keiner der zu überwachenden Dienste erreichbar ist.Solange sich dort mindestens ein Service ansprechen lässt, gilt dies schließ-lich für den gesamten Rechner, im Nagios-Slang Host genannt, und diesePrüfung kann damit entfallen.

Der einfachste Test für Netzwerkdienste besteht darin, nachzusehen, ob derbetreffende Zielport offen ist und dort ein Dienst lauscht. Allerdings stellt

1 Nagios und das Nagios-Logo sind eingetragene Warenzeichen von Ethan Galstad.

24

Einleitung

dies nicht unbedingt sicher, dass etwa auf TCP-Port 22 tatsächlich der SSH-Daemon läuft. Nagios benutzt daher für viele Dienste Tests, die wesentlichweiter gehen. Bei SMTP prüft die Software zum Beispiel, ob sich der Mail-server auch mit einer „220“-Ausgabe, dem sogenannten SMTP-Greeting,meldet; bei einer PostgreSQL-Datenbank, ob diese eine SQL-Anfrage ent-gegennimmt.

Interessant wird Nagios vor allem auch dadurch, dass es Abhängigkeiten inder Netzwerktopologie (bei entsprechender Konfiguration) berücksichtigt.Lässt sich das Zielsystem nur über einen bestimmten Router erreichen, dergerade ausgefallen ist, meldet Nagios, dass das Zielsystem „unreachable“sei, und verzichtet darauf, es mit weiteren Host- und Service-Checks zubombardieren. Damit versetzt die Software den Administrator in die Lage,die eigentliche Ursache schneller zu erkennen und zu beheben.

Die Informationslieferanten

Die große Stärke von Nagios – auch im Vergleich zu anderen Netzwerküber-wachungstools – liegt in seinem modularen Aufbau: Der Nagios-Kern ent-hält keinen einzigen Test, stattdessen verwendet er für Service- und Host-Checks externe Programme, die als Plugins bezeichnet werden. Zur Grund-ausstattung gehört bereits eine Anzahl Standard-Plugins für die wichtigs-ten Anwendungszwecke. Darüber hinausgehende Spezialwünsche erfüllen– grundlegende Programmierkenntnisse vorausgesetzt – selbstgeschriebe-ne Plugins. Bevor man Zeit in deren Entwicklung investiert, lohnt es jedoch,erst einmal im Internet und auf den einschlägigen Mailinglisten2 zu stö-bern, denn in diesem Bereich herrscht reges Treiben. Fertige Plugins stelltinsbesondere die Nagios-Austauschplattform MonitoringExchange bereit.

Ein Plugin ist ein einfaches Programm – gern auch ein Shell- oder Perl-skript –, das einen der vier Zustände OK, WARNING, CRITICAL oder (beiBedienfehlern, zum Beispiel der Übergabe einer unbekannten Option andas Plugin) UNKNOWN ausgibt.

Damit kann Nagios prinzipiell alles prüfen, was sich elektronisch messenoder zählen lässt: Temperatur und Luftfeuchtigkeit im Serverraum, Nieder-schlagsmenge, die Anwesenheit von Personen in einem bestimmten Raumzu einer Zeit, in der ihn keiner betreten sollte. Der Phantasie sind kei-ne Grenzen gesetzt, vorausgesetzt, man findet einen Weg, Messdaten oderEreignisse als eine vom Computer verwertbare Information bereitzustel-len (zum Beispiel mit einem Temperatur- und Feuchtigkeitssensor, einemBewegungsmelder etc.). Dementsprechend stellt dieses Buch neben denStandard-Plugins auch weitere, frei verfügbare Plugins vor, etwa im Kapi-tel 23 ab Seite 521 den Einsatz eines Plugins zur Abfrage eines Temperatur-und Feuchtigkeitssensors.

2http://www.nagios.org/support/mailinglists.php

25

Einleitung

Die Admins auf dem Laufenden halten

Nagios besitzt ein ausgefeiltes Benachrichtigungssystem. Auf der Sender-seite (also beim Host- oder Service-Check) lässt sich einstellen, wann wel-che Personengruppen – die sogenannten contactgroups – über welche Zu-stände oder Ereignisse (Ausfall, Recovery, Warnings etc.) informiert werden.Auch auf Empfängerseite lässt sich mehrstufig festlegen, was mit einer ent-sprechenden Nachricht geschieht – etwa ob das System sie zeitabhängigweiterleiten oder verwerfen soll.

Soll beispielsweise ein bestimmter Dienst sieben Tage die Woche rund umdie Uhr überwacht werden, heißt das nicht, dass der zuständige Adminis-trator keinerlei Ruhepausen bekommt: Stattdessen kann man Nagios an-weisen, ihn nur montags bis freitags zwischen 8 und 17 Uhr maximal allezwei Stunden zu benachrichtigen. Vermag er das Problem nicht innerhalbeiner festgesetzten Frist, etwa innerhalb von acht Stunden, zu beheben, sollder verantwortliche Abteilungsleiter eine Nachricht erhalten, auch Eskala-tionsmanagement genannt (siehe Kapitel 12.5 ab Seite 294).

Nagios greift für Benachrichtigungen ebenfalls auf frei konfigurierbare ex-terne Programme zurück, so dass sich beliebige Systeme einbinden lassen:von E-Mail über SMS bis hin zu einem Sprachserver, der den Administratoranruft und diesem die Fehlermeldung per Voice überbringt.

Mit seiner Weboberfläche (vgl. Kapitel 17 ab Seite 347) bietet Nagios demAdministrator eine Fülle an Informationen, übersichtlich sortiert nach derjeweiligen Fragestellung. Ob ein Überblick über die Gesamtsituation, dieAnzeige problematischer Dienste und Rechner bzw. der Verursacher vonNetzwerkausfällen oder der Zustand ganzer Host- und Service-Gruppen –Nagios bietet für fast jeden Zweck eine eigens gestaltete Infoseite.

Über das Webfrontend benachrichtigt ein Administrator seine Kollegen,wenn er sich eines Problems annimmt, diese können sich dann auf bishernoch unbearbeitete Dinge konzentrieren. Bereits gewonnene Informatio-nen lassen sich als Kommentare zu Hosts und Services ebenso hinterlegenwie Wartungszeiten: Nagios verhindert in diesen Zeiten Fehlalarme.

In Rückschau auf die Vergangenheit verrät das Webinterface, welche Pro-bleme in einem gewählten Zeitintervall auftraten, wer benachrichtigt wur-de, wie es um die Verfügbarkeit eines Hosts und/oder Services in einembestimmten Zeitraum aussah – auch dies natürlich unter Berücksichtigungder Wartungszeiten.

Informationen von außen aufnehmen

Für Tests, Benachrichtigungen etc. greift Nagios auf externe Programme zu,aber auch der umgekehrte Weg ist möglich: Über eine separate Schnittstelle(siehe Kap. 13.1 ab Seite 306) können unabhängige Programme Zustands-

26

Einleitung

informationen und Kommandos an Nagios übermitteln. Von dieser Mög-lichkeit macht übrigens die Weboberfläche regen Gebrauch und erlaubtes dem Administrator somit, interaktiv Kommandos an Nagios zu senden.Aber auch ein Nagios-fremdes Backup-Programm kann so Erfolg oder Miss-erfolg an Nagios übermitteln, ebenso ein Syslog-Daemon u. a. – der Phan-tasie sind hier wenig Grenzen gesetzt.

Dank dieser Schnittstelle erlaubt Nagios verteiltes Monitoring. Dabei sen-den mehrere dezentrale Nagios-Installationen ihre Testergebnisse an einezentrale Instanz, die hilft, den Überblick zu behalten.

Andere Tools zur Netzwerküberwachung

Nagios ist nicht das einzige Werkzeug zur Überwachung von Systemen undNetzwerken. Der bekannteste, vielleicht gleichwertige „Konkurrent“ ist BigBrother (BB). Trotz einiger Unterschiede dient auch dessen Webschnittstel-le demselben Zweck wie die von Nagios: dem Administrator aufzuzeigen,was sich im „grünen Bereich“ befindet und was nicht.

Warum der Autor Nagios statt Big Brother einsetzt, liegt in der Big-Brother-Lizenz begründet, auf der BB-Homepage3 Better Than Free License genannt:Das Produkt wird kommerziell weiterentwickelt und vertrieben. Wer BBeinsetzt und damit Geld verdient, muss die Software kaufen. Nicht mit denKriterien für Open-Source-Lizenzen vereinbaren lässt sich, dass die Soft-ware inklusive Quellcode nur mit expliziter Erlaubnis des Herstellers wei-tergegeben oder verändert werden darf. Damit sind Linux-Distributoren dieHände gebunden.

Für die grafische Darstellung bestimmter Messwerte über die Zeit, etwadie Auslastung eines Netzwerkinterfaces, einer CPU oder die Anzahl derMails pro Minute, gibt es andere Werkzeuge, die das besser erledigen alsNagios. Deren Urahn ist sicher der Multi Router Traffic Grapher MRTG,4

der sich trotz inzwischen erwachsender Konkurrenz anhaltend großer Be-liebtheit erfreut. Eine relativ junge, aber sehr mächtige Alternative heißtCacti:5 Umfangreicher und per Weboberfläche konfigurierbar, umgeht sieEinschränkungen wie die, dass MRTG nur zwei Messwerte parallel aufzei-gen und keine negativen Werte darstellen kann. Eine weitere interessanteAlternative ist Munin.6 Hierzu ist 2008 ein eigenes Buch im selben Verlagerschienen.7

Nagios selbst zeigt Performancedaten über Erweiterungen ebenfalls gra-fisch an (vgl. Kapitel 21 ab Seite 431). In vielen Fällen reicht das aus, bei sehr

3http://www.bb4.org/

4http://www.mrtg.org/

5http://www. a ti.net/

6http://munin.proje ts.linpro.no/

7 Gabriele Pohl, Michael Renner: „Munin – Graphisches Netzwerk- und System-Monitoring“, ISBN 978-3-937514-48-2.

27

Einleitung

dedizierten Anforderungen empfiehlt sich allerdings der parallele Einsatzvon Nagios und einem grafischen Darstellungstool wie MRTG oder Cacti.

Über dieses Buch

Dieses Buch wendet sich an Netzwerkadministratoren, die sich mit einemOpen-Source-Werkzeug über den Zustand ihrer Systeme und Netzwerke in-formieren wollen. Es beschreibt Nagios in der aktuellen Version 3.3.1. DiePlugins führen ein Eigenleben, sind weitestgehend unabhängig von Nagiosund nicht an eine bestimmte Version gebunden.

Auch wenn dieses Buch auf Linux als Betriebssystem für den Nagios-Rech-ner setzt, ist das keine Bedingung. Die meisten Beschreibungen treffenauch auf andere Unix-Systeme8 zu, lediglich Systemspezifisches wie Start-skripte müssen entsprechend angepasst werden. Unter Windows läuft Na-gios dagegen derzeit offiziell nicht.9

Der erste Teil des Buches beschäftigt sich damit, Nagios in einer einfachen,aber für viele Einsatzzwecke bereits ausreichenden Konfiguration so schnellwie möglich zum Laufen zu bekommen. Die Kapitel Installation, Konfigu-ration und Inbetriebnahme verzichten daher auf eine ausführliche Darstel-lung und Abhandlung aller Möglichkeiten und Features.

Dies übernimmt der zweite Teil des Buches. Grundlagen geht detailliert aufService- und Host-Checks ein und stellt insbesondere deren Abhängigkeitvon der Netzwerktopologie vor. Welche Möglichkeiten Nagios zur Verfü-gung stehen, um Service-Checks durchzuführen oder an deren Ergebnissezu gelangen, beschreibt das Kapitel Service-Checks und ihre Ausführung.

Dann folgen Einzelvorstellungen der Standard-Plugins und einiger zusätz-licher, frei erhältlicher Plugins: Kapitel Plugins für Netzwerkdienste gehtauf Möglichkeiten ein, Diensten über ein Netzwerkprotokoll direkt vomNagios-Host aus auf den Zahn zu fühlen, während das Kapitel Lokale Res-sourcen überprüfen Plugins zusammenfasst, die auf dem zu überprüfen-den Rechner selbst installiert sein müssen und zu deren Ausführung Na-gios weitere Hilfsmittel braucht. Einige Hilfsplugins, die selbst keine Testsdurchführen, sondern bereits ermittelte Ergebnisse manipulieren, stellt dasKapitel Plugins für Sonderaufgaben vor.

Zwei Hilfsmittel, die Nagios benötigt, um lokale Plugins auf entfernten Hostsauszuführen, stellen die darauffolgenden beiden Kapitel vor: In Plugins viaSSH ausführen kommt die Secure Shell SSH zum Einsatz, während das Ka-pitel Der Nagios Remote Plugin Executor (NRPE) einen speziell für Nagiosentwickelten Daemon vorstellt.

8 Z. B. *BSD, HP-UX, AIX und Solaris; zu Nagios unter Mac OS X sind dem Autor keineBerichte bekannt.

9 Es gibt Gerüchte über laufende Nagios-Installationen in einer Cygwin-Umgebung.

28

Einleitung

Wo Netzwerke überwacht werden, darf auch SNMP nicht fehlen. Das Kapi-tel Überwachungsrelevante Informationen sammeln mit SNMP beschreibtnicht nur SNMP-fähige Plugins, sondern geht zuvor auch ausführlich aufdas Protokoll und die SNMP-Welt selbst ein, um das notwendige Grund-wissen zu vermitteln.

Das Nagios-Benachrichtigungssystem stellt das darauffolgende Kapitel vor,dabei kommen auch die Benachrichtigung per SMS, Eskalationsmanage-ment und die Berücksichtigung von Abhängigkeiten zur Sprache.

Die Schnittstelle für externe Kommandos bespricht das Kapitel Passive Testsüber das External Command File. Sie bildet die Grundlage für weitere Na-gios-Mechanismen, wie etwa den Nagios Service Check Acceptor (NSCA),einen Client-Server-Mechanismus für die Übermittlung passiver Testergeb-nisse. Dessen Einsatzmöglichkeiten zeigen wir an zwei konkreten Beispie-len – der Integration von syslog-ng und der Verarbeitung von SNMP-Traps. Auch Verteiltes Monitoring setzt den NSCA voraus.

Der dritte Teil des Buches widmet sich der Visualisierung der gewonnenenInformationen. Das Kapitel Die klassische Weboberfläche erklärt deren Auf-bau und Funktion im Detail, unterstützt durch aussagekräftige Screenshots.Es geht auch auf eine Reihe von Parametern ein, die außer im Quellcodebisher nirgends dokumentiert sind.

Nagios lässt sich durch externe Anwendungen erweitern. Die NDOUtils er-lauben die datenbankgestützte Speicherung aller Nagios-Objekte, beschrie-ben im Kapitel Flexible Weboberfläche mit den NDOUtils. Wie man über dasNetzwerk auf Live-Daten des Nagiosprozesses zugreifen kann, beschreibtdas Kapitel Live Zugriff auf die Statusdaten mit MK_Livestatus. Beide Da-tenquellen ermöglichen über das im Kapitel NagVis beschriebene Addoneine weit über den Grundumfang von Nagios hinaus konfigurierbare Web-oberfläche.

Zwar konzentriert sich Nagios bei seiner Arbeit primär auf Ampelzustände(rot, gelb, grün), doch gibt es Möglichkeiten, die von den Plugins geliefertenPerformancedaten auszuwerten und darzustellen, was das Kapitel GrafischeDarstellung von Performancedaten im Detail beschreibt.

Der vierte Teil des Buchs widmet sich speziellen Anwendungsmöglichkei-ten. So sind Netzwerke selten homogen nur mit Linux und anderen Unix-artigen Betriebssystemen ausgestattet. Daher zeigt das Kapitel Windows-Server überwachen, mit welchen Hilfsmittel sich Windows-Systeme einbin-den und auf Funktionsfähigkeit kontrollieren lassen.

Das Kapitel Raumtemperatur und Luftfeuchtigkeit überwachen demons-triert am Beispiel eines Low-Cost-Hardware-Sensors, wie sich diese Para-meter einfach, aber wirkungsvoll im Blick behalten lassen.

Nagios kann auch proprietäre, kommerzielle Software überwachen, sofernMechanismen zur Verfügung stehen, um entsprechende Systemzustände

29