Thorsten Kramm beschäftigt sich seit 1999 mit IT-Systemen im Unternehmenseinsatz. In verschiedenen Firmen leitete er die IT-Abteilungen. Frustriert über die mangelnde Benutzerfreundlichkeit vieler Monitoring-Lösungen kam er 2006 zu Zabbix. Als Berater hat er in vielen Firmen Zabbix eingeführt und große Setups aufgebaut.
Thorsten Kramm beschäftigt sich nicht nur mit den technischen Details von IT-Systemen. Sein Augenmerk gilt auch den Soft Skills und der menschlichen Komponente. Ein System funktioniert nur so gut, wie die Menschen, die es betreiben. Thorsten Kramm gibt Trainings zu den Themen Monitoring, IT-Automatisierung und Kanban in der IT. Er lebt und arbeitet in Berlin. Mehr Informationen finden Sie auf seiner Webseite http://system42.io.
Zu diesem Buch – sowie zu vielen weiteren dpunkt.büchern – können Sie auch das entsprechende E-Book im PDF-Format herunterladen. Werden Sie dazu einfach Mitglied bei dpunkt.plus+: www.dpunkt.de/plus |
Das Praxishandbuch
Thorsten Kramm
Lektorat: Christa Preisendanz
Copy-Editing: Annette Schwarz
Satz: III-satz, www.drei-satz.de
Herstellung: Nadine Thiele
Umschlaggestaltung: Helmut Kraus, www.exclam.de
Druck und Bindung: M.P. Media-Print Informationstechnologie GmbH, 33100 Paderborn
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.
ISBN:
Buch 978-3-86490-335-9
PDF 978-3-86491-897-1
epub 978-3-86491-898-8
mobi 978-3-86491-899-5
1 Auflage 2016
Copyright © 2016 dpunkt.verlag GmbH
Wieblinger Weg 17
69123 Heidelberg
Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.
Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen.
Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.
5 4 3 2 1 0
1 Wie ist dieses Buch aufgebaut?
1.1 Über dieses Buch
1.2 Der große Zabbix-Baukasten
1.3 Die Reihenfolge der Kapitel
1.4 Schnelleinstieg
1.5 Formalien
1.5.1 Typografie
1.5.2 Englische Begriffe und Anglizismen
2 Der Einstieg: Was ist Monitoring?
2.1 Warum Monitoring?
2.2 Monitoring ist mehr als ein Alarm im Fehlerfall
2.3 Zabbix, die Datenkrake
2.4 Was leistet Zabbix?
2.5 Die Grenzen und Schwächen von Zabbix
2.6 Bestandteile und Funktionen von Zabbix
2.7 Die Basisterminologie
2.7.1 Host und Item: Daten sammeln
2.7.2 Trigger: Daten verarbeiten
2.7.3 Graphen und Screens: Daten anzeigen
2.7.4 Medien und Aktionen
2.8 Die Arbeitsschritte für Eilige
3 Zabbix 3: Was ist neu
3.1 Warten auf Zabbix 3
3.2 Die größten Neuerungen in Zabbix 3
3.2.1 Webfrontend
3.2.2 Verschlüsselung
3.2.3 SMTP-Authentifizierung
3.2.4 Kontextbezogene Makros
3.2.5 Uhrzeitgesteuertes Abrufen von Messwerten
3.3 Kleine Neuerungen
3.3.1 VMware-Monitoring
3.3.2 Housekeeper
3.3.3 Loglevel
4 Den Zabbix-Server installieren
4.1 Die Zabbix-Installation planen
4.2 Benötigte Komponenten
4.3 Hardware dimensionieren
4.4 Hinweis zu fertigen Paketen der Distributionen
4.5 Zabbix mit fertigen Paketen von Zabbix LLC installieren (empfohlen)
4.5.1 MySQL installieren
4.5.2 DEB-Pakete für Debian und Ubuntu nutzen
4.5.3 RPM-Pakete für Red Hat und CentOS verwenden
4.5.4 Problemfall CentOS 7.1 und Zabbix 2.4.5
4.6 Zabbix aus den Quellen installieren (kompilieren)
4.6.1 Das Betriebssystem für das Übersetzen der Quellen vorbereiten
4.6.2 Zabbix-Server kompilieren und installieren
4.6.3 Zabbix-Datenbank installieren
4.6.4 Zabbix-Server konfigurieren und starten
4.6.5 Start-Stop-Skripte für den Zabbix-Server
4.7 Firewall-Regeln erweitern
4.7.1 SUSE Firewall2
4.7.2 Red Hat und CentOS
4.8 Das Zabbix-Webfrontend
4.9 Webfrontend aus dem Zabbix-Paket-Repository installieren
4.9.1 Debian und Ubuntu
4.9.2 CentOS und Red Hat
4.10 Webserver, PHP und Webfrontend manuell installieren
4.11 Webfrontend konfigurieren
4.12 Hinweise zur Sicherheit des Webfrontends
5 Den Zabbix-Agenten installieren
5.1 Hinweise zum Zabbix-Agenten
5.2 Die Komponenten des Zabbix-Agenten
5.3 Zabbix-Agent mit den DEB- oder RPM-Paketen von Zabbix LLC installieren
5.4 Den Zabbix-Agenten aus den Quellen installieren
5.4.1 Zabbix-Agent kompilieren
5.4.2 Zabbix-Agent als Daemon einrichten
5.4.3 Start-Stop-Skripte für den Zabbix-Agenten
5.5 Den Zabbix-Agenten testen
5.6 Zabbix-Agent für Windows installieren
5.7 Zabbix-Agent konfigurieren
6 Schnellstart: In 5 Minuten zum ersten Alarm
6.1 Einleitung
6.2 Den ersten Host anlegen
6.3 Das erste Item anlegen
6.4 Die ersten Messwerte ablesen (Latest Data)
6.5 Den ersten Trigger einrichten
6.6 Den ersten Alarm auslösen (Action und Mediatype)
6.7 Wie geht’s weiter?
7 Daten sammeln: Hosts und Items konfigurieren
7.1 Hosts anlegen
7.1.1 Name
7.1.2 Groups, New Group
7.1.3 Interfaces
7.1.4 Monitored by proxy
7.1.5 Status
7.1.6 Templates
7.1.7 Clone, Full Clone
7.1.8 Verschlüsselung
7.2 Gruppen anlegen und Hosts zusammenfassen
7.3 So sammelt und speichert Zabbix die Daten
7.4 Der generelle Aufbau von Items
7.4.1 Itemname und die Datenquelle
7.4.2 Der Item-Key
7.5 Datentypen und Einheiten
7.5.1 Update interval
7.5.2 Historische Daten speichern
7.5.3 Differenzbildung und Werte-Mapping
7.5.4 Items kategorisieren, klonen und deaktivieren
8 Simple Checks: Daten ohne Agent sammeln
8.1 Was sind einfache Checks?
8.2 Beispiel: Webserver überprüfen
8.3 ICMP echo request einrichten
8.4 TCP-Portscans durchführen
9 Daten mit dem Zabbix-Agenten sammeln
9.1 Was ist der Zabbix-Agent?
9.1.1 Aufbau der Item-Keys
9.2 Beispiel 1: Neues Item anlegen
9.3 Beispiel 2: Items klonen
9.4 Welche Daten kann der Agent liefern?
9.4.1 Zabbix-Agent, Systeminformationen
9.4.2 Netzwerk
9.4.3 Prozesse
9.4.4 CPU-Auslastung
9.4.5 Speicher und Swap
9.4.6 Dateisysteme und Festplatten
9.4.7 Dateien
9.4.8 Sonstiges
9.5 Der Unterschied zwischen Zabbix-Agent und Zabbix-Agent (active)
10 Verschlüsselte Verbindungen
10.1 Zabbix 3 erforderlich
10.2 Pre-Shared Keys verwenden
10.2.1 Zertifikate verwenden
11 Daten visualisieren
11.1 Daten visualisieren mit Graphen
11.1.1 Graphen bringen den Durchblick
11.1.2 Einfache Graphen
11.1.3 Definierte Graphen anlegen
11.1.4 Die verschiedenen Graphentypen
11.2 Informationen zusammenstellen mit Screens
11.2.1 Informationen bündeln mit Screens
11.2.2 Inhalte in Screens einfügen
11.2.3 Dynamische Screens und Templates
11.2.4 Screens in Slideshows zeigen
11.3 Interaktive Karten
11.3.1 Interaktive Karten
11.3.2 Beispiel
12 Daten bewerten: Trigger einrichten
12.1 Das Trigger-Prinzip
12.2 Beispiel Prozessorauslastung überwachen
12.3 Einrichten eines Triggers
12.4 Beispiel: Kurvenausreißer erkennen
12.5 Triggerfunktionen im Detail
12.5.1 Differenzen
12.5.2 Durchschnitt
12.5.3 Erfolgreich abgerufene Daten
12.5.4 Gleich-ungleich-Prüfung
12.5.5 String-Vergleiche: Worte finden
12.5.6 Summen
12.5.7 Zeitstempel
13 Alarm auslösen: Medien und Aktionen einrichten
13.1 Kommunikation mit der Außenwelt: Medien einrichten
13.1.1 Zabbix kommuniziert mit der Außenwelt
13.1.2 E-Mail einrichten
13.1.3 SMS-Benachrichtigung einrichten
13.1.4 Eigene Medien hinzufügen
13.2 Alarm! Alarm! Aktionen einrichten
13.2.1 Alarmierung gleich Aktion
13.2.2 Eine neue Aktion anlegen
13.2.3 Eskalation
13.2.4 Makros für Aktionen
13.3 SMS über das Internet verschicken
13.3.1 Scriptpath setzen
13.3.2 Skripte als Medium einbinden
13.3.3 SMS per Sipgate HTTP-API senden
13.4 Telefonanrufe auslösen und SMS verschicken
13.4.1 SMS und Telefonanrufe per HTTP-API auslösen
13.4.2 Medien in Zabbix einrichten
13.5 SMS mit eigener Hardware verschicken
13.5.1 Gammu und Gammu-SMSD
13.5.2 Gammu installieren und Modem testen
13.5.3 SMS-Server einrichten
13.5.4 Gammu als Zabbix-Medium einrichten
13.5.5 SMS-Server monitoren
13.6 Benachrichtigungen auf dem Desktop erhalten
13.6.1 Warum Desktop-Nachrichten?
13.6.2 Das Benachrichtigungssystem Growl
13.6.3 Growl-Client konfigurieren
13.6.4 Growl als Medium im Zabbix-Server einrichten
13.7 Skripte: Kleine Helfer für den Notfall
13.7.1 Was sind Skripte?
13.7.2 Skripte anlegen
14 Benutzer und Berechtigungen verwalten
14.1 Wer darf was und bekommt wie und wann eine Nachricht?
14.2 Benutzer hinzufügen
14.3 Media, die Kommunikation mit dem Benutzer
14.4 Einstellungen vom Benutzer in seinem Profil
14.5 Gruppen anlegen und verwalten
15 Effizientes Arbeiten mit Templates
15.1 Effiziente Konfigurationen mit Templates
15.1.1 Die mitgelieferten Standardtemplates
15.2 Templates anlegen
15.2.1 Beispiel: Ping-Check-Template
15.3 Templates individualisieren mit Makros
15.3.1 Beispiel 1: Makros in Items
15.3.2 Beispiel 2: Makros in Triggern
15.3.3 Beispiel 3: Makros in Aktionen
15.4 Templates strukturieren
15.5 Hostspezifische Items automatisch erzeugen (Low Level Discovery)
15.5.1 Beispiel 1: Dateisysteme erkennen
15.5.2 Beispiel 2: Netzwerkgeräte automatisch hinzufügen
15.5.3 Eigene Discovery-Regeln erstellen
16 SNMP
16.1 Zabbix und SNMP
16.1.1 Simple Network Management Protocol (SNMP)
16.1.2 OIDs identifizieren
16.1.3 Geräte per SNMP mit Zabbix überwachen
16.1.4 Dynamische Schlüssel-Wert-Paare
16.1.5 Low-Level-Discovery per SNMP
16.2 SNMP-Traps empfangen
16.2.1 snmptrapd und snmptt installieren
16.2.2 Zabbix-Server und Proxy konfigurieren
16.2.3 Items und Trigger einrichten
16.3 Beispiel: Dell iDrac per SNMP überwachen
16.3.1 Dell iDrac spricht SNMP
16.3.2 SNMP in iDrac aktivieren
16.3.3 Ein Template erstellen
16.4 SNMP-Agenten einrichten
16.4.1 Es geht auch ohne Zabbix-Agenten
16.4.2 SNMP-Agent einrichten
17 Hardware per IPMI überwachen
17.1 Hardware überwachen mit IPMI
17.2 IPMI auf der Hardware aktivieren
17.2.1 Beispiel 1: IPMI mit Dell-iDrac
17.2.2 Beispiel 2: Supermicro KVM
17.2.3 Beispiel 3: Intel RMM3
17.3 IPMI-Poller starten
17.4 IPMI-Item einrichten
17.4.1 Den Zugriff per IPMI testen
17.4.2 IPMI-Überwachung für einen Host hinzufügen
17.4.3 Ein IPMI-Item einrichten
17.5 Problemfall »Discrete Sensors«
17.5.1 Beispiel: Discrete Sensors in Dell-iDrac
17.5.2 Diskrete Sensoren per ipmitool auslesen
18 Geräte per SSH und Telnet überwachen
18.1 Warum SSH und Telnet?
18.2 Authentifizierung
18.2.1 Passwort
18.2.2 SSH-Keys
18.3 Item anlegen
18.3.1 Optionen für Telnet- und SSH-Items
18.4 Beispiel: Embedded-Linux-Systeme überwachen
18.5 Nützliche Kommandos
19 Webseiten auf Verfügbarkeit und Inhalte prüfen
19.1 Webszenario
19.2 Webszenarios einrichten
19.2.1 Einen Host auswählen
19.2.2 Test anlegen
19.2.3 Schritte (URLs) hinzufügen
19.2.4 POST-Daten verwenden
19.2.5 Ergebnisse der Webtests auswerten
19.2.6 Trigger für Webszenarios einrichten
19.3 Alternativen zu Webszenarios
19.3.1 Webtest mit Bash und Curl
20 Eigene Datenquellen: Zabbix erweitern
20.1 Den Zabbix-Agenten mit eigenen Datenquellen verbinden
20.2 User-Parameter einrichten
20.3 Regeln und Hinweise für User-Parameter
20.4 Berechtigungen
20.5 Wenn es klemmt
20.5.1 Checkliste
20.5.2 Items über den Agent testen
20.5.3 Item per zabbix_get testen
20.6 Beispiel: Fehlgeschlagene Login-Versuche überwachen
20.7 Den Zabbix-Server mit eigenen Datenquellen erweitern
20.8 Externe Skripte aktivieren
20.9 Ein Skript als Item verwenden
20.9.1 Der erste Test
20.9.2 Item anlegen
20.10 Hinweise und Rahmenbedingungen für externe Skripte
20.11 Beispiel: Ablauf von SSL-Zertifikaten prüfen
21 Daten aus beliebigen Quellen mit dem Zabbix-Sender schicken
21.1 So funktioniert der Zabbix-Sender
21.1.1 Was macht Zabbix-Sender?
21.1.2 Den Zabbix-Trapper konfigurieren
21.1.3 Item anlegen
21.1.4 Daten schicken
21.2 Beispiel: Linux-Sicherheitsupdates monitoren
21.2.1 Anzahl der verfügbaren Security-Updates für Linux monitoren
21.2.2 Red Hat und CentOS
21.2.3 Ubuntu und Debian
21.3 Beispiel: Windows-Updates monitoren
21.3.1 Verfügbare Updates per Skript abfragen
21.3.2 Items und Trigger einrichten
21.3.3 Geplanten Task anlegen
22 Daten berechnen und zusammenfassen: Calculated Items
22.1 Daten berechnen und zusammenfassen
22.2 Calculated Items
22.2.1 Beispiel 1: IO-Operationen summieren
22.2.2 Beispiel 2: Prozentwerte berechnen
22.3 Aggregated-Items
22.3.1 Beispiel: Aggregated Item einrichten
23 Microsoft Windows überwachen
23.1 Besonderheiten unter Microsoft Windows
23.2 Den Status von Windows-Diensten überwachen
23.3 Performance-Counter
23.3.1 Numerische Referenzen verwenden
23.4 Wichtige Leistungsindikatoren (Performance-Counter)
23.4.1 Datenträger
23.4.2 Prozessor
23.4.3 Netzwerk
23.4.4 Arbeitsspeicher
23.4.5 Exchange
23.5 Netzwerkkarten identifizieren
23.6 Monitoring per Windows Management Instrumentation (WMI)
23.6.1 WMI-Objekte finden
23.6.2 WMI-Items anlegen
23.7 PowerShell als User-Parameter
24 VMware ESX überwachen
24.1 Der Zabbix VMware Collector
24.1.1 Technisches Konzept
24.1.2 VMwareCollector aktivieren
24.1.3 Items einrichten
24.1.4 Discovery-Regeln
24.2 Die Hardware von ESX-Servern überwachen
24.2.1 ESX CIM-API
24.2.2 CIM-API mit Zabbix abfragen
24.2.3 ESX-Hardwareüberwachung in Zabbix einrichten
25 Informationen aus Datenbanken auslesen
25.1 Datenbanken als Informationsquelle
25.2 UnixODBC per Paketmanager installieren
25.3 UnixODBC und Zabbix-Server aus dem Quellcode installieren
25.3.1 UnixODBC installieren
25.3.2 Zabbix mit UnixODBC kompilieren
25.3.3 Datenbanktreiber installieren
25.4 ODBC-Verbindungen und DSN einrichten
25.4.1 UnixODBC testen
25.5 Items vom Typ Database-Monitor einrichten
25.5.1 Vorgaben für die SQL-Abfragen
26 Logfiles und Systemevents überwachen
26.1 Logfiles mit aktiven Checks überwachen
26.2 Den Agent vorbereiten
26.2.1 Hostname im Agenten konfigurieren
26.2.2 Zabbix-Serveradresse im Agenten konfigurieren
26.2.3 Netzwerk, Routing und NAT prüfen
26.3 Leserechte für Logfiles einräumen
26.4 Items zur Logfile-Überwachung einrichten
26.4.1 Rotierende Logfiles
26.4.2 Zeitstempel erhalten
26.5 Überwachen des Windows-Eventlogs
26.6 Trigger einrichten für die Logfile-Überwachung
27 Java JMX-Monitoring mit Zabbix
27.1 Was ist Java- und JMX-Monitoring?
27.2 Zabbix-Java-Gateway
27.2.1 Java-Gateway aktivieren
27.2.2 Java-Gateway als Datenlieferant für den Zabbix-Server
27.3 JMX in einer Applikation aktivieren
27.3.1 Beispiel Jedit
27.3.2 Beispiel Ubuntu und Tomcat 7
27.3.3 Passwortschutz
27.4 JMX-Items einrichten
27.5 Beispiele von JMX-Monitoring-Objekten
27.5.1 Heap space in Java?
27.5.2 Wichtige Parameter eines Java-Prozesses
28 Die Zabbix-API
28.1 Was ist die Zabbix-API?
28.2 Ein Perl-Beispiel
28.3 PHP-Klassenbibliothek
28.3.1 Beispiel 1: Trigger abrufen
28.3.2 Beispiel 2: Einen neuen Host anlegen
28.4 Ein Python-Beispiel
29 Hosts hinzufügen mit Hostdiscovery und Autoregistration
29.1 Automatisches Hinzufügen von Hosts
29.2 Autoregistration
29.2.1 Trapper aktivieren
29.2.2 Zabbix-Agent vorbereiten
29.2.3 Regeln festlegen
29.3 Discovery
29.3.1 Netz scannen
29.3.2 Scanergebnisse verarbeiten
30 Distributed Monitoring mit Zabbix-Proxys
30.1 Was ist der Zabbix-Proxy?
30.2 Zabbix-Proxy installieren
30.3 Zabbix-Proxy aus den Quellen kompilieren
30.3.1 Die Datenbank anlegen
30.3.2 Ein Start-Stop-Skript anlegen
30.4 Die Proxy-Modes: Aktiv vs. Passiv
30.5 Proxys einrichten
30.5.1 Proxys benennen: Der Name ist alles!
30.5.2 Aktiv-Modus
30.5.3 Passiv-Modus
30.5.4 Proxy starten und testen
30.6 Hosts über einen Proxy überwachen
30.7 Proxys überwachen
30.8 Beispiel: Georedundantes Monitoring mit Proxys
30.9 Einstellungen zur Proxy-Performance
31 Zabbix-Internas überwachen
31.1 Einleitung
31.2 Auslastung der Zabbix-internen Prozesse monitoren
32 System und Datenbank tunen für große Setups
32.1 Hardware richtig dimensionieren
32.1.1 LogSlowQueries aktivieren
32.2 MySQL-Datenbank tunen
32.2.1 MySQL Bufferpool erhöhen
32.2.2 MySQL Innodb-Logfile vergrößern
32.2.3 Festplattenzugriffe reduzieren
32.2.4 MySQL Buffer-Pool-Instanzen erhöhen
32.2.5 Innodb-Plugin nutzen
32.2.6 Transaktionssicherheit reduzieren
32.2.7 Das Dateisystem tunen
32.2.8 IO-Schedulers wechseln
33 Backup des Zabbix-Servers
33.1 Backup des Zabbix-Servers erstellen
33.2 Die MySQL-Datenbank sichern
33.2.1 MySQL-Dump
33.2.2 Percona XtraBackup
33.3 Backup regelmäßig ausführen
33.4 Weiterführende Hinweise
34 Zabbix als virtuelle Appliance installieren
34.1 Einen passenden Virtualisierer auswählen
34.2 Zabbix-Appliance mit Virtual Box
34.3 Zabbix-Appliance mit VMware installieren
34.3.1 Appliance Headless starten
34.3.2 Appliance automatisch starten
34.4 Die Appliance benutzen und konfigurieren
34.4.1 An der Applicance anmelden
34.4.2 Hilfsprogramme
34.4.3 Eine feste IP-Adresse für die VM einrichten
Index
Die Anzahl der IT-Systeme wächst stetig. Täglich kommen neue Server und Geräte in unsere Netzwerke. Doch die Anzahl der Personen, die diese Netzwerke betreuen, wächst nicht im gleichen Maße, wie neue Geräte hinzukommen. Effektives und effizientes Monitoring wird zu einem entscheidenden Faktor, damit Systeme und Netzwerke stabil bleiben. Zabbix bietet seit mehr als 10 Jahren eine Monitoring-Lösung für den Unternehmenseinsatz.
In diesem Buch erfahren Sie alles über Monitoring mit Zabbix. Es ist ein Buch für die Praxis. Neben den Grundlagen werden auch die Spezialthemen wie Skalierung, Tuning und Erweiterung von Zabbix erläutert. Der Autor gibt zahlreiche konkrete Beispiele aus seinem beruflichen Einsatz von Zabbix. Das Buch richtet sich gleichermaßen an Anfänger und Profis. Wenn Sie noch nicht mit Zabbix überwachen, lernen Sie Schritt für Schritt die Einrichtung eines professionellen IT-Monitorings. Wenn Sie bereits Zabbix nutzen, gibt Ihnen das Buch viele Tipps aus der Praxis und sofort nutzbare Beispiele, wie Sie konkrete Anforderungen mit Zabbix umsetzen.
Zabbix ist ein großer Baukasten, mit dem Sie ein hoch professionelles Monitoring sowohl für einfache als auch für sehr komplexe EDV-Systeme aufbauen können. Für sehr viele Bedürfnisse und Anwendungsfälle verfügt Zabbix über fertige Lösungen in Form von Modulen, Checks, Programmen oder Konfigurationsbeispielen.
Für einige andere Anwendungsfälle gibt es keine Lösung »von der Stange«. Doch dafür bietet Ihnen Zabbix zahlreiche Schnittstellen, Erweiterungsmöglichkeiten und eine mächtige API. Es gibt fast nichts, was Sie nicht mit Zabbix überwachen können.
Sie müssen nur wissen, wie Sie den Inhalt des Baukastens richtig einsetzen. Nutzen Sie dieses Buch ebenfalls wie einen Baukasten. Vielleicht ist nicht die 100% passende Lösung für Ihr Bedürfnis beschrieben. Doch die zahlreichen Beispiele werden Ihnen sicher helfen, Ihre passende Lösung zu erstellen.
Die Reihenfolge der Kapitel ist so angeordnet, dass Sie sich zuerst mit den wichtigsten Aspekten und der Installation von Zabbix auseinandersetzen. Sobald Sie ein erstes Verständnis haben, können oder sollten Sie zwischen den Kapiteln hin und her wechseln, je nachdem welche Aspekte von Monitoring Sie interessieren. Wie fast jedes Buch über eine Software, so ist auch dieses nicht dafür gedacht, dass Sie es von vorne nach hinten komplett durchlesen. Wenn Sie eine Monitoring-Software wie Zabbix installieren und einrichten, müssen Sie sich zwangsläufig mit verschiedenen Aspekten gleichzeitig beschäftigen.
Wenn Sie schnell in Zabbix einsteigen wollen, sollten Sie sich zuerst mit der Terminologie von Zabbix und der Funktionsweise von Zabbix-Server und -Agenten vertraut machen. Besonders das Zusammenspiel von Daten sammeln (Item) und Daten bewerten (Trigger) muss klar sein.
Alle Kapitel enthalten viele Beispiele. Wenn Sie schnell und praxisorientiert in Zabbix einsteigen möchten, stürzen Sie sich auf die Beispiele. Diese sind mit einer Glühbirne markiert, so dass Sie schnell von einem Beispiel zum nächsten springen können.
So steigen Sie noch schneller in Zabbix ein
Wenn Sie sich dieses Buch zugelegt haben, um zu klären, ob Zabbix die geeignete Monitoring-Lösung für Sie ist, dann testen Sie die Software mit der virtuellen Appliance. Die Kapitel, die sich mit der Installation von Server und Agent befassen, sollten Sie erst einmal überspringen. Beschäftigen Sie sich erst einmal mit den Funktionen von Zabbix.
Wenn Sie Zabbix sofort in Aktion sehen möchten, konzentrieren Sie sich nach einer kurzen Lektüre der Terminologie auf die Beispiele. Sie werden Schritt für Schritt durch den Aufbau eines professionellen Monitorings geführt. Detailfragen, die sich ggf. beim Durcharbeiten der Übungen ergeben, klären Sie dann durch gezieltes Nachlesen in den entsprechenden Kapiteln.
In diesem Buch werden die folgenden typografischen Stile verwendet:
Monospace-Schrift wird für Dateinamen, Variablen und Konfigurationsoptionen verwendet, zum Beispiel Server = localhost.
Links, Schaltflächen und Menüeinträge, die sich auf die Weboberfläche beziehen, werden kursiv gedruckt. Einträge in verschachtelte Menüs werden mit einem Pipe-Zeichen abgetrennt, zum Beispiel Configuration|Hosts.
Programmcode, Terminalausgaben oder größere Blöcke einer Konfigurationsdatei werden in einem grau hinterlegten Block in Monospace-Schrift gedruckt, zum Beispiel
chown zabbix /var/run/zabbix
chown zabbix /var/log/zabbix
Lange Terminaleingaben werden oft über mehrere Zeilen dargestellt, obwohl es sich um nur eine Eingabe handelt. Wie auch in der Bash-Eingabe werden Zeilenumbrüche mit einem Backslash vorgenommen. Am Ende der Zeile erfolgt mit der Enter-Taste also nicht das Auslösen der Eingabe, sondern das Kommando wird in einer weiteren Zeile fortgeführt. Beispiel:
echo "Ein sehr\
langes Kommando"
Es handelt sich um nur ein Kommando, welches Sie auch wie folgt eingeben können:
echo "Ein sehr langes Kommando"
Obwohl eine deutschsprachige Variante der Zabbix-Weboberfläche existiert, beziehen sich alle Anleitungen und Screenshots immer auf die englischsprachige Version von Zabbix. An dieser Stelle sei Ihnen auch empfohlen, Zabbix auf Englisch zu verwenden. Dies erleichtert Ihnen später die Suche nach weiteren Informationen im Internet oder dem Zabbix-Support-Forum. Dort werden so gut wie alle Fragen nur auf Englisch geklärt. In Konfigurationsdateien oder in Software von Drittanbietern werden die Begriffe der deutschsprachigen Zabbix-Version ebenfalls nicht verwendet. Um Missverständnisse zu vermeiden und eine einheitliche Terminologie zu verwenden, werden englischsprachige Fachbegriffe nicht ins Deutsche übersetzt. Englisch ist nun einmal die Sprache der Computer- und Internetwelt.
Die perfekten IT-Systeme, die zuverlässig und ohne Fehler ihre Dienste tun, gibt es nicht. Ein funktionierendes IT-System ist kein Zustand, sondern ein Prozess, der von Menschen (Administratoren) permanent begleitet werden muss.
Zahlreiche Ereignisse sorgen immer wieder dafür, dass ein IT-System seinen Dienst versagt. Verschleißteile wie Festplatten, fehlerhafte Bedienung, bösartige Angriffe oder das Versäumen von regelmäßigen Pflegeaufgaben sind nur einige Gründe, warum Fehler und Ausfälle auftreten. Und spätestens dann, wenn Ihr Kunde schneller als Sie bemerkt, dass ein System nicht mehr funktioniert, brauchen Sie ein Monitoring.
Die folgenden Aufgaben sollte ein Monitoring-System für Sie erledigen:
den Status aller Komponenten erfassen
Daten aufbereiten, sortieren und bewerten
übersichtliche Zusammenfassungen präsentieren
Abweichungen vom Normalzustand erkennen
Alarm auslösen
Zustände und Veränderungen protokollieren
die Einhaltung von Prozessen oder eine Abweichung überwachen und protokollieren
Je größer ein IT-System ist, desto schwieriger wird es, den Überblick über den Zustand des gesamten Systems und aller Einzelkomponenten zu behalten. Entsprechend muss das Monitoring-System komplexere Aufgaben als die zuvor beschriebenen erfüllen.
Einen Alarm zu senden, wenn ein Fehler auftritt, ist eine wichtige, aber bei weitem nicht die einzige Aufgabe eines Monitoring-Systems. Monitoring heißt, viele Daten zu sammeln und automatisiert die richtigen Schlüsse zu ziehen. Fällt eine Komponente aus, ist es nicht schwer, daraus zu schlussfolgern, dass ein Problem vorliegt! Es sollte sich jemand darum kümmern! Ab einer gewissen Anzahl von Systemen gehören Meldungen des Monitoring-Systems zum Alltag. Das Monitoring-System sollte harmlose von schweren Fehlern unterscheiden und je nach Schweregrad unterschiedliche Medien zur Benachrichtigung nutzen können.
Neben der Erkennung von Fehlern sollte ein Monitoring-System Schlüsse oder konkrete Aussagen zur Zuverlässigkeit von Systemen und Komponenten ermöglichen. Dazu ist das Speichern historischer Daten notwendig. Dabei sollte das System eine Schnittstelle und ein sogenanntes User-Interface zur Verfügung stellen, um die gespeicherten Daten schnell und bequem auswerten zu können.
IT-Verantwortliche und Systemadministratoren möchten mithilfe eines Monitoring-Systems auch vorbeugen, dass eine Komponente oder ein Dienst ausfällt. Dafür ist in der Regel die Auswertung vieler Daten notwendig. Die Performance von Komponenten und Diensten und die Auslastung der Infrastruktur muss ebenfalls permanent gemessen und grafisch dargestellt werden. Ein einfaches Beispiel ist der freie Speicher auf einer Festplatte. Wenn das Monitoring-System einen Anstieg des verbrauchten Speichers von X GB pro Tag berechnet, ist es nicht schwer, vorherzusagen, wann die Fesplatte voll sein wird.
Wenn nun ein Dienst auf fünf Server mit insgesamt 20 Festplatten zugreift, wollen Sie an einem Sonntagabend nicht in der Wochenendruhe gestört werden, nur weil eine Festplatte voll ist. Nun hat das Monitoring-System eine komplexe Aufgabe zu bewerkstelligen und muss die Daten von 20 Festplatten, fünf Servern, einem Dienst, den Wochentag und die Uhrzeit zu einer »Entscheidung« verarbeiten: Geht ein Alarm raus, oder nicht?
Performancedaten werden aber nicht zur Prognose des nächsten Ausfalls gebraucht. Ein Monitoring-System sammelt viele Daten auf Verdacht, ohne dass diese automatisiert ausgewertet werden. Diese Daten brauchen Sie, um nicht vorhersehbare Störfalle zu erklären. Ein einfaches Beispiel sind die Besucherzahlen auf einer Webseite. Wenn nun der Webserver »abstürzt«, können Sie sich die Besucherzahlen als Graphen anschauen. Wenn dem Ausfall des Webservers ein ungewohnt hoher Anstieg der Besucherzahlen vorausging, wäre dies eine plausible Erklärung für den Ausfall. Die hohen Besucherzahlen könnten eine so hohe Last verursacht haben, dass der Server abgestürzt ist.
Auch für die Planung und den Ausbau der Hardware ist es wichtig zu wissen, wie stark die Hardware in der Vergangenheit ausgelastet war.
Kunden wünschen oft einen Verfügbarkeitsreport. Oder vielleicht berechnen Sie Ressourcen je nach Verbrauch an Kunden. Auch das ist eine Aufgabe des Monitoring-Systems.
Die Anforderungen an ein IT-Monitoring-System können zusammenfassend in fünf Kategorien eingeordnet werden
Zustand des Systems beobachten
• »End-to-End«-Monitoring, bei dem der ausgelieferte Dienst so nah wie möglich am Endbenutzer auf Funktionsfähigkeit geprüft wird
• Statuserfassung aller Dienste, Software und Hardware
• Langzeitspeicherung von Informationen über die Verfügbarkeit von Diensten und Komponenten
Alarmierung
• das manuelle Eingreifen ins System verlangen
• einen Mitarbeiter so gut wie möglich über die Ursache eines Fehlers informieren.
• Reaktionszeiten und die Fehlerbehebung dokumentieren
Diagnose
• genügend Informationen sammeln, um eine detaillierte Ursachenanalyse zu ermöglichen
• Informationssammlung für Entscheidungen
Qualitätsmessung
• Datensammlung über die Leistungsfähigkeit und den Durchsatz des Systems und Teilkomponenten
• Erfassung von vereinbarten Grenzwerten und deren Einhaltung
• Identifikation von Engpässen, Überlastungen und Implementierungsfehlern
Konfiguration
• Überwachung von standardisierten Konfigurationen
• Warnen bei Abweichungen von einem standardisierten Vorgehen
Besonders der letzte Punkt, die Überwachung von standardisierteren Konfigurationen, wird oft vernachlässigt. Eine Konfiguration gemäß des vereinbarten Standards ist aber für ein stabiles System essenziell. Oder anders formuliert: Die Ursache für Probleme sind häufig Änderungen an der Umgebung! Woher kommt der in IT-Kreisen oft zitierte Spruch »Never touch a running system«? Der Grund ist, dass einmal gut laufende Systeme oft jahrelang ohne Probleme weiterlaufen. Korrekt konfigurierte Systeme minimieren das Risiko von Ausfällen.
Ihr Monitoring-System sollte in der Lage sein, die folgenden Aspekte der Systemkonfiguration zu dokumentieren und bei Abweichungen zu alarmieren:
Wann wurden Änderungen an der Konfiguration vorgenommen? Wenn beispielsweise die Änderung an einer Apache-Konfigurationsdatei und der spätere Ausfall des Webservers in ein gemeinsames kleines Zeitfenster passen, liegt die Vermutung nahe, dass die Änderung für den Ausfall verantwortlich ist.
Wird die richtige (vereinbarte) Software eingesetzt? Manche Mitarbeiter experimentieren auch mit kritischen Systemen. Monitoren Sie nicht nur, dass irgendein Mailserver läuft. Monitoren Sie, dass der in Ihrer Firma vereinbarte Standardmailserver läuft.
Wann wurden Updates und Patches eingespielt? Das Monitoring sollte also stets dokumentieren, welche Version und welches Release von einer Software im Einsatz war.
Gibt es Sicherheitsupdates für Software und das Betriebssystem und wann wurden diese Updates eingespielt?
Die oben genannten Anforderungen an ein Monitoring-System klingen kompliziert? Mit der richtigen Software ist es das aber nicht. Zabbix ist eine Monitoring-Software, die diese Ziele erfüllt. Nun könnten Sie einwenden, dass man für die genannten Aufgaben keine spezielle Software braucht. Ein paar Skripte oder ein Internetdienst wie pingdom.com