WS05-09 Projektdokumentation

Aus Verteilte Systeme - Wiki
Zur Navigation springen Zur Suche springen

Grundlagen

Web-Based Enterprise Management

1996 riefen die Firmen Compaq,Cisco Systems,Intel, BMC Software,und Microsoft die Web-Based Enterprise Management (WBEM) Initiative ins Leben, um eine offene,herstellerneutrale Architektur für ein WWW-basiertes Management in Unternehmen zu entwickeln. Sie ist ein Industrie Konsortium das im Laufe der weiteren Jahre noch um weitere Firmen wuchs und als Gesamtes,Betriebe aus dem Computer- und Telekommunikationssektor repräsentieren.

Web-Based Enterprise Management (WBEM) ist eine Sammlung von Management und Internet Technologien die das Managen von „Enterprise Computing Environment“ vereinigt. In ihr wurde eine einheitliche Zugriffsmethode auf Management-informationen des CIM (siehe unten) über HTTP standardisiert.

WBEM wird auch oft als Norm, Gesamt-Framework oder Informations-Architektur bezeichnet. Es ist keine Laufzeitumgebung oder besondere Programmiersprache erforderlich. Sowie wird auch keine Nutzung spezieller Managementanwendungen, Betriebssysteme oder GUIs verlangt. Somit stellt WBEM eine konsistente Sicht auf die zu verwaltenden Ressourcen bereit, ohne seine Nutzer auf bestimmte Systeme, Protokolle oder Plattformen festzulegen.

Zielsetzungen von WBEM sind unter anderem:

Es ermöglicht Applikationen, die untereinander nach einem einheitlichen Schema Informationen austauschen können.

Austausch.jpg

Es verringert den Aufwand beim Erstellen und Anpassen von Programmen, die ständig um neue Funktionen ergänzt werden müssen.

Es bietet einen flexiblen und standardisierten Objektzugriff.

Mit der Entwicklung von Management Applikation´s gemäß den WBEM Prinzipien, lassen sich somit,kompatible Produkte unter kostengünstigen Entwicklungskosten entwickeln. Da es in heterogenen Umgebungen von Haus aus keine Vereinbarungen ?über die Information gibt, die zu Managementzwecken ausgetauscht werden müssen, spielt das Informationsmodell eine zentrale Rolle innerhalb einer Managementarchitektur. Es speziert die Methoden zur Modellierung und Beschreibung von Managementobjekten und legt damit fest, was überhaupt verwaltet werden soll und welche Ressourcen-merkmale und Vorgänge relevant sind. Kern ist das Common Information Model (CIM),dessen zweite Version (CIMv2) im März 1998 von der "Distributed Management Management Task Force" vorher (Desktop Management Task Force) (DTMF) verabschiedet wurde um mit diesem Gesamtframework eine Interoperabilität auf allen Netzwerkschichten zu erreichen. Es wurde als ein Datenformat für den Austausch von Managementinformationen zwischen kommerziellen Netzmanagement-systemen wie (Tivoli, HP OpenView, ...) standardisiert.

Kernpunkte des WBEM Managements sind:

erweiterbares Datenmodell mit dem die Objekte mit der Extended Markup Language (XML) definiert werden.

Ein Objekt Manager (CIMOM), der einen einheitlichen Zugriff auf Daten von verwalteten Objekten ermöglicht.Ein CIMOM muss Kenntnis darüber besitzen, welche Klassen, Assoziationen und Qualifier überhaupt existieren. Hier für kommt das Repositorie zum Einsatz.

Ein Repository, in dem sowohl Klassen als auch konkrete Instanzen von Klassen SOWIE alle statischen CIM-bezogenen Informationen hinterlegt sind. abgelegt sind.

Das CIM Repository ist eine Datenbank, die statische Managementdaten in Form von CIM-Objekten enth?alt.

Das CIMv2 besteht aus folgenden 3 Ebenen:

