26
oraservices.de Monitoring Package (c) oraservices.de ; [email protected] Seite 1

oraservices.de Monitoring Package

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

oraservices.de Monitoring Package

(c) oraservices.de ; [email protected] Seite 1

Warum noch eine Monitoring Lösung?

oraservices.de beschäftigt sich neben der Lösung von Nicht-Standard Problemen im Oracle Datenbank Bereich seit

einiger Zeit auch mit der Implementierung von Überwachungs- und Frühwarnsystemen für Oracle Datenbanken. Neben

kostengünstigen Insel-Lösungen in Form von Shell Scripts (z.B. zeitnahe Mitteilung von ORA-XXXXX Meldungen aus dem

Alertlog) setzte oraservices.de schnell auf Freie / Open Source Systeme wie Nagios. Mit Hilfe verschiedener Plug-Ins und

Add-Ons konnten in kurzer Zeit neue Check-Funktionalitäten implementiert und integriert werden. In größeren

Systemumgebungen entstand jedoch auch schnell ein unübersichtliches Puzzle aus Einzelteilen. Aber: Spätestens wenn

die Zeit für die Fehlersuche den Aufwand überschreitet, der für eine eigene Implementierung entsteht, sollte eine

Entscheidung fallen. Bevor Sie das nächste Mal herausfinden müssen, warum die Grafik nicht dargestellt wird oder

warum keine Notification rausgeschickt wurde, testen Sie bitte das oraservices.de Monitoring Package für Oracle

Datenbanken.

Sie sparen Zeit

Der Freude über ein neues Plugin folgte meist schnell die Ernüchterung darüber, dass z.B. die Format-Angabe für den

Zahlenbereich (Range) vom Grafik-Plugin nicht korrekt verstanden wird und die Grafik somit nicht dargestellt werden

kann.

Das oraservices.de Monitoring Package liefert eine standardisierte Ausgabe für die jeweilige Zielumgebung. Rufen Sie

das Package mit " format => 'nagios' " auf, liefert es einen Result-String, auf Basis dessen ohne nennenswerte

Konfigurationsarbeit automatisch eine Grafik erstellt wird. Auf diese Weise integrieren Sie jede Funktionalität in wenigen

Minuten. Ein Beispiel dafür finden Sie in dieser Dokumentation.

(c) oraservices.de ; [email protected] Seite 2

Sie gewinnen Flexibilität

Die Programmlogik des oraservices.de Monitoring Packages befindet sich in Ihrer Oracle Datenbank. Damit sind die

Funktionalitäten in jedes Monitoring-Framework integrierbar, aus dem Sie die Datenbank erreichen.

Erweiterbarkeit / Raum für Individual-Entwicklungen

Ein häufig unterschätzter Faktor in Monitoring-Umgebungen ist die Erweiterbarkeit. Was haben Sie davon, wenn 90% der

Funktionalitäten fertig implementiert sind, aber die für Ihre Umgebung wichtigen 10% nicht integriert werden können?

Wenn sich ein SQL Statement zur Überwachung formulieren lässt, ist die Check-Funktionalität schon fast eingebaut.

Standard und Advanced

oraservices.de entwickelt Lösungen für Nicht-Standard-Probleme im Oracle Datenbank-Umfeld. Daraus entstanden im

Laufe der Zeit neben Standard-Funktionalitäten (Tablespace Füllstand, Hitrate, etc.) eine Reihe von Sonderfunktionen z.B.

• Abschätzung einzusparender Wartezeit der letzten Stunde durch Vergrößerung des DB Caches

• Herausfiltern der "unwichtigen" Alerts; Benachrichtigung nur bei Auftreten wichtiger Fehler

• Übersichtliche Darstellung der Alertlog-Fehler mehrerer RAC Nodes

• Benachrichtigung bei in Kürze (proaktiv) zu erwartenden Fehlern / Problemen (ORA-01555, ORA-01652, etc.)

