OS Monitoring mit "OSWatcher Black Box" (5.2.0)

04.
Januar
2013
Veröffentlicht von: Stefan Hartsberger

Einige von Ihnen haben bereits STATSPACK auf Ihrer produktiven Datenbank installiert. Damit können (Performance-) Informationen über viele Bereiche einer Oracle Datenbank gesammelt werden, um diese dann zu einem späteren Zeitpunkt auswerten zu können.

Einige von Ihnen haben bereits STATSPACK auf Ihrer produktiven Datenbank installiert. Damit können (Performance-) Informationen über viele Bereiche einer Oracle Datenbank gesammelt werden, um diese dann zu einem späteren Zeitpunkt auswerten zu können.

Im Unterschied zu Statspack bietet das Tool OSWatcher Black Box diese Möglichkeiten nicht für die Datenbank, sondern für UNIX-Ähnliche Betriebssysteme. Somit lassen sich unter anderem CPU-, RAM- und Netzwerkauslastung monitoren und protokollieren.

In diesem Tipp erkläre ich, wie man den OSWatcher Black Box (im folgenden OSWbb genannt) installiert und konfiguriert.

UPDATE: Für die oswbb Version 7.3.0 gibt es einen <link blog-detailansicht oswatcher-black-box-analyzer-730.html external-link-new-window internal link in current>Opens external link in new windoweigenen Artikel.

1. Über OSWatcher Black Box

Das Skript OSWatcher.sh ist das Hauptskript, welches in einem definierten Zeitintervall Betriebsystem-Diagnose-Tools ausführt. Zeitstempel und Output eines Tools werden hier in einer Datei zusammengeführt.
Diese Datei wird dann vom "File Manager"-Prozess stündlich archiviert, sodass für jede Stunde eine Datei existiert. Der File Manager ist auch für das Löschen der alten Archive verantwortlich. Die Aufbewahrungsdauer ist über einen Parameter konfigurierbar.

2. Allgemeines

Der OSWbb ist für AIX, Solaris, HP-UX, und Linux supportet.

Generell wird das Skript startOSWbb.sh mit 3 Parametern aufgerufen:

Parameter 1: Snapshot-Intervall in Sekunden
Parameter 2: Anzahl der Stunden, nach denen die archivierten Daten gelöscht werden sollen.
Parameter 3: (optional) Utility-Name, mit dem die gesammelten Daten komprimiert werden sollen.

Werden keine Parameter angegeben, so greifen die Default-Werte:

- Alle 30 Sekunden wird ein Snapshot erzeugt.

- Datensätze, die älter als 48 Stunden sind werden gelöscht.


Beim ersten Aufruf wird ein Unterverzeichnis (archive) für die Daten erzeugt. Dieses Verzeichnis enthält pro gesammelten Datentyp ein weiteres Unterverzeichnis:

oswbb/archive/oswiostat
              oswmeminfo
              oswmpstat
              oswnetstat
              oswprvtnet
              oswps
              oswslabinfo
              oswtop
              oswvmstat


3. Installation

Meine Umgebung besteht aus einer VM mit Oracle Enterprise Linux (OEL) 5.5 x86_64.
OSWatcher Version: 5.2.0

Die aktuelle Version kann man sich von folgendem MOS Artikel herunterladen:
OSWatcher Black Box User Guide (Includes: [Video]) [ID 301137.1]

Die heruntergeladene Datei habe ich in das ORACLE_BASE Verzeichnis /u01/app/oracle kopiert.

[root@s-tl-022 oracle]# su - oracle
[oracle@s-tl-022 ~]$ cd /u01/app/oracle/
[oracle@s-tl-022 oracle]$ ll

drwxr-x---  3 oracle oinstall   4096  9. Feb 2012  admin
drwxr-xr-x  5 oracle oinstall   4096  5. Jul 18:03 cfgtoollogs
drwxr-xr-x  2 oracle oinstall   4096  9. Feb 2012  checkpoints
drwxrwxr-x 11 oracle oinstall   4096  9. Feb 2012  diag
drwxr-xr-x  2 oracle oinstall   4096  9. Feb 2012  flash_recovery_area
drwxr-xr-x  3 oracle oinstall   4096  9. Feb 2012  oradata
-rw-r--r--  1 oracle oinstall 962560 14. Nov 17:02 oswbb520.tar
-rw-r--r--  1 oracle oinstall   5667 14. Nov 17:02 osw-service-0.0.6-1.noarch.rpm
drwxr-xr-x  3 oracle oinstall   4096  9. Feb 2012  product