(Grundkonzept des Meta Schemas und somit auch von CIM ist die Verwendung objektorientierter Techniken. Es beschreibt im CIM wie Dinge abgebildet werden(Definition der Syntax und der Struktur bzw. Grammatik). Die folgenden Schemata beschreiben bzw. spezifizieren im Gegensatz dazu was dargestellt wird)

Core Schema (Core Model) Aspekte die für alle Managementbereiche gleich sind.

Common Schema (Common Model) Beschreibt Aspekte die spezielle Managementbereiche betreffen aber unabhängig von speziellen Implementierungstechniken sind.

Extension Schema Erlaubt Erweiterung des Common Schemas die aber herstellerspezifisch sowie implementationsabhängig sind

Für CIMv2 werden auch oft Meta Modell oder CIMv2 Schema verwand.

Ein Schema ist eine Gruppe von Klassen, die aus Verwaltungsgründen zusammengefasst wurden. Schemata definieren Namensräume.So hat z.B ein voll qualizierter Klassenname die Form"<Schema>_<Klasse>\. Die Klassennamen müssen innerhalb eines Schemas eindeutig sein! Die Schematas werden mittels der Unified Modelin Language (UML) definiert.

Die Informationsarchitektur WBEM ist top-down organisiert, was bedeutet das auf der obersten Ebene völlig allgemein gültige Managementobjekte nach unten immer weiter verfeinert und konkretisiert werden. Das Meta-Modell ist in einem Repository abgelegt, auf das Programme zugreifen können. Aus dem Meta-Modell können dann das Core-Schema, das Common-Schema und das Extension-Schemat als Instanzen hergeleitet werden. Sie alle definieren allgemeine Objektklassen.Diese wiederum werden von verschiedenen Applikationen in konkrete, spezifisch angepaßte Objektinstanzen umgesetzt. Bisher wurden zur Spezifikation der Klassenstrukturen eines CIM Schemas UML Diagramme benutzt. In denen Klassen mit ihren Eigenschaften und ihrem Kontext dargestellt werden konnten. Für den automatisierten Austausch (maschienen lesbar) von Klasseninformationen wurde das Managed Object Format (MOF) spezifiziert. Da CIM objektorientiert ist, kann man von MOF auch als einer Interface Description Language (IDL) sprechen. Die Hauptkomponenten einer MOF-Spezikation sind Klartextbeschreibungen von Klassen, Assoziationen, Eigenschaften, Referenzen, Methoden, Instanzdeklarationen sowie die zugehörigen Qualifikatoren. Eine MOF-Textdatei kann mittels eines Compilers verarbeitet werden. Auf diese Weise lassen sich statische Daten wie das CIM Schema in ein Repository einlesen.

Modell1.jpg

CIMOM

Der CIM Objekt Manager ist die zentrale Komponente eines WBEM Systems. Er ist für die Interaktion zwischen dem Managementanwendungen, dem CIM Repository und dem CIM Provider. Zusetzlich zu diesen Aufgaben übernimmt er Aufgaben wie Authentifizierung und Event- Handling.

Eventbehandlung

In CIM ist nicht nur der eine Weg vorgesehen das die Management-Komponente Klassen und Instanzen verändern kann sondern auch das die Ressource selbst Ereignisse auslösen kann. Vergleichbar in SNMP mit dem Konzept der Traps. Hier wird ein solches Ereignis Indidation genannt.


Die Architektur von WBEM:

Die Repräsentation von Klassen und Instanzen und möglichen Operationen darauf erfolgt über XML.Die Übermittlung dieser XML Nachichten erfolgt über das HTTP Protokoll.


Die Management Anwendung repräsentiert die Applikationen, die Managementdaten weiterverarbeitet wie z.B. WWW-Server der die Daten als HTML- Seiten aufbereitet und für den Zugriff durch Browser verfügbar macht.

XML-Abbildung von Klassen und Instanzen

CIM-Operationen über XML :