• Automatisiertes Sammeln wichtiger Fehlerinformationen während die Informationen (noch) vorliegen

(c) oraservices.de ; [email protected] Seite 3

Geschenkt?

Ja. Die oraservices.de Monitoring Package Test-Version können Sie kostenfrei verwenden. Im Basis Package befindet sich

eine Sammlung aus fehler- und performancerelevanten Checks, von denen eine kleine Auswahl in der Test-Version

aktiviert sind. Schon mit der kostenlosen Test Version überwachen Sie also eine Reihe von Problemen, die in vielen

Oracle Datenbanken geradezu Klassiker sind, z.B. das erwartete Auftreten eines ORA-01652 Fehlers (unable to extend

temp segment by %s in tablespace %s).

Nicht geschenkt, sondern vielfach schmerzhaft erworben ist die Erkenntnis, dass das Monitoring ein Teil Ihres

Produktionssystems sein sollte. Eine Datenbank, die fehlerhaft arbeitet, beeinträchtigt die Produktivität Ihres

Unternehmens. Gleiches gilt für ein ausgefallenes Netzwerk, Storage, VPN, etc. .

Bitter ist vor allem die Erfahrung, dass ein aufgetretener Fehler frühzeitig hätte entdeckt und behoben werden können.

Deshalb: Testen Sie das oraservices.de Monitoring Package oder entscheiden Sie sich gleich für das oraservices.de

Enterprise Monitoring Package.

Installationswünsche? notwendige Erweiterungen? erforderliche Lösungen für Nicht-Standard Probleme?

Nehmen Sie bitte einfach Kontakt auf: http://www.oraservices.de

(c) oraservices.de ; [email protected] Seite 4

oraservices.de Monitoring Package Installation

Anleitung zur Installation der

oraservices.de Monitoring Packages für Oracle Datenbanken.

Die oraservices.de Monitoring Packages für Oracle Datenbanken bestehen aus

• einem Oracle PL/SQL Package

• einem Shell Script zum Aufruf beliebiger Funktionen aus dem Package via sqlplus

• einem Perl Script zum Aufruf beliebiger Funktionen aus dem Package via DBD::Oracle

• dieser Dokumentation

Es kann wahlweise das Shell Script oder das Perl Script verwendet werden, um die Ausgabewerte

• in einer Monitoring Umgebung (hier beispielhaft Nagios) oder

• in einem Shell-Script

zu verarbeiten.

Mit Hilfe dieser Anleitung lässt sich sowohl

• die kostenlos erhältliche, im Funktionensumfang eingeschränkte, Testversion (oraservices_monitoring_pack_free_test_<version>.gz) installieren als auch die

• Basis (oraservices_monitoring_package_<version>.gz).

(c) oraservices.de ; [email protected] Seite 5

Die Funktionen der Testsoftware unterliegen keinerlei Nutzungs-Beschränkung.

Die in der Testsoftware enthaltenen Funktionen sind für Oracle 9i, Oracle 10g und Oracle 11g lauffähig.

Vorschläge, Anregungen (Wunschliste für Monitoring Funktionen) und Kritik werden gerne unter

[email protected] entgegengenommen.

Für Installations- und Datenbank-Dienstleistungen steht oraservices.de gerne zur Verfügung.

Nehmen Sie Kontakt auf: [email protected] .

Links sind die Währung im Web2.0:

Wenn Sie das Monitoring Package verwenden, setzen Sie bitte einen Link von Ihren Unternehmens-Seiten auf

http://www.oraservices.de.

(c) oraservices.de ; [email protected] Seite 6

Installation

(1) Voraussetzungen

(2) Download; cp; tar xzf; chmod

(3) Test

(4) Parameter

(5) Einbindung in Nagios

(6) Monitoring via Shell Script

(7) Functions

(8) Windows

(9) Links

(1) Voraussetzungenfür oraservices.sh (shell script): Oracle 9i Client oder höher