tar File entpacken:

[oracle@s-tl-022 oracle]$ tar -xvf oswbb520.tar
oswbb/
oswbb/src/
oswbb/src/tombody.gif
oswbb/src/Thumbs.db
oswbb/src/missing_graphic.gif
oswbb/src/OSW_profile.htm
oswbb/src/watch.gif
oswbb/src/coe_logo.gif
oswbb/src/oswbba_input.txt
oswbb/tmp/
oswbb/headers/
oswbb/tarupfiles.sh
oswbb/Exampleprivate.net
oswbb/vmsub.sh
oswbb/docs/
oswbb/docs/The_Analyzer/
oswbb/docs/The_Analyzer/OSWbba_README.txt
oswbb/docs/The_Analyzer/OSW_Black_Box_Analyzer_Overview.pdf
oswbb/docs/The_Analyzer/OS_Watcher_Black_Box_Analyzer_User_Guide.pdf
oswbb/docs/OSWatcher_Black_Box/
oswbb/docs/OSWatcher_Black_Box/oswbb_README.txt
oswbb/docs/OSWatcher_Black_Box/OSWatcher_Black_Box_User_Guide.pdf
oswbb/topaix.sh
oswbb/OSWatcher.sh
oswbb/pssub.sh
oswbb/nfssub.sh
oswbb/mpsub.sh
oswbb/oswrds.sh
oswbb/profile/
oswbb/oswsub.sh
oswbb/oswnet.sh
oswbb/OSWatcherFM.sh
oswbb/analysis/
oswbb/startOSWbb.sh
oswbb/gif/
oswbb/oswib.sh
oswbb/stopOSWbb.sh
oswbb/oswbba.jar
oswbb/locks/
oswbb/iosub.sh
oswbb/xtop.sh


In das neu erstellte Verzeichnis wechseln und die Berechtigungen anpassen:

[oracle@s-tl-022 oracle]$ cd oswbb
[oracle@s-tl-022 oswbb]$ chmod 744 *
[oracle@s-tl-022 oswbb]$ ll

drwxr--r-- 2 oracle oinstall   4096 15. Jun 13:19 analysis
drwxr--r-- 4 oracle oinstall   4096 15. Jun 11:51 docs
-rwxr--r-- 1 oracle oinstall   1730 23. Apr 2012  Exampleprivate.net
drwxr--r-- 2 oracle oinstall   4096 15. Jun 11:51 gif
drwxr--r-- 2 oracle oinstall   4096  7. Nov 17:19 headers
-rwxr--r-- 1 oracle oinstall    760 14. Jun 20:05 iosub.sh
drwxr--r-- 2 oracle oinstall   4096  7. Nov 17:33 locks
-rwxr--r-- 1 oracle oinstall    547 14. Jun 20:05 mpsub.sh
-rwxr--r-- 1 oracle oinstall    757 13. Aug 20:02 nfssub.sh
-rwxr--r-- 1 oracle oinstall   4361  8. Jun 13:04 OSWatcherFM.sh
-rwxr--r-- 1 oracle oinstall  29954  7. Nov 17:08 OSWatcher.sh
-rwxr--r-- 1 oracle oinstall 200271  7. Nov 20:39 oswbba.jar
-rwxr--r-- 1 oracle oinstall    415 23. Apr 2012  oswib.sh
-rwxr--r-- 1 oracle oinstall    358  7. Jun 18:25 oswnet.sh
-rwxr--r-- 1 oracle oinstall    826 23. Apr 2012  oswrds.sh
-rwxr--r-- 1 oracle oinstall    529 23. Apr 2012  oswsub.sh
drwxr--r-- 2 oracle oinstall   4096 15. Jun 11:51 profile
-rwxr--r-- 1 oracle oinstall    552 14. Jun 20:09 pssub.sh
drwxr--r-- 2 oracle oinstall   4096 15. Jun 11:51 src
-rwxr--r-- 1 oracle oinstall   1640 14. Jun 20:09 startOSWbb.sh
-rwxr--r-- 1 oracle oinstall    560 23. Apr 2012  stopOSWbb.sh
-rwxr--r-- 1 oracle oinstall    127 23. Apr 2012  tarupfiles.sh
drwxr--r-- 2 oracle oinstall   4096  7. Nov 17:33 tmp
-rwxr--r-- 1 oracle oinstall    433 29. Aug 12:10 topaix.sh
-rwxr--r-- 1 oracle oinstall    549  5. Nov 16:50 vmsub.sh
-rwxr--r-- 1 oracle oinstall   1428 27. Aug 13:48 xtop.sh

 