HTTP-Transport Als TCP-Port für die Verbindung auf eine CIM-Ressource wurde der Port 5988 festgelegt.Bei einer SSL verschlüsselten Verbindung muss der TCP-Port 5989 verwendet werden. Standard-URI ist: /cimom HTTP-Methode für einen WBEM-Request: POST (beinhaltet komplette XML codierte Anfrage)

Ein WBEM-Request kann damit etwa folgendermaßen aussehen:

POST /cimom HTTP/1.1 Host: http://www.myhost.com/ Content-Type: application/xml; charset="utf-8" Content-Length: 1453 CIMOperation: MethodCall CIMMethod: SetPowerState CIMObject: root/cimv2:Win32_LogicalDisk="C:" (<?xml version="1.0" encoding="utf-8" ?>)

Die Antwort hätte dann die folgende Gestalt :

HTTP/1.1 200 OK Content-Type: application/xml; charset="utf-8" Content-Length: 233 Ext: Cache-Control: no-cache CIMOperation: MethodResponse <?xml version="1.0" encoding="utf-8" ?> ...


Authenticationsmöglichkeiten:

Zur Zeit gibt es 3 unterstützte HTTP Authentications Methoden, die aber in der Projektbeschreibung nur am Rande und nicht ausführlich bearbeitet werden,da die Autenfifikation nicht notwendig und kein Bestandteil der Realisierung ist.


-Basic(Übertragung des Passworts im Klartext, wird nur im Zusammenhang mit der SSL Verschlüsselung verwendet) Wenn Basic genutzt wird muss ein Authentikations Modul gewählt werden:

PAM (Pluggable Authentication Modules)
PAM comand Line
Simple
AIX Authenticationg
non Authenticationg

Zusätzlich werden in OpenWbem vom User eigens erstellte auth.Module unterstützt.

-Digest(Es handelt sich um ein "shared secret"-Verfahren bei dem das Passwort gesichert übermittelt wird.)


-OWLocal(Diese Auth.Methode wird eingesetzt wenn der Client und der Server auf dem selben System laufen.)

Problemanalyse

1. An vorhandenen (Std. Namespace kommen) oder neuen Namespace erstellen. Name Spaces ... Lsg: Programm 1

2.Erstellen von Klassen und Instanzen mit Zuweisung von Werten. Danch Abfragen mit WQL auf diese erstellten Werte.... Lsg: Programm 2

3.Installieren (registrieren eines Providers am CIMOM). Abfrage mit Hilfe von WQL -Queries auf diese Klassen und Instanzen des Providers. Lsg:Programm 3

4.Nicht durch eigens initierte Anfragen Werte vom CIMOM abfragen sondern die Nutzung der Eventbehandlung:

Der CIMOM ist die zentrale Instanz die die Kommunikation zwischen den Komponenten abwickelt. In WBEM sind Events Ereignisse,die entweder mit Bedingungen der realen Umgebung oder mit Veränderungen des Repository des CIMOM zusammenhängen. Allgemein wird zwischen internen und externen Events unterschieden.

Interne Events (intrinsic)

Internen Events betreffen jegliche Veränderungen des Repositorys. Das heist, ein entsprechendes Event wird bei Erzeugung (Creating) allgemein Veränderung (Modification) Löschen (Deletion Event) von Klassen,Instanzen sowie Namespaces ausgelöst.

Alle anderen Ereignisse die nicht unter diese fallen,werden Externe Events (extrinsic oder “process events”) genannt.Hierbei ist es Sache der Provider entsprechende Ereignise zu melden.Für Projektaufgabe ist also die Behandlung von externen Events zu realisieren, da die jeweils installierten Provider eine Sachlage beobachten und unter gewissen Umständen ein Event auslösen.Externe Quellen liefern Ereignismeldungen von externen Events an die Provider die diese dann melden. Diese Quellen können z.B von Hardwarkomponenten wie Lüftern, Festplatten oder Temperatursensoren aber auch von Softwarekomponenten wie Datenbanken kommen.In diesem Projekt wird auf die erste Art von Quellen konzentriert. Allgemein wird dabei das ausgelöste Ereignis Event genannt und die Meldung von Events Notification genannt.


