datenbankmonitoring mit open source-mitteln open source, nagios einleitung nagios ist ein...

8
Datenbankmonitoring mit Open Source-Mitteln Peter Geigle Essential Bytes GmbH & Co. KG Wiesbaden Schlüsselworte: Monitoring, Open Source, Nagios Einleitung Nagios ist ein OpenSource-System, das für die Überwachung unterschiedlichster Systeme verwendet werden kann. Der Einsatzbereich reicht von Hardware, Betriebssystem über Umgebungstemperaturen bis hin zu detaillierten Überwachungen von Applikationen und Datenbanken. Für die Oracle Datenbank kann das Monitoring eingerichtet werden, um diverse Betriebsparameter zu überwachen. Standardmäßig werden bei einer Neuinstallation von Nagios einige wenige Skripte mitgeliefert, die grundlegende Überwachungs-Checks durchführen können. Für eine ganzheitliche Betrachtung im Enterprise Umfeld reicht dies aber nicht aus. Ziel ist es, die Datenbank im gesamten in unterschiedlichen Zeitabständen und mit unterschiedlichem Detaillierungsgrad zu überwachen. Um dieses Ziel zu erreichen, wurden von uns unterschiedliche Scripte geschrieben. Zum einen sind Prüfungen implementiert worden, die den aktuellen Zustand der Datenbank bewerten, speziell Verfügbarkeit, Auslastung und Antwortzeiten. Um längerfristige Aussagen machen zu können, wurde eine zweite Klasse von Prüfungen erstellt, die in längeren Zeitabständen Betriebsdaten abgreifen. Hierunter fallen beispielsweise Prüfungen des Füllgrades von Tablespaces und der Größe von Datafiles. Als dritte Kategorie werden Healthchecks angeboten, die in größeren Zeitintervallen ausgeführt werden. Hierbei wird der prinzipielle Zustand der Datenbank bewertet, beispielsweise Konformität der Schemas mit Firmenrichtlinien oder die Darstellung der Trends bei Speichermengen und Last. Der Vergleich der gesammelten Performancedaten und der Abgleich mit einer Baseline ist möglich. Nicht nur die Datenbank, sondern auch die darauf aufsetzenden Applicationserver und Anwendungen können(müssen) in die Überwachung mit einbezogen werden, um ein durchgängiges Monitoring zu ermöglichen. Da aus allen Schichten (Hardware, Betriebssystem, Datenbank, Application Server und Anwendung) Performancedaten ermittelt werden können, ist jederzeit ein Gesamtüberblick über die komplette Infrastruktur gewahrt und durch Benachrichtigung der Administratoren eine zeitnahe Reaktion auf Probleme möglich.

Upload: tranmien

Post on 17-Jun-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

Datenbankmonitoring mit Open Source-Mitteln

Peter Geigle Essential Bytes GmbH & Co. KG

Wiesbaden Schlüsselworte: Monitoring, Open Source, Nagios Einleitung Nagios ist ein OpenSource-System, das für die Überwachung unterschiedlichster Systeme verwendet werden kann. Der Einsatzbereich reicht von Hardware, Betriebssystem über Umgebungstemperaturen bis hin zu detaillierten Überwachungen von Applikationen und Datenbanken. Für die Oracle Datenbank kann das Monitoring eingerichtet werden, um diverse Betriebsparameter zu überwachen. Standardmäßig werden bei einer Neuinstallation von Nagios einige wenige Skripte mitgeliefert, die grundlegende Überwachungs-Checks durchführen können. Für eine ganzheitliche Betrachtung im Enterprise Umfeld reicht dies aber nicht aus. Ziel ist es, die Datenbank im gesamten in unterschiedlichen Zeitabständen und mit unterschiedlichem Detaillierungsgrad zu überwachen. Um dieses Ziel zu erreichen, wurden von uns unterschiedliche Scripte geschrieben. Zum einen sind Prüfungen implementiert worden, die den aktuellen Zustand der Datenbank bewerten, speziell Verfügbarkeit, Auslastung und Antwortzeiten. Um längerfristige Aussagen machen zu können, wurde eine zweite Klasse von Prüfungen erstellt, die in längeren Zeitabständen Betriebsdaten abgreifen. Hierunter fallen beispielsweise Prüfungen des Füllgrades von Tablespaces und der Größe von Datafiles. Als dritte Kategorie werden Healthchecks angeboten, die in größeren Zeitintervallen ausgeführt werden. Hierbei wird der prinzipielle Zustand der Datenbank bewertet, beispielsweise Konformität der Schemas mit Firmenrichtlinien oder die Darstellung der Trends bei Speichermengen und Last. Der Vergleich der gesammelten Performancedaten und der Abgleich mit einer Baseline ist möglich. Nicht nur die Datenbank, sondern auch die darauf aufsetzenden Applicationserver und Anwendungen können(müssen) in die Überwachung mit einbezogen werden, um ein durchgängiges Monitoring zu ermöglichen. Da aus allen Schichten (Hardware, Betriebssystem, Datenbank, Application Server und Anwendung) Performancedaten ermittelt werden können, ist jederzeit ein Gesamtüberblick über die komplette Infrastruktur gewahrt und durch Benachrichtigung der Administratoren eine zeitnahe Reaktion auf Probleme möglich.