für oraservices (perl script): zusätzlich DBD::Oracle

für Einbindung in Nagios: zusätzlich eine funktionsfähige Nagios-Installation

(2) download; unpack; install

Ausführung als user root, oracle oder sonst.

Voraussetzungen: lauffähiges sqlplus und Zugangskennung als DBA (system, sys, o.ä.)

(c) oraservices.de ; [email protected] Seite 7

download Package von

http://www.oraservices.de -> download area -> monitoring_pack_free_test.gz

oderwget http://www.oraservices.de/cms/software/oraservices_monitoring_pack_free_test_0_92.tgz

Entpacken der Software tar xzf oraservices_monitoring_pack_free_test_0_92.tgz

cd oraservices_mon_pack

Beispiel:$ tar xzf oraservices_monitoring_pack_free_test_0_92.tgz

$ cd oraservices_mon_pack

$ ls

README oraservices_create_mon_package.plb

oraservices install_mon_pack.sql

oraservices.sh test

$

Installationsqlplus <dba_user>/<password>@<oracle_db_alias> @install_mon_pack.sql

(c) oraservices.de ; [email protected] Seite 8

Beispiel:$ sqlplus system/manager@TESTDB @install_mon_pack.sql

Monitoring User: nagios

Monitoring User Password: sehrgeheim

Monitoring User Default Tablespace, e.g. USERS : users

Monitoring User Temporary Tablespace, e.g. TEMP : temp

old 1: create user &monitoring_user identified by &mon_user_password

new 1: create user nagios identified by sehrgeheim

old 2: default tablespace &mon_default_tablespace

new 2: default tablespace users

old 3: temporary tablespace &mon_temp_tablespace

new 3: temporary tablespace temp

User created.

old 1: grant connect, resource to &monitoring_user

new 1: grant connect, resource to nagios

Grant succeeded.

old 1: grant select any dictionary to &monitoring_user

(c) oraservices.de ; [email protected] Seite 9

new 1: grant select any dictionary to nagios

Grant succeeded.

old 1: alter session set current_schema = &monitoring_user

new 1: alter session set current_schema = nagios

Session altered.

Package created.

No errors.

Package body created.

No errors.

Bemerkung

Für Oracle 10g und höher steht Tablespace SYSAUX zur Verfügung, der für diesen Zweck als Default Tablespace

geeignet ist.

Bitte fragen Sie Ihren Oracle DBA nach einem geeigneten Default Tablespace und Temp Tablespace.

(c) oraservices.de ; [email protected] Seite 10

(3) Test

./oraservices.sh <oracle_db_alias> <monitoring_user> <mon_user_password> "<function>[(params)]"

Beispiele:$ ./oraservices.sh TESTDB nagios supergeheim temp_ts_fill_size

OK - 0pct | temp_ts_fill_size=0pct;40;70;0;100

$

$ ./oraservices.sh TESTDB nagios topsecret "temp_ts_fill_size(80,90)"

OK - 0pct | temp_ts_fill_size=0pct;80;90;0;100

$

$ ./oraservices.sh TESTDB nagios supergeheim "temp_ts_fill_size(critical => 60)"

OK - 0pct | temp_ts_fill_size=0pct;40;60;0;100

$

$ ./oraservices.sh TESTDB nagios topsecret "temp_ts_fill_size(critical => 60, format => 'shell')"

OK - result for temp_ts_fill_size=0pct; warning level: 40; critical level: 60

$

(c) oraservices.de ; [email protected] Seite 11

(4) Parameter

Die Funktionen sind mit Default Parametern versehen, so dass der Aufruf./oraservices.sh <oracle_db_alias> <monitoring_user> <password> <function>

ein gültiges Ergebnis liefern sollte.

Wenn Sie Parameter für die Monitoring-Funktion verwenden ("<function>[(params)]"), geben Sie Funktion und Parameter