Auf ein Ereignis schickt ein Provider eine Notification an den CIMOM. Dieser überprüft als erstes ob ein EventFilter existiert, der von dieser Art von Notification betroffen ist.Ist das der Fall, sucht er den zugehörigen logischen Consumer heraus und ermittelt den zugehörigen Event-Consumer-Provider.Durch diesen wird die Verbindung zum Sink hergestellt und anschliessend die Nachricht übermittelt.

Die beteiligten Komponenten:

Sink(Consumer Objekt) Es repräsentiert das physische Objekt,das den Consumer darstellt. Hier bestehen mehrere Möglichkeiten einen Sink einem Consumer zuzuordnen: Einen Sink für alle logischen Consumer Je einen Sink für jeden logischen Consumer Je einen Sink für jede Gruppe von logischen Consumern

Jede Methode hat ihre Vor- und Nachteile.So ist z.B die erste Möglichkeit auf Platzbedarf (nur ein Objekt im Speicher) und die zweite auf Performanz (für bestimmte Events stehen die jeweiligen Consumer bereit) ausgelegt.Die dritte stellt einen Kompromiss zwischen den ersten beiden da.

Provider (Event-Provider) Sie sind dafür zuständig das auftretende Events als sogenannte Notifications dem CIMOM mitgeteilt werden.Für diese Provider spielt es im Anschluss keine Rolle was mit diesen Notifications geschieht. CIMOM liefert die Notifications für Änderungen an statischen, während die Provider die Änderungen an dynamischen Klassen sowie Instanzen melden.

Consumer (Event-Consumer)

Event-Consumer-Provider

Event-Filter

Konzept

Lösungsansatz:

Realisierung der Client Aplication in Java. Mit Hilfe der javax.wbem.client APIs werden Objekte des (CIM) manipuliert. Das Client Programm nutzt die CIM API um ein Objekt zu erstellen um anschliessend eine Instanz dieses Objektes zu erzeugen. Das Client Programm nutzt die client API um dieses Objekt zu dem CIMOM zu senden und eine WBEM Anfrage zu erbitten.

Allgemeine Sequenz der Client Application: 1.Connect zu dem laufenden CIMOM (ClientConnect) 2.Benutzung der client APIs um Anfragen zu erbitten (WBEM operations) und Programm Aufgaben auszuführen. Diese Aufgaben könnten z.B das hinzufügen, editieren oder löschen einer CIM Klasse,Instanz oder eines CIM Qualifiers sein. 3.Die Client Connection zu schliessen und vorher vom Client genutzte Server Recourcen freizugeben.


Realisierte Programme:

Das erste realisierte Programm “Create Namespace.java” war zum erstellen,löschen und Auflisten von Namespaces. Die Angabe des betreffenden Namespace musste als Argument [2] per Commandozeilenparameter angegeben werden. //localhost root/cimv2 herbert root Fairy [http] [2]

Darauf aufbauend entstand Programm 2 namens “TestQuery.java” das die Query-Funktionalität ermöglichen sollte.Es erstellte eine Test-Klasse im Std. Namespace root/cimv2 mit einigen "properties" sowie einigen Instanzen dieser Klasse. Danach führte es einige Querys auf die erstellte Klasse mit ihren Instanzen aus und gab die Resultate aus.

Das dritte Programm war eine Modifikation von Programm 2 namens “TestQSBLIM”. Nun sollten aber nicht die selbst erstellten Werte der Klassen und Instanzen abgefragt werden sondern ein Provider installiert werden der bestimmte Klassen mit Ihren Instanzen anbietet.Hierfür wurde der Provider SBLIM mit den Instrumentierten Klassen und Assoziationen des Basispakets verwendet.