4.1 Konfiguration für einmaliges Monitoring

Um den OSWatcher zu testen, führen wir folgenden Befehl aus:

[oracle@s-tl-022 oswbb]$ nohup ./startOSWbb.sh 60 10 &

Damit läuft der Prozess im Hintergrund und wird beim Abmelden der Session nicht beendet. Bei einem Reboot des Systems würde der OSWatcher jedoch nicht mehr starten. Das ist dann Aufgabe des osw-service, welcher im nächsten Abschnitt erklärt wird.

In der neuen Datei nohup.out kann man sich den Output des ersten Starts ansehen.

Nachdem ein paar Minuten vergangen sind, kann man sich schon die gesammelten Daten ansehen.
Z .B.:

[oracle@s-tl-022 oswbb]$ less /u01/app/oracle/oswbb/archive/oswtop/s-tl-022_top_12.11.19.1700.dat


Um den OSWatcher wieder zu stoppen, führen wir lediglich folgendes Skript aus:

[oracle@s-tl-022 oswbb]$ ./stopOSWbb.sh

 

4.2 Konfiguration für dauerhaftes Monitoring

Wir editieren nun folgende zwei Skripte:

[oracle@s-tl-022 oswbb]$ vi OSWatcher.sh
--INSERT--
typeset -i zipfiles=1
zip=gzip

Aus typeset -i zipfiles=0 wird typeset -i zipfiles=1
und aus zip=$3 wird zip=gzip.

[oracle@s-tl-022 oswbb]$ vi startOSWbb.sh
--INSERT--
nohup ./OSWatcher.sh 60 240 >/dev/null 2>&1 &

Aus ./OSWatcher.sh $1 $2 $3 & wird nohup ./OSWatcher.sh 60 240 >/dev/null 2>&1 &.


Als root installieren wir nun den "Service". Dieser kann aus folgendem MOS Dokument herunterladen werden:
How To Start OSWatcher Black Box Every System Boot [ID 580513.1]

[root@s-tl-022 ~]# cd /u01/app/oracle
[root@s-tl-022 oracle]# rpm -ivh osw-service-0.0.6-1.noarch.rpm
Vorbereiten...              ########################################### [100%]
   1:osw-service            ########################################### [100%]


... und passen dann die Parameter unserer Umgebung an:

[root@s-tl-022 oracle]# vi /etc/sysconfig/osw
# Set OSWHOME to the directory where you unpacked OSW or OSWbba
OSWHOME=/u01/app/oracle/oswbb
# Set OSWINTERVAL to the number of seconds between collections
OSWINTERVAL=60
# Set OSRETENTION to the number of hours logs are to be retained
OSWRETENTION=240
# Set OSUSER to the owner of the OSWHOME directory
OSWUSER=oracle


Zum Schluss stellen wir noch ein, dass der osw Service beim booten des Betriebsystems gestartet wird.

[root@s-tl-022 oracle]# chkconfig osw on


Mit diesem Befehl starten wir die Aufzeichnungen:

[root@s-tl-022 oracle]# service osw start
OSWatcher starten:                                         [  OK  ]

Somit ist der OSWatcher für ein dauerhaftes Monitoring eingerichtet. Wir können nun unsere Session beenden und den OSWatcher monitoren lassen...

DBA

Jede Menge Know-how für Sie!

In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.