Nagios und andere OpenSource Monitoring Systeme Welche OpenSource Monitoring Systeme gibt es neben Nagios? GroundWork GroundWork ist ein Überwachungssystem, das aus vielen OpenSource Programmen besteht. Ein Bestandteil davon ist Nagios. Somit entspricht der Umfang der Überwachung dem von Nagios, da es teilweise darauf aufbaut. [Quelle: http://www.groundworkopensource.com/community/open-source/ ] OpenNMS OpenNMS ist ein Enterprise Network Management System, das auf der Basis von OpenSource entwickelt wurde und von einer aktiven Community kontinuierlich weiterentwickelt wird. Zenoss Zenoss ist ein kommerzielles OpenSource-Projekt. Der Zenoss-Kern ist frei verfügbar dadurch sollen sich Innovationen schneller durchsetzen, des Weiteren die Kontrolle sowie die Transparenz gesteigert werden. [Quelle: http://www.zenoss.com/about/open-source-IT-management#coss ] Was ist Nagios? Nagios(früher NetSaint) ist ein Überwachungssystem das unter GPL Lizenz steht. Nagios ist eine präventive Überwachungslösung für komplexe IT-Infrastrukturen. Grundsätzlich soll die Überwachung zur Erhöhung der Verfügbarkeit von verschiedenen IT-Infrastrukturen dienen. Das Überwachungskonzept von Nagios baut auf kleinen Modulen auf. Diese können in C, C++, Java, C#, Perl, Python oder PHP erstellt werden. Die Module müssen lediglich in der Lage sein, bei ihrer Beendigung einen Statuswert an Nagios zu senden und Ausgaben an die Standardausgabe tätigen zu können. Auf den empfangenen Status reagiert Nagios dann mit entsprechenden Aktionen. Wird ein Fehler nach einer einstellbaren Zeit nicht behoben, startet Nagios hierfür einen Eskalationsmechanismus. So kann Nagios den nächsten Verantwortlichen infomieren. Dabei ist es möglich Nagios anzuweisen, sich per E-Mail, SMS, Pager, IM-Messages oder per Telefonanruf zu melden. Nagios unterscheidet 3 unterschiedliche Statusmeldungen. 0 bedeutet „okay“, 1 steht für „Warning“, und die höchste Stufe ist „Critical“ mit dem Statuswert von 2. Beispielhaft wird im Bild ein Festplattenkapazitäts check dargestellt. Das Modul, das für die Überprüfung des Speicherplatztes verantwortlich ist, wird mit 3 Parametern aufgerufen. Einer der Parameter gibt den Schwellwert für die Warnmeldung an, ein weiterer den Schwellwert für Critical und der letzte Parameter gibt an, welche Festplatte überprüft werden soll. Wird nun der Warning-Schwellwert überschritten so zeigt Nagios dies auf der Oberfläche an. Sobald der Schwellwert für Critical überschritten wird, reagiert Nagios mit einer Meldung.

Abb. 1: Der Check c:\Drive_Space ist Gelb hinterlegt und mit einer Warnmeldung versehen.

Abb. 2: Beispielhafte Meldung von Nagios per email (hier bei einem Server Absturz). Das Modulkonzept von Nagios ermöglicht es, schnell und einfach eigene Module zu erstellen. Somit werden möglichst viele Überwachungsmöglichkeiten erreicht. Weiterhin ist Nagios durch sogenannte Addons erweiterbar wie z.B. einem grafischen Konfigurationssystem NagiosQL oder dem Visualisierungs-Addon NagVis, das die IT- Umgebung in einer konfigurierbaren Grafik darstellt.

Abb. 3: Das Addon NagVis Serverseitig benötigt Nagios eine UNIX-Variante sowie einen C-Compiler. Clientseitig werden alle gängigen Systeme unterstützt: Microsoft Windows, Mac OS X, Linux, Unix. Benötigt wird lediglich die freie Clientumgebung NSClient++ oder nrpe. Was ist Nagios nicht? Nagios selbst bietet keine vordefinierten Überwachungen, Module sind zwar verfügbar müssen jedoch eingerichtet werden. Mit Nagios ist keine Server- oder Clientsteuerung möglich, dies kann jedoch durch eigene Scripte nachgebildet werden. Die Nagios-Oracle Überwachung Wir unterteilen die Oracle Checks in 3 Unterkategorien. Die erste Unterkategorie beinhaltet Checks die in kurzen Intervallen ausgeführt werden und den derzeitigen Stand der Datenbank wiedergeben.

1. Überprüfung der Listener Verfügbarkeit, Dauer eines Connectversuchs, Dauer TNS-Ping.

2. Die Antwortzeit des Servers wird geprüft (falls der Server nicht erreichbar ist, meldet Nagios nicht Datenbank, Listener oder andere Teilprozesse als “down“, sondern den Server als unerreichbar).

3. Es wird geprüft, ob alle wichtigen Oracle Prozesse laufen. 4. Es wird überprüft, ob die Last auf der Datenbank selbst zu hoch ist. Dies wird über

einen Vergleich der aktuellen Last mit einer zuvor erstellten Baseline verglichen. 5. Überprüfung des Alert-Logs auf neue kritische Einträge. 6. Meldung von Deadlocks. 7. Meldung von blockierten und blockierenden Sessions. 8. Meldung bei Fehgeschlagenem Backup.

Diese Checks sorgen dafür dass man jederzeit den derzeitigen Zustand der Datenbank sowie der einzelnen Teilprozesse überblickt und bei Bedarf schnell reagieren kann. Die Zweite Unterkategorie beinhaltet Checks, die in größeren Abständen ausgeführt werden. Diese werden interpretiert und als Performancedaten gespeichert und zeigen hierdurch den Trend an.

1. Füllgrad und Wachstum des Fileystems 2. Füllgrade von Tablespaces 3. Größe der Datafiles 4. Größe und Wachstum der Archivelogs 5. Plattenzugriffe, Durchsatz und Peaks 6. Prozessornutzung

Abb. 4: Diese Checks zeigen einen Trend über die Entwicklung des Füllgrades des Tablespace users an. Die dritte Unterkategorie beinhaltet Checks, die Nagios nicht Interpretieren kann. Diese Checks zeigen entweder nur einen Trend an, oder müssen im Gesamten vom Benutzer interpretiert werden.

1. Nicht indizierte Foreign-Key-Spalten 2. Ungültige Objekte

3. Offline Tablespaces 4. Anzeige von Dateien, die nicht wieder hergestellt werden können. 5. Prüfen des Backups auf Integrität. 6. Rollen und Benutzerrechte 7. Systemprivilegien 8. Anmeldung als privilegierter Benutzer 9. OFA-Standards eingehalten 10. Firmenstandards eingehalten

Diese Checks decken einen großen Informationsumfang ab. Dadurch muss der Administrator nur an einer Stelle analysieren, um Probleme und Schwächen der Datenbank zu finden. Das von uns angefertigte OracleModul dient als Framework und zentrale Anlaufstelle für die Verwaltung der einzelnen Oracle Checks. Das Modul ruft Skripte auf, die die Datenbank abfragen. Die zurückgegebenen Werte der Abfragen werden an das Modul zurückgegeben, welches die Werte interpretieren kann und wiederum an Nagios weitergibt.

Abb 5: Funktionsweise des Oracle Frameworks Zusätzlich aus den abgerufenen Informationen aus der gesamten IT-Umgebung erhält man somit jederzeit einen Gesamtüberblick über die komplette Infrastruktur.

Der Vergleich zwischen dem Oracle Enterprise Manager und Nagios Der Vergleich von Nagios mit dem Oracle Enterprise Manager(OEM) ist nur eingeschränkt möglich, da der OEM zusätzlich zur Überwachung natürlich auch zur Datenbankverwaltung benutzt werden kann. Wir beschränken uns hier nur auf die Überwachungs- und Auswertungsfunktion des OEM.

Abb 6: Gesamtübersicht des Oracle Enterprise Manager Was die Einrichtung und den Aufwand einer Installation angeht, hat Nagios klar einen Vorteil. Der OEM benötigt neben einer Datenbank (meist eine etwas ältere Version von Oracle), zusätzlich noch einen sehr ressourcenhungrigen Oracle Application Server. Das integrierte Patchmanagement im OEM ist ein schönes Feature, das mit Nagios nicht so einfach abgebildet werden kann, wenn man dies denn über diesen Weg machen möchte. Sämtliche Auswertungen und Grafiken zum aktuellen und vergangenen Zustand der Datenbank sind im OEM automatisch enthalten und können natürlich auch in Nagios über die Performancedaten und die grafische Aufbereitung abgebildet werden. Bei der Einbindung von Fremdsystemen und/oder Hardware, hat aus unserer Sicht Nagios ganz klar einen enormen Vorteil. Dies kommt durch das sehr einfache und flexible Modulkonzept von Nagios.

Kontaktadresse: Peter Geigle Essential Bytes GmbH & Co. KG Hagenauer Straße 44 D-65203 Wiesbaden Telefon: +49(0)611-2207079 Fax: +49(0)7808-933633 E-Mail [email protected] Internet: http://www.essential-bytes.de