Es bietet eine Consolenoberfläche in der Ausgewählt werden kann welche Art von WQL Queries gestellt werden sollen. ( Für eine genauere Beschreibung, siehe Kapitel "Implementierung",hier nur eine kurze Vorstellung der Fragemöglichkeiten).


4 Abfragemöglichkeiten :


1. Für eine festgelegten Zeitraum wird ein Wert einer Instanz überwacht.Hier wurde als Bsp. die Abfrage der aktuellen/ momentanen CPU Frequenz realisiert.

2. Abfrage verschiedener Parameter von der jeweils einzig erstellten Instanz verschiedener Klassen.

3. Abfrage eines Parameters über alle Instanzen der Klasse Linux_UnixProcess.

4. Beliebige Eingabe einer WSQL Anfrage im Consolenmodus.



Die Handhabung von CIM Events

Ein Event ist ein in der realen Welt geschehendes oder vorkommendes Ereignis bzw. Vorkommnis oder Vorfall. Dieses Vorkommen eines Ereignisses wird von einer Indication ( einem Indication Objekt ) berichtet. Somit werden im Common Information Modell Indications bekannt gegeben oder veröffentlicht, nicht Events. Provider sind dafür zuständig eine Indication zu generieren wenn ein Event geschieht.

Es kann null oder mehrere Auslöser für eine Indication geben,welche z.B durch einen Wechsel eines Zustandes erkennen. In WBEM gibt es kein spezielles Objekt das Auslöser repräsentiert, stattdessen werden sie von folgenden Aktionen impliziert:

Einerseits Operation auf ein Basis- Objekt des Systems,sowie Operationen auf Instanzen, welche z.B das löschen oder modifizieren einer Klasse sind.

Jedes Ereignis (event) welches sich in der “managed environment” ergibt.

Die für Indications in CIM enthaltene Klassen Struktur :

IndicationClassStr.jpg

Über Indications

Das Abonnieren von CIM event (subscriptions)

Eine Client Anwendung kann sich dafür anmelden, informiert zu werden wenn gewisse Events geschehen (Abonnoment). Dieses Abonnoment ist die “Bekanntmachung” eines Interesses an einem oder mehreren Indications. Hierfür muss die Aplication (das Client Programm), welches sich für das abonieren von Indications von einem CIM Event Providern anmeldet, folgenden Informationen liefern: Die eigentliche Indication welche die Aplication aboniert soll Den “handler” zu welchem der CIMOM die Indication leiten soll


Schritte zum Erstellen einer Subscription

Die Aplication kann einen oder mehrere Event Filter mit einem oder mehreren event handlern erstellen. Die jeweilige Event-Indication wird nicht übergeben oder ausgeliefert bis die Aplication eine event-subscripion erstellt hat.


1.Erstellen einer Instanz von CIM_Listener
2.Erstellen einer Instanz von CIM_IndicationFilter
3.Erstellen einer Instanz von CIM_IndicationHandler
4.Das Binden des CIM_IndicationFilter an den CIM_IndicationHandler

Implementierung

Die OpenWBEM Installation

Standartinstallation in: file:/usr/local/etc/openwbem

Haupt-Konfigurationsfile in dem unter anderem die folgenden Änderungen vorgenommen wurden,ist openwbem.conf

Position des Logfiles : File:/var/log/messages

Position des Cimomdemon: /usr/local/sbin/owcimomd


1.Entfernen eines falsch positionierten Semikolons aus der conf-Datei im Eintrag servertimeout: http_server.timeout = 300;

Erster Start des Cimomdemon aus file:/usr/local/sbin/owcimomd :

./owcimomd ./owcimomd: error while loading shared libraries: libowcimomcommon.so.4 cannot open sharedobject file: No such file or directory


2.Setzen eines allgemeinen LibraryPfades: export LD_LIBRARY_PATH=/usr/local/lib