bitte in Double-Quotes (") an.

Parameter können ohne Angabe des Parameternamen in der Reihenfolge ihres Auftretens angegeben werden, z.B."temp_ts_fill_size (30,50)"

oder unter Angabe des Parameternamen, z.B."temp_ts_fill_size (critical => 30, format => 'shell')"

Auf diese Weise können Sie gezielt die Angabe einiger Parameter auslassen.

Mögliche Parameter für temp_ts_fill_size:

warning: Numberwerte von 0 bis 100; Default 40

critical: Numberwerte von 0 bis 100; Default 70

unit: Bezeichnung d. Einheit in der Ausgabe und im grafischen Display; Default 'pct'

format: Ausgabeformat des Ergebnisses aus 'nagios', 'shell', 'valueonly'; Default 'nagios'

Parameterbeschreibung aller Funktionen siehe Manual oraservices.de Monitoring Package Functions.

(c) oraservices.de ; [email protected] Seite 12

(5) Einbindung in Nagios (via nagiosadmin)

Die PluginsDas Script oraservices.sh ist ein Plugin auf Basis von sqlplus

Das Script oraservices benötigt Perl und DBD::Oracle für einen Datenbank-Connect

Beide Plugins leisten fachlich das gleiche; die Auswahl liegt bei Ihnen.

Installation der Plugins

cp <plugin> <nagios_plugin_dir>

chown root:root <plugin>

chmod 755 <plugin>

Owner und notwendige Zugriffsrechte können sich auf Ihrem System unterscheiden. Bitte vergleichen Sie ggf. mit

anderen funktionsfähigen Plugins.

Beispiel:$ cp oraservices.sh /usr/local/nagios/libexec/

$ cd /usr/local/nagios/libexec/

$ chown root:root oraservices.sh

$ chmod 755 oraservices.sh

(c) oraservices.de ; [email protected] Seite 13

Konfiguration Nagiosadmin

Befehl -> neu

Ausfüllen entsprechend Screenshot; Speichern

Bei Verwendung des Shell Scripts: $USER/oraservices.sh $ARG1$ $ARG2$ $ARG3$ $ARG4$ $ARG5$ $ARG6$ $ARG7$

des Perl Scripts: $USER/oraservices $ARG1$ $ARG2$ $ARG3$ $ARG4$ $ARG5$ $ARG6$ $ARG7$

(c) oraservices.de ; [email protected] Seite 14

Dienste -> neu

Ausfüllen entsprechend Screenshot; Speichern

(c) oraservices.de ; [email protected] Seite 15

Hosts -> Host bearbeiten (Auswahl) -> erstellten Service auswählen; Speichern

Hosts -> Host bearbeiten (Auswahl) -> Erweiterte Einstellungen für Serverdienste

(c) oraservices.de ; [email protected] Seite 16

Dienste des Hosts einstellen:

Ausfüllen entsprechend Screenshot; Save

Befehl Parameter entsprechend Aufrufliste Shell Script./oraservices.sh TESTDB nagios ausserordentlichgeheim temp_ts_fill_size

wird zu !TESTDB!nagios!ausserordentlichgeheim!temp_ts_fill_size

Bitte benutzen Sie zur sicheren Hinterlegung der Passwörter die Datei resource.cfg (siehe Nagios Dokumentation).

Je nach Voreinstellung: Spezial: process_perf_data 1

(c) oraservices.de ; [email protected] Seite 17

Generator -> Speichern ... done !

(c) oraservices.de ; [email protected] Seite 18

Darstellung in der Nagios-Umgebung

Bei Temp Tablespace Fill Size > 40% wird eine Warning ausgelöst

(c) oraservices.de ; [email protected] Seite 19

Grafik (wird automatisch erstellt)

(c) oraservices.de ; [email protected] Seite 20

Bei entsprechender Konfiguration der Nagios-Umgebung erhalten Sie eine EMail und/oder SMS.

Nachdem Sie die Session identifiziert, das Problem analysiert und es gelöst haben, ist der Füllstand des Temporary

Tablespace wieder deutlich kleiner. Eine ORA-01652 Fehlermeldung und die entsprechenden Folgen werden dadurch

vermieden.

Normalzustand

(c) oraservices.de ; [email protected] Seite 21

(6) Monitoring via Shell Script

Für ein temporäres Setup oder in kleineren Systemumgebungen kommt eine Überwachung per Shell Script in Frage.

Beispiel:#! /bin/sh

# (c) oraservices.de ; [email protected]

# run this script every 5 minutes via crontab

# recipient for warning or error mail

RECIP="<[email protected]>"

# run check with warning 40 pct and critical 50 pct

# generate shell script output (not nagios format style)

ret=`./oraservices.sh XE <user> <password> \

"temp_ts_fill_size(warning => 40, critical => 50, format => 'shell')"`

# oraservices.sh exits with status > 0 on everything else than OK

status=$?

# send mail, if temp ts activity beyond warning

(c) oraservices.de ; [email protected] Seite 22

if [ $status -gt 0 ]; then

echo $ret | mailx –s "warning or critical status:temp_ts_fill_size " $RECIP

fi

(7) Functions

Einen Überblick der verfügbaren Monitoring Functions im Basis Package erhalten Sie durch

sqlplus <username>/<password>@<oracle_db_alias>

describe mon

Beispiel:$ sqlplus nagios/supergeheim@TESTDB

SQL> describe mon

FUNCTION ALERTLOG_ERRORS RETURNS VARCHAR2

Argument Name Type In/Out Default?

------------------------------ ----------------------- ------ --------

WARNING NUMBER IN DEFAULT

CRITICAL NUMBER IN DEFAULT

UNIT VARCHAR2 IN DEFAULT

(c) oraservices.de ; [email protected] Seite 23

FORMAT VARCHAR2 IN DEFAULT

FUNCTION APPL_INST_FAILOVER_CNT RETURNS VARCHAR2

Argument Name Type In/Out Default?

------------------------------ ----------------------- ------ --------

WARNING NUMBER IN DEFAULT

CRITICAL NUMBER IN DEFAULT

UNIT VARCHAR2 IN DEFAULT

INST_MACHINE VARCHAR2 IN

FORMAT VARCHAR2 IN DEFAULT

FUNCTION AVG_PHYS_WAIT_TIM_SAV_PER_H RETURNS VARCHAR2

Argument Name Type In/Out Default?

------------------------------ ----------------------- ------ --------

WARNING NUMBER IN DEFAULT

CRITICAL NUMBER IN DEFAULT

UNIT VARCHAR2 IN DEFAULT

FORMAT VARCHAR2 IN DEFAULT

...

SQL>

(c) oraservices.de ; [email protected] Seite 24

(8) Windows

Der Kern des oraservices.de Datenbank Monitoring Packages ist in den Programmiersparachen PL/SQL und Java geschrieben und damit unabhängig vom Betriebssystem Ihrer Datenbank.Die aufrufenden Scripts oraservices.sh, bzw. oraservices sind UNIX-Scripts, bzw. Perl Script. Auf einem Windows-System lässt sich z.B. das mitgelieferte Shell Script oraservices.sh ausführen. Sie benötigen dafür lediglich die (frei verfügbaren) Cygwin Tools.

Aufruf von oraservices.sh aus einer Cygwin Command Shell (Windows System)

(c) oraservices.de ; [email protected] Seite 25

(9) Links

Nagioshttp://www.nagios.org

Nagiosadminhttp://www.nagiosadmin.de

pnp4nagioshttp://www.pnp4nagios.org

Cygwinhttp://www.cygwin.com

DBD::Oraclehttp://www.cpan.org/

Oracle Database Client Softwarehttp://www.oracle.de

oraservices.de Monitoring Package for Oracle Databaseshttp://www.oraservices.de

(c) oraservices.de ; [email protected] Seite 26