Using config file: /usr/local/etc/openwbem/openwbem.conf Starte Demon: Error starting CIMOM. Check the log files.

Ausschnitt aus dem LogFile: file:var/log/messages : OW_AuthManager.cpp: 120 AuthManagerException: No Authentication Mechanism Available Dec 1 10:05:49 linux openwbem: [1079263904]dlSharedLibraryLoader::loadSharedLibrary dlopen returned NULL. Error is: /usr/local/lib/openwbem/authentication/libpamauthentication.so: cannot open shared object file: No such file or directory Dec 1 10:05:49 linux openwbem: [1079263904]Authentication Module /usr/local/lib/openwbem/authentication/libpamauthentication.so failed to produce authentication module [No Authentication Mechanism Available!]


3.Änderung in Configfile auf Non-Authenticating: /usr/local/lib/openwbem/authentication/authentication.so auf /usr/local/lib/openwbem/authentication/libnonauthenticatingauthentication.so

und

owcimomd.allowed_users = root auf #owcimomd.allowed_users = root


Danach erneuter Versuch den Demon zu starten.Dies missglückte mit der folgenden Meldung: Unable to listen on 0.0.0.0:5989. OpenWBEM not built with SSL support. Dec 1 10:07:34 linux openwbem: [1079263904]* EXCEPTION CAUGHT IN CIMOM MAIN! Dec 1 10:07:34 linux openwbem: [1079263904]* OW_HTTPServer.cpp: 568 HTTPServerException: Unable to listen on 0.0.0.0:5989. OpenWBEM not built with SSL support.

Darauf foglende Änderung im Configfile von Port 5989 auf http_server.https_port = -1


Der owcimom-Demon lies sich ab diesem Zeitpunkt das erste mal ohne Fehlermeldungen starten.


Das Erstellen der Namespaces:

linux:/usr/local/sbin # owcreatenamespace -u http://localhost/ -n root/cimv2 Creating namespace (root/cimv2) Authentication required for linux.site Enter the user name: root Enter the password for root:

Nach dem ersten Aufruf des Kommandos owcreatenamespace wurde die Authentifikation für jedes weitere Einbinden einer mof Datei im config File entfernt: http_server.allow_local_authentication = true


ImportSchemas mit owmofc to import mof classes:

Exemplarisches Beispiel für die Einbindung eines .mof Files :

owmofc -u http://localhost/cimom -n root CIM_Core28.mof weitere eingebundene Files sind in dem Dokument "Getting_Started_Guide.pdf" nachzulesen.

Importieren des schemas in den Namespace:

owmofc -u http://localhost/cimom -n root/cimv2 CIM_Schema28.mof


Zwei Benutzte WBEM Browser:


1.SNIA Cimom (Open SIMOM Browser)

//Installationsverzeichnis: cd snia-cimom/

./cimbrowser.sh

//Installation von Xerces

tar xzf Xerces-J-bin.1.4.4.tar.gz

//Entpackt in /xerces-1_4_4

// Classpath für XERCES setzen: vi cimbrowser.sh

export CLASSPATH=.:../xerces-1_4_4/xerces.jar

./cimbrowser.sh


2.Cimworkshop in Paket WBEMServices

Benötigt Java für die Installation siehe file:/root/Desktop/wbemservices/doc/UnixAntBuild.html

Installations des Java Standard Development Kit.

Java_Home Variable setzten: export JAVA_HOME=/usr/java/j2sdk1.4.2_10

Installation der Eclipse SDK Platform Release 3.1.1 .

Danach kann cimworkshopaus Verzeichnis: linux:~/Desktop/wbemservices/bin # ./cimworkshop.sh gestartet werden.

Anmeldung:

Host URL: http://127.0.0.1//root/cimv2 User Name: root Password: **** Interop Namespace: /root/cimv2

Oder in namespace root

Host URL: http://127.0.0.1//root/ Interop Namespace: /root/


Implementation des Sblim Providers mit dem Standart Basis Paket als Funktionsumfang:

„Base Instrumentation“ Installation (beinhaltet das Abfragen von Basis Systeminformationen via CIMOM-Infrastruktur)

Die Instrumentierten Klassen und Assoziationen des Basispakets sind:


Linux_ComputerSystem
Linux_BaseBoard
Linux_OperatingSystem
Linux_OperatingSystemStatisticalData
Linux_UnixProcess
Linux_Processor
Linux_RunningOS
Linux_OSProcess
Linux_OperatingSystemStatistics
Linux_CSProcessor
Linux_CSBaseBoard


Das Installationsverzeichnis der Providersoftware ist: cd vsys/pro/software/sblim-cmpi-base-1.5.4/ Zuerst muss das Shellscript Ausführbar gemmacht werden: chmod u+x install-sh ./install-sh provider-register.sh ./configure less README less INSTALL

Building cmpi-base: Das mitgelieferte configure script versucht die CMPI header Files in -/usr/include/cmpi oder -/usr/local/include/cmpi zu bestimmen.Daher muss der Pfad erst angepasst werden: export CIMSERVER=openwbem CFLAGS=-I/usr/local/include/openwbem echo $CFLAGS jetzt wird in : -I/usr/local/include/openwbem gesucht.

Danach mit dem Aufruf von : make bzw. make install die Installation abschliessen. Die Installation ist damit,wenn keine Fehlermeldungen aufgetreten sind, abgeschlossen und der installierte Provider kann am CIMOM registriert werden.

Registrierung des Providers sblim-cmpi-base-1.5.4: Der zu benutzende Provider muss bei dem laufendem CIMOM registriert werden: linux:~/Desktop/wbemservices/bin # ../provider-register.sh -t openwbem -r Linux_Base.registration -m Linux_Base.mof

Nach erfolgreichem Aufruf der Registrierung kann nun auf die unterstützten Objekte des Basispakets zugegriffen werden. Mit dem Kommando "owenumclassnames" können die gesamten im Repository enthaltenen Klassen bzw. Objekte angezeigt werden.Enthalten sind nun die aus dem Basis Paket enthaltenen SBLIM Objekte und die als Standart mitgelieferten Klassen des OpenWbem Paketes ohne Instanzen.


3 Abfragemöglichkeiten :


1.Mit dem in OpenWBEM mitgelieferten Programm “owexecwql”, Anfragen generieren:

Mit dem Aufruf:

owexecwql -w “WQL statement und Klassenname” bzw.
owexecwql -w "SELECT * from Linux_Processor"   :

Erhält man folgende Antwort:

Got response: 1 CIMInstances CIMInstance 1:

INSTANCE OF Linux_Processor
{
Role="Central Processor";
Family=11;
OtherFamilyDescription="NULL";
UpgradeMethod=NULL;
MaxClockSpeed=599;
CurrentClockSpeed=599;
DataWidth=NULL;
AddressWidth=NULL;
LoadPercentage=7;
Stepping="stepping level:  6";
UniqueID=NULL;
CPUStatus=1;
SystemCreationClassName="Linux_ComputerSystem";
SystemName="linux.site";
CreationClassName="Linux_Processor";
DeviceID="0";
PowerManagementSupported=NULL;
PowerManagementCapabilities=NULL;
Availability=NULL;
StatusInfo=NULL;
LastErrorCode=NULL;
ErrorDescription=NULL;
ErrorCleared=NULL;
OtherIdentifyingInfo=NULL;
PowerOnHours=NULL;
TotalPowerOnHours=NULL;
IdentifyingDescriptions=NULL;
AdditionalAvailability=NULL;
MaxQuiesceTime=NULL;
EnabledState=2;
OtherEnabledState="NULL";
RequestedState=2;
EnabledDefault=2;
TimeOfLastStateChange=NULL;
InstallDate=NULL;
Name="0";
OperationalStatus=NULL;
StatusDescriptions=NULL;
Status="NULL";
Caption="Linux Processor";
Description="This class represents instances of available processors.";
ElementName="Intel(R) Pentium(R) M processor 1.60GHz";
};
          

2.Anzeige und Abfrage unter Benutzung des SNIA Browser :

SniaWBEMBrowser..jpg
SniaWBEMBrowser2.jpg


Der SNIA Browser wird ab diesem Zeitpunkt nicht mehr benutzt und durch den Browser in WBEMServices : cimworkshop ersetzt. Da dieser einen erweiterten Funktionsumfang wie einfacheres modifizieren von Objekten sowie eine Eingeschränkte Eventbehandlung oder die Suche (deep search) nach Klassennamen ermöglicht. Verzeichnisse:

CIMOM: wbemservices/cimom/bin ./start.. ./stopcimom Cimworkshop: wbemservices/bin ./cimworkshop

Der CIMOM des WBEMServices Paketes wird nicht eingesetzt da sich der SBLIM Provider nur für die folgenden CIMOMS (CIMServer) registrieren lässt:

usage: ../provider-register.sh [-h] [-v] [-d] [-t <cimserver>] -r regfile ... -m mof ...


./provider-register.sh 	-t openwbem -r Linux_Base.registration  -m Linux_Base.mof
./provider-register.sh 	-t pegasus -r Linux_Base.registration  -m Linux_Base.mof
./provider-register.sh 	-t sfcb -r Linux_Base.registration  -m Linux_Base.mof
./provider-register.sh 	-t sniacimom -r Linux_Base.registration  -m Linux_Base.mof

Jedoch erhält man bei der Registrierung des sniacimom die Fehlermeldung :sniacimom not yet supported, wodurch die unterstützte Anzahl der CIMOMS zur Zeit auf drei fällt.


Abfrage einer Instanz des SBLIM Providers mit dem Browser in WBEMServices:


SBLIMAbfrage1.jpg
SBLIMAbfrage2.jpg


3.Abfrage mit dem in Java erstellten Programm TestQ:

Nachdem der WBEMServices CIMOM gestartet und der SBLIM Provider registriert wurde, können mit diesem Programm WQL Abfragen auf die Klassen des Providers formuliert werden.


1.In der Querie ist ein Schwellwert gesetzt der bei Überschreitung eine Warnmeldung und die erreichte Frequenz in der Console ausgibt.In Programm 3 wird der Wert der aktuellen CPU Frequenz überwacht, der bei Überschreitung von 700 Mhz eine Warnmeldung ausgibt.


2.Abfrage verschiedener Parameter von der jeweils einzig erstellten Instanz verschiedener Klassen. Bsp.

          - Aktueller Benutzername
          - Serialnr. des Motherboards
          - Version des laufende Betriebssystems
          - freier physikalischer Speicher

3.Abfrage eines Parameters über alle Instanzen der Klasse Linux_UnixProcess. Da hier ohne eine Einschränkung alle Processe mit ihren Attributen angezeigt werden würden, wurde eine Besschränkung in der WSQL Abfrage gesetzt. Es wird nur nach Elementen mit dem "Element Namen owcimomd" gesucht und nur diese mit ihren Attributen ausgegeben.

4.Beliebige Eingabe einer WSQL Anfrage im Consolenmodus. Nach Auswahl der 4. Option, muss ein WQL String für die gewünschte Ausgabe ohne Anführungsstriche formuliert werden. Bsp. SELECT * from Linux_Processor



Bewertung

Zusammenfassung

Literatur zum Einstieg:

[1] WWR-Modul „Management von verteilten Systemen“ [1]

[2] Hegering/Neumair/Wies: Tutorial

[3] Hegering, Abeck, Neumair: Integriertes Management vernetzter Systeme, dPunkt-Verlag, 1999

[4] CIM Tutorial: [2]