SlideShare uma empresa Scribd logo
1 de 73
Baixar para ler offline
Seite 1Gunther Pippèrr © 2014 http://www.pipperr.de
EIN ORACLE NOSQL ENTERPRISE
MANAGER / CLOUD CONTROL 12C
PLUG-IN ERSTELLEN
Den Oracle Enterprise Manager flexibel erweitern
Konferenz Nürnberg 2014
NoSQL Vortrag – Taiwan/Taipei 2014
Seite 2Gunther Pippèrr © 2014 http://www.pipperr.de
Agenda
 Architektur
 Vorbereitung:
– Versionsnummer / Namensgebung / Verzeichnisstruktur
 Überwachung auf dem Agent
– Zu überwachende Metriken für den Agent deklarieren
 Plug-In Homepage erstellen
– Anzeige der Homepage des Target im OMS
 Weitere Möglichkeiten der Erfassung
Seite 3Gunther Pippèrr © 2014 http://www.pipperr.de
Grundlagen - Konzept
Das Oracle 12c Plug-In Konzept
Seite 4Gunther Pippèrr © 2014 http://www.pipperr.de
OMS 12c Architektur - Gesamtübersicht
Oracle Enterprise Linux 6 64bit
Java 1.6
Oracle
WebLogic
Server 10.3
Repository
11g/12c
Oracle Enterprise Manager
CloudControl 12c
Monitoring
Plug-In
Monitoring
Plug-In Monitoring
Plug-In
Monitoring
Plug-In
Agent
1
Monitoring
Plug-In
Monitoring
Plug-In
Monitoring
Plug-In
Agent
2
Monitoring
Plug-In
Monitoring
Plug-In
Agent
3
Seite 5Gunther Pippèrr © 2014 http://www.pipperr.de
Architektur Plug-In OMS
 Seit Oracle 12c setzt Cloud Control auf eine
konsequente Plug-In Architektur mit der Möglichkeit
der deklarativen Programmierung / Entwicklung
eigener Erweiterungen
Agent
User
defined
Plug-in
Management Server
User
defined
Plug-in
Default
Plug-ins
Vorteil:
Einzelne Teile (bzw. Targets wie die Datenbank) lassen sich je nach Bedarf getrennt patchen!
( aktuelle OEM Version 12.1.0.4.0 )
Default
Plug-ins
Seite 6Gunther Pippèrr © 2014 http://www.pipperr.de
Ziel für unser Plug-In (1)
 Für die Oracle NoSQL Datenbank steht noch kein offizielles
Plug-In zur Verfügung - Es ist zu erwarten, dass auch nur die
kommerzielle Version mit einem Plug-In ausgeliefert wird
 Die Oracle NoSQL Datenbank soll aber nun ebenfalls über
CloudControl 12c in der Kundenumgebung überwacht werden
 Zu überwachende Eigenschaften:
– Ist das System auf dem lokalen Node verfügbar (Status des SN)
– In welchen Status befinden sich die Nodes/Replica des gesamten Stores
– Wie viele Datensätze sind im Store abgelegt
– Wie viel Plattenplatz verbraucht der Store auf der lokalen Maschine und
wie viel Plattenplatz steht für den Store noch zur Verfügung
– Wie hoch ist der Speicherverbrauch der Java Umgebung
Seite 7Gunther Pippèrr © 2014 http://www.pipperr.de
Ziel für unser Plug-In (2)
 Eine eigene Home Page im Management Server
Seite 8Gunther Pippèrr © 2014 http://www.pipperr.de
NoSQL Architektur versus Single Server Plug-In
 NoSQL Architektur
Server 1
Storage Node 1
SN 1
Server 2
Storage Node 2
SN 2
Server 3
Storage Node 3
SN 3
Rg1-
n1
Master 1
Replication Node
Replikat 1
Replication Node
Replikat 2
Replication Node
Shared A Shared B Shared CAdmin Srv Admin Srv Admin Srv
Storage Node Agent (SNA) Storage Node Agent (SNA) Storage Node Agent (SNA)
Rg2-
n1
Rg3-
n1
Rg1-
n2
Rg2-
n2
Rg3-
n2
Rg1-
n3
Rg2-
n3
Rg3-
n3
Agent
Für jeden
Knoten
Agent
Für jeden
Knoten
Agent
Für jeden
Knoten
Seite 9Gunther Pippèrr © 2014 http://www.pipperr.de
NoSQL as a Cluster?
 Im Prinzip stellt ein NoSQL Store in der Überwachung
ein Cluster dar
 Ideale Umsetzung:
– Cluster Homepage für den eigentlichen Store
• Metadaten des Stores wie Anzahl der Einträge
– Eine Seite pro Node
Hauptproblem:
• Erstellen von Cluster Plug-Ins nicht
dokumentiert
• Ableiten aus dem DB Plug-In nicht erfolgreich
Target_TYPE
NoSQL_Cluster
Target_TYPE
NoSQL
Target_TYPE
NoSQL
Target_TYPE
NoSQL
Ein Problem:
• Unique ID im NoSQL Store fehlt per Default
Seite 10Gunther Pippèrr © 2014 http://www.pipperr.de
Workaround über Redundancy System
 Plug-In für den Target Type "NoSQL"
– Jeder Knoten wird als eigenständiges Target erfasst
• Nachteil: Anzahl der Einträge wird doppelt ermittelt
– Beim Erfassen einer bestimmten Metrik auf dem Knoten,
wird im Store eine unique Identifier angelegt, falls diese noch
nicht existiert
• Damit lassen sich später die Knoten wieder zu ihren Stores
zusammenfassen
– Per Hand wird ein " Redundancy System" angelegt und die
passenden Knoten werden diesem System zugeordnet
Seite 11Gunther Pippèrr © 2014 http://www.pipperr.de
Aufsetzen der
Entwicklungsumgebung
Ordnung muss sein
Seite 12Gunther Pippèrr © 2014 http://www.pipperr.de
Aufsetzen der Entwicklungs-Umgebung
 Das „Extensibility Development Kit“ - EDK - für die
Plug-In Entwicklung vom OMS laden
– Voraussetzung:
• Java 1.6
• Unter Windows – Lokale Admin Rechte!
Um das EDK mit EMCLI zu laden:
emcli get_ext_dev_kit
Seite 13Gunther Pippèrr © 2014 http://www.pipperr.de
Aufsetzen der Entwicklungs-Umgebung
 Das Extensibility Development Kit“ - EDK - enthält alle
notwendigen Dateien, um ein Plug-In aus den
Definitions Dateien zu erzeugen
 Zip File des EDK in ein lokales Verzeichnis "edk"
extrahieren
– Zum Beispiel unter ~/plugin_dev/edk
Die Plug-In Entwicklung erfolgt am bestem auf dem Management Server selbst.
unzip 12.1.0.4.0_edk_partner.zip -d ~/plugin_dev/edk/
Seite 14Gunther Pippèrr © 2014 http://www.pipperr.de
Vorbereitung – Verzeichnis Struktur Projekt
 Die Projektstruktur kann frei gewählt werden – für
unser Projekt verwenden wir:
Struktur und Namensgebungen immer sehr genau kontrollieren!
Source Code des Plug-Ins
Generierte OPAR Datei (Installationsdatei)
Logfiles
Unsere Custom Skript Library
Temp Folder für die Generierung
Projektverzeichnis mit unseren Build Skripten
Source Code der Java Klassen für eigene Metriken
Dokumentation
Seite 15Gunther Pippèrr © 2014 http://www.pipperr.de
Vorbereitung – Struktur für das Plug-In anlegen
 Die deklarative Entwicklung über XML
Definitionsdateien erfordert eine streng einzuhaltende
Verzeichnisstruktur
Zu Beginn die häufigste Fehlerquelle!
XML Definitionsdateien für den Agenten
XML Definitionsdateien für das Discovery
XML Definitionsdateien für den OMS Management Server
Seite 16Gunther Pippèrr © 2014 http://www.pipperr.de
Vorbereitung – Versions-Nr. zweistellig definieren
 Wichtig ist die Einhaltung der Syntax bei der
Versionsnummer
Ist die Versionsnummer falsch (zum Beispiel weil die letzte Nr. eine 0 ist) schlägt das Deployment
fehl!
Plug-In Version definieren: a.b.c.d.e
a.b = Die Version des Enterprise Manger Extensibility Development Kit (EDK),
dass bei der Entwicklung verwendet wurde (12.1, 12.2, usw.).
c = Muss immer eine 0 sein
d = Die aktuelle Version des Plug-In, vom Entwickler vergeben
+ können 1 oder 2 Digits ([1-9] | [0-9][1-9] ) sein
+ Bei jedem Update muss die Nummer angepasst werden
e = Für den zukünftigen Einsatz - Default Wert ist 0
Die Plug-In Version lautet damit für die erste Version: 12.1.0.01.0
Wichtig ist es, dass die letzte Stelle NICHT verwendet wird!
,
Seite 17Gunther Pippèrr © 2014 http://www.pipperr.de
Vorbereitung – Plug-In ID und Target Type
 Die Plug-In ID identifiziert eindeutig das selbst-
entwickelte Plug-In
 Plug-In ID definieren
• Vendor ID (8 chars) = gpiconsl
• Product ID (8 chars) = nosql
• Plug-in Tag (4 chars) = x001
 Der Plug-In Name lautet damit gpiconsl.nosql.x001
 Kürzel für den „Target Type“ vergeben: nosql
Streng auf die durchgängige Verwendung und richtige Benennung des „Target Type“ achten!
Muss ab 12.1.0.4 zwingend ein x sein!
Seite 18Gunther Pippèrr © 2014 http://www.pipperr.de
Die XML Definitionen für die ersten Schritte erstellen
 Plug-In Basisstruktur – Datei und Verzeichnisse
– plugin.xml
• AGENT
– plugin_registry.xml
– default_collection/nosql.xml
– metadata/nosql.xml
• DISCOVERY
• OMS
– metadata/targetType/nosql.xml
– metadata/default_collection/nosql.xml
Der Name nosql entspricht dem Target Namen
– empfohlene Namensgebung!
Im ersten Test wurde ein Fehler geworfen, wenn diese Dateinamen NICHT gleich zum Target Type Namen
sind!
1 zu 1 Kopie aus dem Agent Home!
Für eine Basisversion sind 4 XML Dateien ausreichend
Seite 19Gunther Pippèrr © 2014 http://www.pipperr.de
Umsetzung – Plugin.xml – Definitionsdatei für das Plug-In
 Speicherort: <stage>/plugin.xml
 Zu definierende Werte:
– Plug-In ID
– Plug-In Version
– Readme und Description
– Target Type Name und welche Versionen des eigenen Plug-
Ins werden unterstützt
– Auf welcher OEM Version kann das Plug-In installiert werden
– Plug-In Attribute
– Auf welchen Plattformen läuft das Plug-In
Seite 20Gunther Pippèrr © 2014 http://www.pipperr.de
Umsetzung – Beispiel für die plugin.xml (1)
Plug-In Version
Plug-In ID
Target Type
Plug-In wird als Database Plug-In definiert
Seite 21Gunther Pippèrr © 2014 http://www.pipperr.de
Umsetzung – Beispiel für die plugin.xml (2)
OS der Oracle Management Servers – 2000 Generisch
OS der Agent Betriebssysteme - 46 / 226 für Linux 32 /Linux 64
Seite 22Gunther Pippèrr © 2014 http://www.pipperr.de
Umsetzung – agent/plugin_registry.xml
 Mit der Datei plugin_registry.xml im Agent Verzeichnis
wird das eigentliche Agent Plug-In definiert
– Werte
• PlugID - muss der ID aus plugin.xml entsprechen
• Speicherort für die Metrik Definitionsdateien
Seite 23Gunther Pippèrr © 2014 http://www.pipperr.de
AGENT Umsetzung – agent/metata/nosql.xml
 In der Datei nosql.xml werden die Metriken definiert
 Wichtiger Parameter META_VER
– Bei der Entwicklung kann die Daten manuell auf dem OMS
deployed werden
– Damit aber eine Veränderung vom OMS erkannt werden
kann, muss die Versions-Nummer dieser Datei bei jeden
Upload hoch gezählt werden
Bei 0.1 beginnen und bei jeder Aktualisierung hochzählen
Auf die korrekte Schreibweise des Target Type achten!
Seite 24Gunther Pippèrr © 2014 http://www.pipperr.de
Metriken (Checks) für den Agenten definieren
 Mit den zwei XML Dateien im Verzeichnis "metadata"
und "default_collection" werden die Metriken bzw.
Checks definiert
 In der nosql.xml im Verzeichnis "metadata" :
WIE und WELCHE Werte sollen ermittelt werden
 In der nosql.xml im Verzeichnis "default_collection":
WAS und WIE OFT soll zum OMS versandt werden
Seite 25Gunther Pippèrr © 2014 http://www.pipperr.de
Metrik Nr. 1 – Response ( Ist der Dienst verfügbar ) (1)
 In der metric XML ( in unseren Fall die
"metadata/nosql.xml") im "metadata" Verzeichnis wird
definiert, WIE ein Wert auf dem System ermittelt
werden soll
 Dazu werden die Oracle "Fetchlets" verwendet
– Fetchlets => Anweisungsblöcke mit welcher Technologie und
wie die Werte ermittelt werden können (13 Typen stehen zur
Verfügung)
– Eingesetzte Fetchlet Typen im diesen Plug-In
• JMX Abfragen (JAVA Management Interface abfragen)
– FETCHLET_ID="JMX"
• Script Aufrufe (mit Hilfe von frei definierbaren Bash/perl Skripten
werden Daten erfasst und als Text-Zeilen zurückgegeben)
– FETCHLET_ID="OSLineToken"
metadata/nosql.xml
Seite 26Gunther Pippèrr © 2014 http://www.pipperr.de
Metrik Nr. 1 – Response ( Ist der Dienst verfügbar ) (2)
JMX Parameter
Spalten Definition
True bedeutet, Wert wird NICHT
in der Metrik View angezeigt
Der Status wird aus der StartTime Spalte errechnet
metadata/nosql.xml
Seite 27Gunther Pippèrr © 2014 http://www.pipperr.de
Metrik Nr. 1 – Response ( Ist der Dienst verfügbar ) (3)
 Wie kommen wir zu den Parameter für das Fetchlet?
 Parameter für Setup und Credential werden ebenfalls
in der "metadata/nosql.xml" Datei definiert
metadata/nosql.xml
Seite 28Gunther Pippèrr © 2014 http://www.pipperr.de
Metrik Nr. 1 – Response ( Ist der Dienst verfügbar ) (4)
 Aus diesen Parametern entsteht auch die Maske im
OMS bzgl. der Monitoring Konfiguration:
metadata/nosql.xml
Seite 29Gunther Pippèrr © 2014 http://www.pipperr.de
Umsetzung – nosql.xml im Verzeichnis default_colletion
 Die Target Collection definiert WAS und WIE oft die
Daten abgeholt werden
 Definiert die Thresholds für die Alarmierung
Auf die korrekte Schreibweise der Target Type achten!
default_colletion/nosql.xml
Seite 30Gunther Pippèrr © 2014 http://www.pipperr.de
AGENT Umsetzung – Metrik bekannt geben
 Über die nosql.xml unter "default_colletion" wird
definiert, WAS und WIE OFT versandt wird
Wie oft soll der Wert abgefragt werden?
Wann soll ein Alarm erzeugt werden?
Name der Metrik
default_colletion/nosql.xml
Seite 31Gunther Pippèrr © 2014 http://www.pipperr.de
OSLineToken Fetchlet verwenden
 Über das OSLineToken Fetchlet können aus dem
Betriebssystem Werte gelesen werden
 Als Rückgabewert wird eine Art CSV Liste erwartet
Wert aus Instance Konfiguration verwenden
Skript erzeugt den folgenden OutPut: StoreSize=/u00/app/oracle/kvdata/NODE01/KVStore|21484663|64092696|26035680
metadata/nosql.xml
Seite 32Gunther Pippèrr © 2014 http://www.pipperr.de
OSLineToken Fetchlet – Skripte einbinden
 Die aufzurufenden Skripte und alle notwendigen
Libraries (wie JAR Files) dazu werden unter
agent/scripts/nossql abgelegt
Hole die Anzahl an Elemente aus dem Store
Speicherplatz überwachen
Topologie / Status des Store auswerten
Libraries
metadata/nosql.xml
Seite 33Gunther Pippèrr © 2014 http://www.pipperr.de
OSLineToken Fetchlet – Beispiel Skript
 Skript für die Größe des Stores:
Absoluten Pfad ermitteln
agent/scripts/nosql/getKVRoot.sh
Script erzeugt den folgenden OutPut: StoreSize=/u00/app/oracle/kvdata/NODE01/KVStore|21484663|64092696|26035680
Seite 34Gunther Pippèrr © 2014 http://www.pipperr.de
Agent Metrik - Zusammenfassung
 Zusammenfassung:
Welche Schritte sind für eine neue Metrik notwendig:
– Definition der Metrik in der "metadata/nosql.xml"
– Bekanntgabe der Metrik in der "default_collection/nosql.xml"
– Kontrolle, ob noch weitere Credentials als Parameter in der
"metadata/nosql.xml" hinterlegt werden müssen
– Kontrolle, ob noch weitere Parameter als Instance
Parameter in der "metadata/nosql.xml" hinterlegt werden
müssen
Seite 35Gunther Pippèrr © 2014 http://www.pipperr.de
Die Version 1 deployen
Wie bringe ich das nun in den OMS?
Seite 36Gunther Pippèrr © 2014 http://www.pipperr.de
OEM prüfen
 Vor dem Deploy prüfen, ob der OEM für den Upload
konfiguriert worden ist
Seite 37Gunther Pippèrr © 2014 http://www.pipperr.de
Version 1 deployen
 Nach dem Erstellen der ersten XML Dateien können
wir die erste Version auf dem Management Server
ausrollen
 Ablauf:
– Validieren ob alle XML den Oracle Standards entsprechen
– ${EMDK_HOME}/bin/empdk validate_plugin …
– OPAR Datei 12.1.0.01.0_gpiconsl.nosql.x001_2000_0.opar
für das Deloyment erzeugen:
– ${EMDK_HOME}/bin/empdk create_plugin …
– OPAR Datei deployen:
– ${OEM_HOME}/bin/emcli import_update …
Für diese Schritte empfiehlt es sich entsprechende Skripte zu erstellen!
Seite 38Gunther Pippèrr © 2014 http://www.pipperr.de
Plug-In auf dem OMS und dem Agent "ausrollen„ - 1
 Plug-In auf dem OMS deployen
Seite 39Gunther Pippèrr © 2014 http://www.pipperr.de
Plug-In auf dem OMS und dem Agent "ausrollen„ - 2
 Plug-In auf dem OMS deployen
Seite 40Gunther Pippèrr © 2014 http://www.pipperr.de
Plug-In auf dem OMS und dem Agent "ausrollen„ - 3
 Plug-In auf dem OMS deployen
Seite 41Gunther Pippèrr © 2014 http://www.pipperr.de
Plug-In auf dem OMS und dem Agent "ausrollen„ - 4
 Plug-In auf dem OMS deployen
Seite 42Gunther Pippèrr © 2014 http://www.pipperr.de
Plug-In auf dem Agent ausrollen
 Plug-In auf dem Agent ausrollen
Seite 43Gunther Pippèrr © 2014 http://www.pipperr.de
Plug-In auf dem OMS und dem Agent "ausrollen"
 Plug-In auf dem Agent deployen
– Target auswählen und dort das Plug-In deployen:
Seite 44Gunther Pippèrr © 2014 http://www.pipperr.de
Taget aufrufen
Seite 45Gunther Pippèrr © 2014 http://www.pipperr.de
Auf dem Node über die Agent Metriken die Metriken testen
 Über die URL des Management Agenten kann auf dem Node
geprüft werden ob die Metriken erfasst werden können
 Voraussetzung : Metrik Browser auf dem Agent aktiveren
 Im Agent Home:
– emctl setproperty agent -name _enableMetricBrowser -
value true
– emctl reload
– URL https://oraoms12c01.pipperr.local:3872/emd/browser/main aufrufen
und anmelden
als Agent OS User
anmelden
Seite 46Gunther Pippèrr © 2014 http://www.pipperr.de
Die Version 2 deployen
Wie entwickle ich das nun weiter?
Seite 47Gunther Pippèrr © 2014 http://www.pipperr.de
Eine neuere Version des Plug-Ins erstellen
 Für eine neuere Version muss die Plug-In Version hochgezählt
und mit dem "create" Befehl ein neues Plug-In Bundle mit der
neuen Versionsnummer erzeugt werden
 ACHTUNG : !!BUG!! ( falls noch OEM Version 12.1.0.1.0 im
Einsatz!)
– Beim Erzeugen eines Installationspaketes werden in das „stage“
Verzeichnis unter agent/discovery/oms "install" Verzeichnisse angelegt
– Diese Verzeichnisse müssen zuvor gelöscht werden, da ansonsten der
Build abbricht
Fehler:
„2013-07-01 16:25:34,877 [main] ERROR packaging.PluginPackager logp.251
– OSPOUIError oracle.sysman.pdk.packaging.OSPOUIError:
Exit value of process oui/bin/runInstaller is non-zero: 255”
Seite 48Gunther Pippèrr © 2014 http://www.pipperr.de
Zusammenfassung
 Bei jeden Full Deploy einer neuen Version
Versionsnummer in "plugin.xml" und
"agent/plugin_registry.xml" hochzählen
 NIE Versionsnummer per Hand auf dem Agent höher
als auf dem OMS setzen ( z.B. beim Testen auf dem
Agent mit einer neueren plugin.xml Datei!)
– Agent wird in den Status blocked versetzt und muss neu vom
OMS aus synchronisiert werden!
Seite 49Gunther Pippèrr © 2014 http://www.pipperr.de
Weitere Metriken im laufenden
Betrieb entwickeln
Nach mehr Daten abfragen
Seite 50Gunther Pippèrr © 2014 http://www.pipperr.de
Im laufende Betrieb Metriken deployen
 Im laufenden Betrieb können Änderungen an Metriken auch
direkt deployed werden
 Vorteil: Es muss nicht jedes Mal bei jeder kleinen Änderung
umständlich eine neue Version deployed werden
 1. Deployment der Metrik Metadaten mit:
– ${OMS_HOME}/bin/emctl register oms metadata -service targetType …
– ${OMS_HOME}/bin/emctl register oms metadata -service
storeTargetType …
– ${OMS_HOME}/bin/emctl register oms metadata -service
default_collection …
 2. Kopieren der Metadaten per Hand in das Plug-In
Verzeichnisse mit der richtigen Version vom Agent
 3. Agent neu starten
Für diese Schritte empfiehlt es sich entsprechende Skripts zu erstellen!
Seite 51Gunther Pippèrr © 2014 http://www.pipperr.de
Die OEM Homepage für das
Target definieren
Eine hübsche Oberfläche erstellen
Seite 52Gunther Pippèrr © 2014 http://www.pipperr.de
Eine eigene Home Page Seite definieren
 Varianten:
– Default Seite des OMS für das Target verwenden (HTML)
– Eine "angepasste" Seite mit einer XML Definition erstellen (
FLASH)
– Eine eigene FLASH Seite definieren
 Für das NoSQL Plug-In kommt die Variante 2 zum
Einsatz
– Über die Datei
„oms/metadata/mpcui/metadata_ui_homepage_charts.xml“
wird eine eigene Flash Seite deklarativ erstellt
Seite 53Gunther Pippèrr © 2014 http://www.pipperr.de
OEM Page über die mpcui xml erzeugen
 Mit Hilfe der XML Definitionsdatei
"oms/metadata/mpcui/metadata_ui_homepage_charts.
xml" kann eine eigene Seiten im OMS definiert werden
 Ziel:
Seite 54Gunther Pippèrr © 2014 http://www.pipperr.de
Mögliche Elemente
 Ein Metrik direkt in einer Tabelle anzeigen
 Ein Chart aus einer Metrik erzeugen
 Eine SQL Abfrage visualisieren
– Als Tabelle
– Als Chart
 „Incidents“ und „Problems“ darstellen
Seite 55Gunther Pippèrr © 2014 http://www.pipperr.de
Target Home Page durch eigene Seite ersetzen
 Soll die Default Homepage im OEM mit einer eigenen
Homepage Seite ersetzt werden:
– 1. Datei
"oms/metadata/systemUiIntegration/nosql_systemUiIntegrati
on.xml" erstellen
– In der "oms/mpcui/metadata_ui_homepage_charts.xml" eine
Seite mit der ID "homePg" definieren
Danach muss das Plug-In als eine neue Version komplett auf dem OMS neu deployed werden,
damit die Änderung auch wirklich verwendet wird
Seite 56Gunther Pippèrr © 2014 http://www.pipperr.de
Fehlerquellen/Probleme bei der Entwicklung
 Bei Änderungen in der XML Datei sind bestimmte
Änderungen nur durch ein vollständiges neues
Deployment auf dem Management Server möglich:
– Navigationselement in der Seite ändern / erstellen
– System Home Page mit einer eigenen Seite ersetzen
Seite 57Gunther Pippèrr © 2014 http://www.pipperr.de
Grundprinzip der „mpcui“ XML Datei
 Eine Seite (mp:Page) ist in Spalten (mx:Vbox) und Zeilen
(mx:Hbox) aufgeteilt
 Elemente auf der Seite werden in Regions (mp:Region)
"gruppiert“
– Region ist die aufklappbare Einheit auf der Seite wie:
 Elemente auf der Seite werden in XML definiert (wie mp:Table
,mp:chart) und verwenden Datenquellen wie
mp:SQLDataService
 Datenquellen werden pro Seite deklariert (mp:services)
 Datenquellen können global definierte SQL's verwenden
(SqlStatements)
 Seiten und Dialog werden global registriert (Integration)
Seite 58Gunther Pippèrr © 2014 http://www.pipperr.de
„mpcui“ XML – Elementstruktur muss definiert werden
 CustomUI
– SqlStatements
– UIMetadata
• Integration
– mp:Integration
» mp:PageActivityDef
» mp:DialogActivityDef
– ActivityDefinition
» mp:Page
• mp:services
• mx:Hbox
• mp:Region
• mp:InfoDisplay oder mp:Table oder mp:LineChart etc.
– MenuMetadata
– EmuiConfig
Seite 59Gunther Pippèrr © 2014 http://www.pipperr.de
Beispiel - metadata_ui_homepage_charts.xml (1)
 Eine bestehende Metrik als Tabelle auslesen
Verweis auf die Metrik
Seite 60Gunther Pippèrr © 2014 http://www.pipperr.de
Beispiel - metadata_ui_homepage_charts.xml (2)
 Ergebnis eines SQL's auf der Seite anzeigen
– Zum Beispiel die Version des Stores
• SQL Definieren unter <SqlStatements>
• Service definieren unter <mp:services>
• Daten auslesen und in einem mp:InfoDisplay anzeigen
Seite 61Gunther Pippèrr © 2014 http://www.pipperr.de
Beispiel - metadata_ui_homepage_charts.xml (3)
 Existierende „Regions“ einbinden
– Job Activities
• <mp:JobSummaryRegion width="25%" height="100%" />
– Job Overviews
• <mp:JobsActivityRegion id="jobsOverview" height="40%" />
– status
• <mp:StatusOverviewRegion id="statusOverview" height="50%" />
– Issues overview
• <mp:IssuesOverviewRegion id="issuesOverview" height="50%" />
– IncidentRegion
• <mp:IncidentRegion width="50%" height="100%" />
Seite 62Gunther Pippèrr © 2014 http://www.pipperr.de
Eigene Home Page debuggen
 Mit dem Anfügen von folgenden Parametern an die Url im OMS
"&loglevel=ALL,CONSOLE" kann die Homepage Konsole
geöffnet werden
……………………………………..
Seite 63Gunther Pippèrr © 2014 http://www.pipperr.de
Zusammenfassung
 Homepage wird über die mpcui XML Datei unter
oms/mpcui/xxxx.xml definiert
 Soll die Standard Home Page gesetzt werden muss die
Datei
"oms/metadata/systemUiIntegration/nosql_systemUiIntegr
ation.xml" angelegt und eine neue Version deployed
werden!
 Eine eigene Homepage kann Daten aus SQL Abfragen
oder integrierten Metriken darstellen
– Charts und Tabellen möglich
– Vordefinierte Regions für Status und Jobs
– Es können Detail Charts als Dialoge geöffnet werden
Seite 64Gunther Pippèrr © 2014 http://www.pipperr.de
Nächste Schritte
Weitere Features erstellen
Seite 65Gunther Pippèrr © 2014 http://www.pipperr.de
Weitere Möglichkeiten realisieren
 Collection Items definieren
– Stammdaten des Targets einsammeln
 Discovery definieren
– Automatisch erkennen, ob das Target auf dem Host existiert
 Topologien erkennen
– Zusammenhänge zwischen den Targets im Repository
hinterlegen
Seite 66Gunther Pippèrr © 2014 http://www.pipperr.de
Zusammenfassung
Plug-In Development
Seite 67Gunther Pippèrr © 2014 http://www.pipperr.de
Zusammenfassung
 Ein Plug-In wird deklarativ über XML Dateien
entwickelt
– Die eigentliche Kernfunktionalität – das Ermitteln der
eigentlichen Daten erfolgt je nach Bedarf über FETCHLETS
=> Programmbausteine über Perl/Bash/Java
Implementierungen
 Drei Bereiche
– Agent
– OMS
– Discovery
Seite 68Gunther Pippèrr © 2014 http://www.pipperr.de
Fazit
 Mit dem Plug-In Konzept hat Oracle dem OEM in Richtung
Kundenfreundlichkeit deutlich geöffnet
 Der Kunde hat nun die Möglichkeit beliebige Applikationen und Business
Prozesse auch im Enterprise Manager mit zu verwalten
 Eine eigne Lizenz ist dazu nicht notwendig, allerdings ist im Detail zu prüfen,
ob der Agent auf „nicht Oracle“ Hosts entsprechend lizensiert werden muss
 Leider wird noch nicht ein „Kunden Cluster Target“ unterstützt, auch das
Verknüpfen von Targets über die Topologien könnte etwas besser
dokumentiert werden
 Die Entwicklung selber ist aber mit Basis Kenntnissen in der Skript
Programmierung gut durchführbar
 Die Dokumentation ist leidlich gut und mit den Beispielen der mitgelieferten
Plug-Ins können zügig erste Erfolge erzielt werden
Seite 69Gunther Pippèrr © 2014 http://www.pipperr.de
Fragen
Oracle 12c – Plug-In Development
Seite 70Gunther Pippèrr © 2014 http://www.pipperr.de
Quellen
Wo finde ich mehr zum Thema?
Seite 71Gunther Pippèrr © 2014 http://www.pipperr.de
Oracle Online Dokumentation
 Oracle Online Dokumentation
– http://docs.oracle.com/cd/E24628_01/doc.121/e25161/toc.ht
m
 Dokumentation im EDK Home unter
– doc/overview.html
 Im "samples" Ordner des EDK
– Beispiel Plug-Ins im EDK
– Beispiel Homepages in den Zip Files
 Source Code der default Plug-Ins auf dem Installation
Medium des OMS‘s auf der Disk 3
Seite 72Gunther Pippèrr © 2014 http://www.pipperr.de
Quellen
 Mehr über das Thema siehe auch:
– http://www.pipperr.de/dokuwiki/doku.php?id=dba:oms_12c_p
lugin_development
Seite 73Gunther Pippèrr © 2014 http://www.pipperr.de
Gunther Pippèrr - IT-Architekt - Berater
• High-Tech
• Real Estate
• Utility
• Communications
• IT System Architekt
• Technische Projektleitung
• Design und Implementierung
von Datenbank
Anwendungen
• Entwurf und Umsetzung von
IT Infrastrukturen zum
Datenmanagement
Gunther Pippèrr arbeitet seit mehr als 16 Jahre intensiv mit den
Produkten der Firma Oracle im Bereich
Datenbanken/Applikationsserver und Dokumenten-Management.
Herr Pippèrr hat sich tiefes Wissen über den Aufbau komplexer IT
Architektur aneignen können und hat dieses in der Praxis
erfolgreich umgesetzt.
Herr Pippèrr hat eine Abschluss als Dipl. Ing. Technische
Informatik (FH) an der FH Weingarten.
Industry Expertise
Background
Functional Expertise
 Datenbank Architekt für ein Projekt zur
Massendatenverarbeitung in der Telekommunikation
 Architekt und technische Projektverantwortung für ein Smart
Metering Portal für das Erfassen von Energiezählerdaten und
Asset Management
 Architekt und Projektleitung , Datenbank Design und
Umsetzung für die Auftragsverwaltung mit Steuerung von
externen Mitarbeitern für den Sprachdienstleister von
deutschen Technologiekonzern
 Architekt und technische Projektverantwortung für IT
Infrastrukturprojekte, z.B.:
 Zentrale Datenhaltung für Münchner Hotelgruppe mit
über 25 Hotels weltweit,
 Redundante Cluster Datenbank Infrastrukturen für
diverse größere Web Anwendungen wie Fondplattform
und Versicherungsportale, Loyalty Card Anwendungen
 CRM- und Ausschreibungsportal für großen Münchner
Bauträger
Selected Experience
http://www.pipperr.de
http://orapowershell.codeplex.com
Web

Mais conteúdo relacionado

Mais procurados

Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHagilemethoden
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenOPITZ CONSULTING Deutschland
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
 
In den sicheren Hafen jax2020
In den sicheren Hafen jax2020In den sicheren Hafen jax2020
In den sicheren Hafen jax2020Stephan Kaps
 
Eine Stunde was mit Api First!
Eine Stunde was mit Api First!Eine Stunde was mit Api First!
Eine Stunde was mit Api First!JanWeinschenker
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische EinführungMarcel Eichner
 
Kaps - Es muss nicht immer Kubernetes sein
Kaps - Es muss nicht immer Kubernetes seinKaps - Es muss nicht immer Kubernetes sein
Kaps - Es muss nicht immer Kubernetes seinStephan Kaps
 
Middleware Anwendungen mit dem Zend Framework 3
Middleware Anwendungen mit dem Zend Framework 3Middleware Anwendungen mit dem Zend Framework 3
Middleware Anwendungen mit dem Zend Framework 3Ralf Eggert
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3Peter Kraume
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen B1 Systems GmbH
 
Cross Plattform Apps mit Visual Studio und Apache Cordova
Cross Plattform Apps mit Visual Studio und Apache CordovaCross Plattform Apps mit Visual Studio und Apache Cordova
Cross Plattform Apps mit Visual Studio und Apache CordovaPeter Hecker
 
Kaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment RoadmapKaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment RoadmapStephan Kaps
 

Mais procurados (15)

Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
In den sicheren Hafen jax2020
In den sicheren Hafen jax2020In den sicheren Hafen jax2020
In den sicheren Hafen jax2020
 
Eine Stunde was mit Api First!
Eine Stunde was mit Api First!Eine Stunde was mit Api First!
Eine Stunde was mit Api First!
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
 
systemd & Docker
systemd & Dockersystemd & Docker
systemd & Docker
 
Ard Gate - German
Ard Gate - GermanArd Gate - German
Ard Gate - German
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische Einführung
 
Kaps - Es muss nicht immer Kubernetes sein
Kaps - Es muss nicht immer Kubernetes seinKaps - Es muss nicht immer Kubernetes sein
Kaps - Es muss nicht immer Kubernetes sein
 
Middleware Anwendungen mit dem Zend Framework 3
Middleware Anwendungen mit dem Zend Framework 3Middleware Anwendungen mit dem Zend Framework 3
Middleware Anwendungen mit dem Zend Framework 3
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
 
Cross Plattform Apps mit Visual Studio und Apache Cordova
Cross Plattform Apps mit Visual Studio und Apache CordovaCross Plattform Apps mit Visual Studio und Apache Cordova
Cross Plattform Apps mit Visual Studio und Apache Cordova
 
Kaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment RoadmapKaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment Roadmap
 

Destaque

Seminario cambio cli yarlex
Seminario cambio cli yarlexSeminario cambio cli yarlex
Seminario cambio cli yarlexJulian April
 
Minergie a und holzheizung
Minergie a und holzheizungMinergie a und holzheizung
Minergie a und holzheizungVorname Nachname
 
Rentxpress German Presentation
Rentxpress German PresentationRentxpress German Presentation
Rentxpress German PresentationHomeLtd
 
Presentación tutorias 2015-1
Presentación tutorias 2015-1Presentación tutorias 2015-1
Presentación tutorias 2015-1parrakarla
 
Weg zu wiederherstellen Speicherkarte Daten
Weg zu wiederherstellen Speicherkarte  DatenWeg zu wiederherstellen Speicherkarte  Daten
Weg zu wiederherstellen Speicherkarte Datendinjy obama
 
Mit Fotos gibt es mehr Power im Marketing!
Mit Fotos gibt es mehr Power im Marketing!Mit Fotos gibt es mehr Power im Marketing!
Mit Fotos gibt es mehr Power im Marketing!ROHINIE.COM Limited
 
persoenlichkeit. beziehungen.
persoenlichkeit. beziehungen.persoenlichkeit. beziehungen.
persoenlichkeit. beziehungen.avladeeva
 
Aufbruch mit Minergie: Neue Ansätze, neues Vorgehen
Aufbruch mit Minergie: Neue Ansätze, neues VorgehenAufbruch mit Minergie: Neue Ansätze, neues Vorgehen
Aufbruch mit Minergie: Neue Ansätze, neues VorgehenVorname Nachname
 
SOLCOM Marktstudie - Selbstständige: Finanzen und Absicherung
SOLCOM Marktstudie - Selbstständige: Finanzen und AbsicherungSOLCOM Marktstudie - Selbstständige: Finanzen und Absicherung
SOLCOM Marktstudie - Selbstständige: Finanzen und AbsicherungSOLCOM GmbH
 
Demandas del steg, 28 de agosto 2013
Demandas del steg, 28 de agosto 2013Demandas del steg, 28 de agosto 2013
Demandas del steg, 28 de agosto 2013Rafa Tó
 
179615546 mae-u2-a2-yesm-docx
179615546 mae-u2-a2-yesm-docx179615546 mae-u2-a2-yesm-docx
179615546 mae-u2-a2-yesm-docxHeraclio Garcia
 
Marketingentscheidungen der Destination Kitzbühel basierend auf dem Modell vo...
Marketingentscheidungen der Destination Kitzbühel basierend auf dem Modell vo...Marketingentscheidungen der Destination Kitzbühel basierend auf dem Modell vo...
Marketingentscheidungen der Destination Kitzbühel basierend auf dem Modell vo...Judith Strobl
 
Wie externe Mitarbeiter Ihr Unternehmen bereichern können
Wie externe Mitarbeiter Ihr Unternehmen bereichern könnenWie externe Mitarbeiter Ihr Unternehmen bereichern können
Wie externe Mitarbeiter Ihr Unternehmen bereichern könnenMark SThree
 

Destaque (20)

Seminario cambio cli yarlex
Seminario cambio cli yarlexSeminario cambio cli yarlex
Seminario cambio cli yarlex
 
Redes Sociales
Redes Sociales Redes Sociales
Redes Sociales
 
Minergie a und holzheizung
Minergie a und holzheizungMinergie a und holzheizung
Minergie a und holzheizung
 
Rentxpress German Presentation
Rentxpress German PresentationRentxpress German Presentation
Rentxpress German Presentation
 
September
SeptemberSeptember
September
 
Presentación tutorias 2015-1
Presentación tutorias 2015-1Presentación tutorias 2015-1
Presentación tutorias 2015-1
 
Weg zu wiederherstellen Speicherkarte Daten
Weg zu wiederherstellen Speicherkarte  DatenWeg zu wiederherstellen Speicherkarte  Daten
Weg zu wiederherstellen Speicherkarte Daten
 
Mit Fotos gibt es mehr Power im Marketing!
Mit Fotos gibt es mehr Power im Marketing!Mit Fotos gibt es mehr Power im Marketing!
Mit Fotos gibt es mehr Power im Marketing!
 
persoenlichkeit. beziehungen.
persoenlichkeit. beziehungen.persoenlichkeit. beziehungen.
persoenlichkeit. beziehungen.
 
2000-Watt-Areale
2000-Watt-Areale2000-Watt-Areale
2000-Watt-Areale
 
MH_Fokus_1_2016
MH_Fokus_1_2016MH_Fokus_1_2016
MH_Fokus_1_2016
 
Aufbruch mit Minergie: Neue Ansätze, neues Vorgehen
Aufbruch mit Minergie: Neue Ansätze, neues VorgehenAufbruch mit Minergie: Neue Ansätze, neues Vorgehen
Aufbruch mit Minergie: Neue Ansätze, neues Vorgehen
 
Frases del dia
Frases del diaFrases del dia
Frases del dia
 
SOLCOM Marktstudie - Selbstständige: Finanzen und Absicherung
SOLCOM Marktstudie - Selbstständige: Finanzen und AbsicherungSOLCOM Marktstudie - Selbstständige: Finanzen und Absicherung
SOLCOM Marktstudie - Selbstständige: Finanzen und Absicherung
 
Demandas del steg, 28 de agosto 2013
Demandas del steg, 28 de agosto 2013Demandas del steg, 28 de agosto 2013
Demandas del steg, 28 de agosto 2013
 
179615546 mae-u2-a2-yesm-docx
179615546 mae-u2-a2-yesm-docx179615546 mae-u2-a2-yesm-docx
179615546 mae-u2-a2-yesm-docx
 
Marketingentscheidungen der Destination Kitzbühel basierend auf dem Modell vo...
Marketingentscheidungen der Destination Kitzbühel basierend auf dem Modell vo...Marketingentscheidungen der Destination Kitzbühel basierend auf dem Modell vo...
Marketingentscheidungen der Destination Kitzbühel basierend auf dem Modell vo...
 
Erfa Materialoekologie
Erfa MaterialoekologieErfa Materialoekologie
Erfa Materialoekologie
 
Trabajo grupal
Trabajo  grupalTrabajo  grupal
Trabajo grupal
 
Wie externe Mitarbeiter Ihr Unternehmen bereichern können
Wie externe Mitarbeiter Ihr Unternehmen bereichern könnenWie externe Mitarbeiter Ihr Unternehmen bereichern können
Wie externe Mitarbeiter Ihr Unternehmen bereichern können
 

Semelhante a Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr

Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenIonic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenHendrik Lösch
 
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Torsten Kleiber
 
Rex - Infrastruktur als Code
Rex - Infrastruktur als CodeRex - Infrastruktur als Code
Rex - Infrastruktur als CodeJan Gehring
 
Azure Notebooks
Azure NotebooksAzure Notebooks
Azure NotebooksTEitelberg
 
WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektWebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektOPITZ CONSULTING Deutschland
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatengeKarin Patenge
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...LeanIX GmbH
 
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
2014 borys neselovskyi_web_logic_server_auf_oda_praesentationbneselov
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerNicholas Dille
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker ContainerAndreas Koop
 
070-685 Zertifizierungsprüfung deutsch
070-685 Zertifizierungsprüfung deutsch070-685 Zertifizierungsprüfung deutsch
070-685 Zertifizierungsprüfung deutschholgerschmitz2011
 
Sicheres Root-Server Hosting mit Linux
Sicheres Root-Server Hosting mit LinuxSicheres Root-Server Hosting mit Linux
Sicheres Root-Server Hosting mit Linuxmarkusmarkert
 
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysierenDBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysierenGunther Pippèrr
 
Introduction into Oracle Data Pump 11g/12c - Export and Import Data
Introduction into Oracle Data Pump 11g/12c - Export and Import DataIntroduction into Oracle Data Pump 11g/12c - Export and Import Data
Introduction into Oracle Data Pump 11g/12c - Export and Import DataGunther Pippèrr
 
Puppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes TeamPuppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes TeamNETWAYS
 
IPC2017SE - Zend\Expressive Workshop
IPC2017SE - Zend\Expressive WorkshopIPC2017SE - Zend\Expressive Workshop
IPC2017SE - Zend\Expressive WorkshopRalf Eggert
 

Semelhante a Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr (20)

Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenIonic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf Steroiden
 
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
 
Rex - Infrastruktur als Code
Rex - Infrastruktur als CodeRex - Infrastruktur als Code
Rex - Infrastruktur als Code
 
Azure Notebooks
Azure NotebooksAzure Notebooks
Azure Notebooks
 
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
 
WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektWebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
 
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
070-685 Zertifizierungsprüfung deutsch
070-685 Zertifizierungsprüfung deutsch070-685 Zertifizierungsprüfung deutsch
070-685 Zertifizierungsprüfung deutsch
 
Sicheres Root-Server Hosting mit Linux
Sicheres Root-Server Hosting mit LinuxSicheres Root-Server Hosting mit Linux
Sicheres Root-Server Hosting mit Linux
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysierenDBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
 
Introduction into Oracle Data Pump 11g/12c - Export and Import Data
Introduction into Oracle Data Pump 11g/12c - Export and Import DataIntroduction into Oracle Data Pump 11g/12c - Export and Import Data
Introduction into Oracle Data Pump 11g/12c - Export and Import Data
 
Puppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes TeamPuppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes Team
 
Ionic 3
Ionic 3Ionic 3
Ionic 3
 
IPC2017SE - Zend\Expressive Workshop
IPC2017SE - Zend\Expressive WorkshopIPC2017SE - Zend\Expressive Workshop
IPC2017SE - Zend\Expressive Workshop
 

Mais de Gunther Pippèrr

Über Rechte/Rollen und den sicheren Betrieb der Datenbank
Über Rechte/Rollen und den sicheren Betrieb der DatenbankÜber Rechte/Rollen und den sicheren Betrieb der Datenbank
Über Rechte/Rollen und den sicheren Betrieb der DatenbankGunther Pippèrr
 
Archiving Oracle Primavera project plans with software development tools
Archiving Oracle Primavera project plans with software development toolsArchiving Oracle Primavera project plans with software development tools
Archiving Oracle Primavera project plans with software development toolsGunther Pippèrr
 
Der oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerterDer oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerterGunther Pippèrr
 
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02Gunther Pippèrr
 
Oracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpiOracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpiGunther Pippèrr
 
Oracle connection manager_cman_doag_sig_security_mai_2015
Oracle connection manager_cman_doag_sig_security_mai_2015Oracle connection manager_cman_doag_sig_security_mai_2015
Oracle connection manager_cman_doag_sig_security_mai_2015Gunther Pippèrr
 
Oracle no sql-doag-datenbank_konferenz_juni_2014
Oracle no sql-doag-datenbank_konferenz_juni_2014Oracle no sql-doag-datenbank_konferenz_juni_2014
Oracle no sql-doag-datenbank_konferenz_juni_2014Gunther Pippèrr
 
Oracle nosql twjug-oktober-2014_taiwan_print_v01
Oracle nosql twjug-oktober-2014_taiwan_print_v01Oracle nosql twjug-oktober-2014_taiwan_print_v01
Oracle nosql twjug-oktober-2014_taiwan_print_v01Gunther Pippèrr
 

Mais de Gunther Pippèrr (10)

Über Rechte/Rollen und den sicheren Betrieb der Datenbank
Über Rechte/Rollen und den sicheren Betrieb der DatenbankÜber Rechte/Rollen und den sicheren Betrieb der Datenbank
Über Rechte/Rollen und den sicheren Betrieb der Datenbank
 
Archiving Oracle Primavera project plans with software development tools
Archiving Oracle Primavera project plans with software development toolsArchiving Oracle Primavera project plans with software development tools
Archiving Oracle Primavera project plans with software development tools
 
Ldap sqlnet
Ldap sqlnetLdap sqlnet
Ldap sqlnet
 
01 sqlplus
01 sqlplus01 sqlplus
01 sqlplus
 
Der oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerterDer oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerter
 
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02
Doag 2104 manuskript_hadoop_oracle_integration_gunther_pipperr_v02
 
Oracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpiOracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpi
 
Oracle connection manager_cman_doag_sig_security_mai_2015
Oracle connection manager_cman_doag_sig_security_mai_2015Oracle connection manager_cman_doag_sig_security_mai_2015
Oracle connection manager_cman_doag_sig_security_mai_2015
 
Oracle no sql-doag-datenbank_konferenz_juni_2014
Oracle no sql-doag-datenbank_konferenz_juni_2014Oracle no sql-doag-datenbank_konferenz_juni_2014
Oracle no sql-doag-datenbank_konferenz_juni_2014
 
Oracle nosql twjug-oktober-2014_taiwan_print_v01
Oracle nosql twjug-oktober-2014_taiwan_print_v01Oracle nosql twjug-oktober-2014_taiwan_print_v01
Oracle nosql twjug-oktober-2014_taiwan_print_v01
 

Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr

  • 1. Seite 1Gunther Pippèrr © 2014 http://www.pipperr.de EIN ORACLE NOSQL ENTERPRISE MANAGER / CLOUD CONTROL 12C PLUG-IN ERSTELLEN Den Oracle Enterprise Manager flexibel erweitern Konferenz Nürnberg 2014 NoSQL Vortrag – Taiwan/Taipei 2014
  • 2. Seite 2Gunther Pippèrr © 2014 http://www.pipperr.de Agenda  Architektur  Vorbereitung: – Versionsnummer / Namensgebung / Verzeichnisstruktur  Überwachung auf dem Agent – Zu überwachende Metriken für den Agent deklarieren  Plug-In Homepage erstellen – Anzeige der Homepage des Target im OMS  Weitere Möglichkeiten der Erfassung
  • 3. Seite 3Gunther Pippèrr © 2014 http://www.pipperr.de Grundlagen - Konzept Das Oracle 12c Plug-In Konzept
  • 4. Seite 4Gunther Pippèrr © 2014 http://www.pipperr.de OMS 12c Architektur - Gesamtübersicht Oracle Enterprise Linux 6 64bit Java 1.6 Oracle WebLogic Server 10.3 Repository 11g/12c Oracle Enterprise Manager CloudControl 12c Monitoring Plug-In Monitoring Plug-In Monitoring Plug-In Monitoring Plug-In Agent 1 Monitoring Plug-In Monitoring Plug-In Monitoring Plug-In Agent 2 Monitoring Plug-In Monitoring Plug-In Agent 3
  • 5. Seite 5Gunther Pippèrr © 2014 http://www.pipperr.de Architektur Plug-In OMS  Seit Oracle 12c setzt Cloud Control auf eine konsequente Plug-In Architektur mit der Möglichkeit der deklarativen Programmierung / Entwicklung eigener Erweiterungen Agent User defined Plug-in Management Server User defined Plug-in Default Plug-ins Vorteil: Einzelne Teile (bzw. Targets wie die Datenbank) lassen sich je nach Bedarf getrennt patchen! ( aktuelle OEM Version 12.1.0.4.0 ) Default Plug-ins
  • 6. Seite 6Gunther Pippèrr © 2014 http://www.pipperr.de Ziel für unser Plug-In (1)  Für die Oracle NoSQL Datenbank steht noch kein offizielles Plug-In zur Verfügung - Es ist zu erwarten, dass auch nur die kommerzielle Version mit einem Plug-In ausgeliefert wird  Die Oracle NoSQL Datenbank soll aber nun ebenfalls über CloudControl 12c in der Kundenumgebung überwacht werden  Zu überwachende Eigenschaften: – Ist das System auf dem lokalen Node verfügbar (Status des SN) – In welchen Status befinden sich die Nodes/Replica des gesamten Stores – Wie viele Datensätze sind im Store abgelegt – Wie viel Plattenplatz verbraucht der Store auf der lokalen Maschine und wie viel Plattenplatz steht für den Store noch zur Verfügung – Wie hoch ist der Speicherverbrauch der Java Umgebung
  • 7. Seite 7Gunther Pippèrr © 2014 http://www.pipperr.de Ziel für unser Plug-In (2)  Eine eigene Home Page im Management Server
  • 8. Seite 8Gunther Pippèrr © 2014 http://www.pipperr.de NoSQL Architektur versus Single Server Plug-In  NoSQL Architektur Server 1 Storage Node 1 SN 1 Server 2 Storage Node 2 SN 2 Server 3 Storage Node 3 SN 3 Rg1- n1 Master 1 Replication Node Replikat 1 Replication Node Replikat 2 Replication Node Shared A Shared B Shared CAdmin Srv Admin Srv Admin Srv Storage Node Agent (SNA) Storage Node Agent (SNA) Storage Node Agent (SNA) Rg2- n1 Rg3- n1 Rg1- n2 Rg2- n2 Rg3- n2 Rg1- n3 Rg2- n3 Rg3- n3 Agent Für jeden Knoten Agent Für jeden Knoten Agent Für jeden Knoten
  • 9. Seite 9Gunther Pippèrr © 2014 http://www.pipperr.de NoSQL as a Cluster?  Im Prinzip stellt ein NoSQL Store in der Überwachung ein Cluster dar  Ideale Umsetzung: – Cluster Homepage für den eigentlichen Store • Metadaten des Stores wie Anzahl der Einträge – Eine Seite pro Node Hauptproblem: • Erstellen von Cluster Plug-Ins nicht dokumentiert • Ableiten aus dem DB Plug-In nicht erfolgreich Target_TYPE NoSQL_Cluster Target_TYPE NoSQL Target_TYPE NoSQL Target_TYPE NoSQL Ein Problem: • Unique ID im NoSQL Store fehlt per Default
  • 10. Seite 10Gunther Pippèrr © 2014 http://www.pipperr.de Workaround über Redundancy System  Plug-In für den Target Type "NoSQL" – Jeder Knoten wird als eigenständiges Target erfasst • Nachteil: Anzahl der Einträge wird doppelt ermittelt – Beim Erfassen einer bestimmten Metrik auf dem Knoten, wird im Store eine unique Identifier angelegt, falls diese noch nicht existiert • Damit lassen sich später die Knoten wieder zu ihren Stores zusammenfassen – Per Hand wird ein " Redundancy System" angelegt und die passenden Knoten werden diesem System zugeordnet
  • 11. Seite 11Gunther Pippèrr © 2014 http://www.pipperr.de Aufsetzen der Entwicklungsumgebung Ordnung muss sein
  • 12. Seite 12Gunther Pippèrr © 2014 http://www.pipperr.de Aufsetzen der Entwicklungs-Umgebung  Das „Extensibility Development Kit“ - EDK - für die Plug-In Entwicklung vom OMS laden – Voraussetzung: • Java 1.6 • Unter Windows – Lokale Admin Rechte! Um das EDK mit EMCLI zu laden: emcli get_ext_dev_kit
  • 13. Seite 13Gunther Pippèrr © 2014 http://www.pipperr.de Aufsetzen der Entwicklungs-Umgebung  Das Extensibility Development Kit“ - EDK - enthält alle notwendigen Dateien, um ein Plug-In aus den Definitions Dateien zu erzeugen  Zip File des EDK in ein lokales Verzeichnis "edk" extrahieren – Zum Beispiel unter ~/plugin_dev/edk Die Plug-In Entwicklung erfolgt am bestem auf dem Management Server selbst. unzip 12.1.0.4.0_edk_partner.zip -d ~/plugin_dev/edk/
  • 14. Seite 14Gunther Pippèrr © 2014 http://www.pipperr.de Vorbereitung – Verzeichnis Struktur Projekt  Die Projektstruktur kann frei gewählt werden – für unser Projekt verwenden wir: Struktur und Namensgebungen immer sehr genau kontrollieren! Source Code des Plug-Ins Generierte OPAR Datei (Installationsdatei) Logfiles Unsere Custom Skript Library Temp Folder für die Generierung Projektverzeichnis mit unseren Build Skripten Source Code der Java Klassen für eigene Metriken Dokumentation
  • 15. Seite 15Gunther Pippèrr © 2014 http://www.pipperr.de Vorbereitung – Struktur für das Plug-In anlegen  Die deklarative Entwicklung über XML Definitionsdateien erfordert eine streng einzuhaltende Verzeichnisstruktur Zu Beginn die häufigste Fehlerquelle! XML Definitionsdateien für den Agenten XML Definitionsdateien für das Discovery XML Definitionsdateien für den OMS Management Server
  • 16. Seite 16Gunther Pippèrr © 2014 http://www.pipperr.de Vorbereitung – Versions-Nr. zweistellig definieren  Wichtig ist die Einhaltung der Syntax bei der Versionsnummer Ist die Versionsnummer falsch (zum Beispiel weil die letzte Nr. eine 0 ist) schlägt das Deployment fehl! Plug-In Version definieren: a.b.c.d.e a.b = Die Version des Enterprise Manger Extensibility Development Kit (EDK), dass bei der Entwicklung verwendet wurde (12.1, 12.2, usw.). c = Muss immer eine 0 sein d = Die aktuelle Version des Plug-In, vom Entwickler vergeben + können 1 oder 2 Digits ([1-9] | [0-9][1-9] ) sein + Bei jedem Update muss die Nummer angepasst werden e = Für den zukünftigen Einsatz - Default Wert ist 0 Die Plug-In Version lautet damit für die erste Version: 12.1.0.01.0 Wichtig ist es, dass die letzte Stelle NICHT verwendet wird! ,
  • 17. Seite 17Gunther Pippèrr © 2014 http://www.pipperr.de Vorbereitung – Plug-In ID und Target Type  Die Plug-In ID identifiziert eindeutig das selbst- entwickelte Plug-In  Plug-In ID definieren • Vendor ID (8 chars) = gpiconsl • Product ID (8 chars) = nosql • Plug-in Tag (4 chars) = x001  Der Plug-In Name lautet damit gpiconsl.nosql.x001  Kürzel für den „Target Type“ vergeben: nosql Streng auf die durchgängige Verwendung und richtige Benennung des „Target Type“ achten! Muss ab 12.1.0.4 zwingend ein x sein!
  • 18. Seite 18Gunther Pippèrr © 2014 http://www.pipperr.de Die XML Definitionen für die ersten Schritte erstellen  Plug-In Basisstruktur – Datei und Verzeichnisse – plugin.xml • AGENT – plugin_registry.xml – default_collection/nosql.xml – metadata/nosql.xml • DISCOVERY • OMS – metadata/targetType/nosql.xml – metadata/default_collection/nosql.xml Der Name nosql entspricht dem Target Namen – empfohlene Namensgebung! Im ersten Test wurde ein Fehler geworfen, wenn diese Dateinamen NICHT gleich zum Target Type Namen sind! 1 zu 1 Kopie aus dem Agent Home! Für eine Basisversion sind 4 XML Dateien ausreichend
  • 19. Seite 19Gunther Pippèrr © 2014 http://www.pipperr.de Umsetzung – Plugin.xml – Definitionsdatei für das Plug-In  Speicherort: <stage>/plugin.xml  Zu definierende Werte: – Plug-In ID – Plug-In Version – Readme und Description – Target Type Name und welche Versionen des eigenen Plug- Ins werden unterstützt – Auf welcher OEM Version kann das Plug-In installiert werden – Plug-In Attribute – Auf welchen Plattformen läuft das Plug-In
  • 20. Seite 20Gunther Pippèrr © 2014 http://www.pipperr.de Umsetzung – Beispiel für die plugin.xml (1) Plug-In Version Plug-In ID Target Type Plug-In wird als Database Plug-In definiert
  • 21. Seite 21Gunther Pippèrr © 2014 http://www.pipperr.de Umsetzung – Beispiel für die plugin.xml (2) OS der Oracle Management Servers – 2000 Generisch OS der Agent Betriebssysteme - 46 / 226 für Linux 32 /Linux 64
  • 22. Seite 22Gunther Pippèrr © 2014 http://www.pipperr.de Umsetzung – agent/plugin_registry.xml  Mit der Datei plugin_registry.xml im Agent Verzeichnis wird das eigentliche Agent Plug-In definiert – Werte • PlugID - muss der ID aus plugin.xml entsprechen • Speicherort für die Metrik Definitionsdateien
  • 23. Seite 23Gunther Pippèrr © 2014 http://www.pipperr.de AGENT Umsetzung – agent/metata/nosql.xml  In der Datei nosql.xml werden die Metriken definiert  Wichtiger Parameter META_VER – Bei der Entwicklung kann die Daten manuell auf dem OMS deployed werden – Damit aber eine Veränderung vom OMS erkannt werden kann, muss die Versions-Nummer dieser Datei bei jeden Upload hoch gezählt werden Bei 0.1 beginnen und bei jeder Aktualisierung hochzählen Auf die korrekte Schreibweise des Target Type achten!
  • 24. Seite 24Gunther Pippèrr © 2014 http://www.pipperr.de Metriken (Checks) für den Agenten definieren  Mit den zwei XML Dateien im Verzeichnis "metadata" und "default_collection" werden die Metriken bzw. Checks definiert  In der nosql.xml im Verzeichnis "metadata" : WIE und WELCHE Werte sollen ermittelt werden  In der nosql.xml im Verzeichnis "default_collection": WAS und WIE OFT soll zum OMS versandt werden
  • 25. Seite 25Gunther Pippèrr © 2014 http://www.pipperr.de Metrik Nr. 1 – Response ( Ist der Dienst verfügbar ) (1)  In der metric XML ( in unseren Fall die "metadata/nosql.xml") im "metadata" Verzeichnis wird definiert, WIE ein Wert auf dem System ermittelt werden soll  Dazu werden die Oracle "Fetchlets" verwendet – Fetchlets => Anweisungsblöcke mit welcher Technologie und wie die Werte ermittelt werden können (13 Typen stehen zur Verfügung) – Eingesetzte Fetchlet Typen im diesen Plug-In • JMX Abfragen (JAVA Management Interface abfragen) – FETCHLET_ID="JMX" • Script Aufrufe (mit Hilfe von frei definierbaren Bash/perl Skripten werden Daten erfasst und als Text-Zeilen zurückgegeben) – FETCHLET_ID="OSLineToken" metadata/nosql.xml
  • 26. Seite 26Gunther Pippèrr © 2014 http://www.pipperr.de Metrik Nr. 1 – Response ( Ist der Dienst verfügbar ) (2) JMX Parameter Spalten Definition True bedeutet, Wert wird NICHT in der Metrik View angezeigt Der Status wird aus der StartTime Spalte errechnet metadata/nosql.xml
  • 27. Seite 27Gunther Pippèrr © 2014 http://www.pipperr.de Metrik Nr. 1 – Response ( Ist der Dienst verfügbar ) (3)  Wie kommen wir zu den Parameter für das Fetchlet?  Parameter für Setup und Credential werden ebenfalls in der "metadata/nosql.xml" Datei definiert metadata/nosql.xml
  • 28. Seite 28Gunther Pippèrr © 2014 http://www.pipperr.de Metrik Nr. 1 – Response ( Ist der Dienst verfügbar ) (4)  Aus diesen Parametern entsteht auch die Maske im OMS bzgl. der Monitoring Konfiguration: metadata/nosql.xml
  • 29. Seite 29Gunther Pippèrr © 2014 http://www.pipperr.de Umsetzung – nosql.xml im Verzeichnis default_colletion  Die Target Collection definiert WAS und WIE oft die Daten abgeholt werden  Definiert die Thresholds für die Alarmierung Auf die korrekte Schreibweise der Target Type achten! default_colletion/nosql.xml
  • 30. Seite 30Gunther Pippèrr © 2014 http://www.pipperr.de AGENT Umsetzung – Metrik bekannt geben  Über die nosql.xml unter "default_colletion" wird definiert, WAS und WIE OFT versandt wird Wie oft soll der Wert abgefragt werden? Wann soll ein Alarm erzeugt werden? Name der Metrik default_colletion/nosql.xml
  • 31. Seite 31Gunther Pippèrr © 2014 http://www.pipperr.de OSLineToken Fetchlet verwenden  Über das OSLineToken Fetchlet können aus dem Betriebssystem Werte gelesen werden  Als Rückgabewert wird eine Art CSV Liste erwartet Wert aus Instance Konfiguration verwenden Skript erzeugt den folgenden OutPut: StoreSize=/u00/app/oracle/kvdata/NODE01/KVStore|21484663|64092696|26035680 metadata/nosql.xml
  • 32. Seite 32Gunther Pippèrr © 2014 http://www.pipperr.de OSLineToken Fetchlet – Skripte einbinden  Die aufzurufenden Skripte und alle notwendigen Libraries (wie JAR Files) dazu werden unter agent/scripts/nossql abgelegt Hole die Anzahl an Elemente aus dem Store Speicherplatz überwachen Topologie / Status des Store auswerten Libraries metadata/nosql.xml
  • 33. Seite 33Gunther Pippèrr © 2014 http://www.pipperr.de OSLineToken Fetchlet – Beispiel Skript  Skript für die Größe des Stores: Absoluten Pfad ermitteln agent/scripts/nosql/getKVRoot.sh Script erzeugt den folgenden OutPut: StoreSize=/u00/app/oracle/kvdata/NODE01/KVStore|21484663|64092696|26035680
  • 34. Seite 34Gunther Pippèrr © 2014 http://www.pipperr.de Agent Metrik - Zusammenfassung  Zusammenfassung: Welche Schritte sind für eine neue Metrik notwendig: – Definition der Metrik in der "metadata/nosql.xml" – Bekanntgabe der Metrik in der "default_collection/nosql.xml" – Kontrolle, ob noch weitere Credentials als Parameter in der "metadata/nosql.xml" hinterlegt werden müssen – Kontrolle, ob noch weitere Parameter als Instance Parameter in der "metadata/nosql.xml" hinterlegt werden müssen
  • 35. Seite 35Gunther Pippèrr © 2014 http://www.pipperr.de Die Version 1 deployen Wie bringe ich das nun in den OMS?
  • 36. Seite 36Gunther Pippèrr © 2014 http://www.pipperr.de OEM prüfen  Vor dem Deploy prüfen, ob der OEM für den Upload konfiguriert worden ist
  • 37. Seite 37Gunther Pippèrr © 2014 http://www.pipperr.de Version 1 deployen  Nach dem Erstellen der ersten XML Dateien können wir die erste Version auf dem Management Server ausrollen  Ablauf: – Validieren ob alle XML den Oracle Standards entsprechen – ${EMDK_HOME}/bin/empdk validate_plugin … – OPAR Datei 12.1.0.01.0_gpiconsl.nosql.x001_2000_0.opar für das Deloyment erzeugen: – ${EMDK_HOME}/bin/empdk create_plugin … – OPAR Datei deployen: – ${OEM_HOME}/bin/emcli import_update … Für diese Schritte empfiehlt es sich entsprechende Skripte zu erstellen!
  • 38. Seite 38Gunther Pippèrr © 2014 http://www.pipperr.de Plug-In auf dem OMS und dem Agent "ausrollen„ - 1  Plug-In auf dem OMS deployen
  • 39. Seite 39Gunther Pippèrr © 2014 http://www.pipperr.de Plug-In auf dem OMS und dem Agent "ausrollen„ - 2  Plug-In auf dem OMS deployen
  • 40. Seite 40Gunther Pippèrr © 2014 http://www.pipperr.de Plug-In auf dem OMS und dem Agent "ausrollen„ - 3  Plug-In auf dem OMS deployen
  • 41. Seite 41Gunther Pippèrr © 2014 http://www.pipperr.de Plug-In auf dem OMS und dem Agent "ausrollen„ - 4  Plug-In auf dem OMS deployen
  • 42. Seite 42Gunther Pippèrr © 2014 http://www.pipperr.de Plug-In auf dem Agent ausrollen  Plug-In auf dem Agent ausrollen
  • 43. Seite 43Gunther Pippèrr © 2014 http://www.pipperr.de Plug-In auf dem OMS und dem Agent "ausrollen"  Plug-In auf dem Agent deployen – Target auswählen und dort das Plug-In deployen:
  • 44. Seite 44Gunther Pippèrr © 2014 http://www.pipperr.de Taget aufrufen
  • 45. Seite 45Gunther Pippèrr © 2014 http://www.pipperr.de Auf dem Node über die Agent Metriken die Metriken testen  Über die URL des Management Agenten kann auf dem Node geprüft werden ob die Metriken erfasst werden können  Voraussetzung : Metrik Browser auf dem Agent aktiveren  Im Agent Home: – emctl setproperty agent -name _enableMetricBrowser - value true – emctl reload – URL https://oraoms12c01.pipperr.local:3872/emd/browser/main aufrufen und anmelden als Agent OS User anmelden
  • 46. Seite 46Gunther Pippèrr © 2014 http://www.pipperr.de Die Version 2 deployen Wie entwickle ich das nun weiter?
  • 47. Seite 47Gunther Pippèrr © 2014 http://www.pipperr.de Eine neuere Version des Plug-Ins erstellen  Für eine neuere Version muss die Plug-In Version hochgezählt und mit dem "create" Befehl ein neues Plug-In Bundle mit der neuen Versionsnummer erzeugt werden  ACHTUNG : !!BUG!! ( falls noch OEM Version 12.1.0.1.0 im Einsatz!) – Beim Erzeugen eines Installationspaketes werden in das „stage“ Verzeichnis unter agent/discovery/oms "install" Verzeichnisse angelegt – Diese Verzeichnisse müssen zuvor gelöscht werden, da ansonsten der Build abbricht Fehler: „2013-07-01 16:25:34,877 [main] ERROR packaging.PluginPackager logp.251 – OSPOUIError oracle.sysman.pdk.packaging.OSPOUIError: Exit value of process oui/bin/runInstaller is non-zero: 255”
  • 48. Seite 48Gunther Pippèrr © 2014 http://www.pipperr.de Zusammenfassung  Bei jeden Full Deploy einer neuen Version Versionsnummer in "plugin.xml" und "agent/plugin_registry.xml" hochzählen  NIE Versionsnummer per Hand auf dem Agent höher als auf dem OMS setzen ( z.B. beim Testen auf dem Agent mit einer neueren plugin.xml Datei!) – Agent wird in den Status blocked versetzt und muss neu vom OMS aus synchronisiert werden!
  • 49. Seite 49Gunther Pippèrr © 2014 http://www.pipperr.de Weitere Metriken im laufenden Betrieb entwickeln Nach mehr Daten abfragen
  • 50. Seite 50Gunther Pippèrr © 2014 http://www.pipperr.de Im laufende Betrieb Metriken deployen  Im laufenden Betrieb können Änderungen an Metriken auch direkt deployed werden  Vorteil: Es muss nicht jedes Mal bei jeder kleinen Änderung umständlich eine neue Version deployed werden  1. Deployment der Metrik Metadaten mit: – ${OMS_HOME}/bin/emctl register oms metadata -service targetType … – ${OMS_HOME}/bin/emctl register oms metadata -service storeTargetType … – ${OMS_HOME}/bin/emctl register oms metadata -service default_collection …  2. Kopieren der Metadaten per Hand in das Plug-In Verzeichnisse mit der richtigen Version vom Agent  3. Agent neu starten Für diese Schritte empfiehlt es sich entsprechende Skripts zu erstellen!
  • 51. Seite 51Gunther Pippèrr © 2014 http://www.pipperr.de Die OEM Homepage für das Target definieren Eine hübsche Oberfläche erstellen
  • 52. Seite 52Gunther Pippèrr © 2014 http://www.pipperr.de Eine eigene Home Page Seite definieren  Varianten: – Default Seite des OMS für das Target verwenden (HTML) – Eine "angepasste" Seite mit einer XML Definition erstellen ( FLASH) – Eine eigene FLASH Seite definieren  Für das NoSQL Plug-In kommt die Variante 2 zum Einsatz – Über die Datei „oms/metadata/mpcui/metadata_ui_homepage_charts.xml“ wird eine eigene Flash Seite deklarativ erstellt
  • 53. Seite 53Gunther Pippèrr © 2014 http://www.pipperr.de OEM Page über die mpcui xml erzeugen  Mit Hilfe der XML Definitionsdatei "oms/metadata/mpcui/metadata_ui_homepage_charts. xml" kann eine eigene Seiten im OMS definiert werden  Ziel:
  • 54. Seite 54Gunther Pippèrr © 2014 http://www.pipperr.de Mögliche Elemente  Ein Metrik direkt in einer Tabelle anzeigen  Ein Chart aus einer Metrik erzeugen  Eine SQL Abfrage visualisieren – Als Tabelle – Als Chart  „Incidents“ und „Problems“ darstellen
  • 55. Seite 55Gunther Pippèrr © 2014 http://www.pipperr.de Target Home Page durch eigene Seite ersetzen  Soll die Default Homepage im OEM mit einer eigenen Homepage Seite ersetzt werden: – 1. Datei "oms/metadata/systemUiIntegration/nosql_systemUiIntegrati on.xml" erstellen – In der "oms/mpcui/metadata_ui_homepage_charts.xml" eine Seite mit der ID "homePg" definieren Danach muss das Plug-In als eine neue Version komplett auf dem OMS neu deployed werden, damit die Änderung auch wirklich verwendet wird
  • 56. Seite 56Gunther Pippèrr © 2014 http://www.pipperr.de Fehlerquellen/Probleme bei der Entwicklung  Bei Änderungen in der XML Datei sind bestimmte Änderungen nur durch ein vollständiges neues Deployment auf dem Management Server möglich: – Navigationselement in der Seite ändern / erstellen – System Home Page mit einer eigenen Seite ersetzen
  • 57. Seite 57Gunther Pippèrr © 2014 http://www.pipperr.de Grundprinzip der „mpcui“ XML Datei  Eine Seite (mp:Page) ist in Spalten (mx:Vbox) und Zeilen (mx:Hbox) aufgeteilt  Elemente auf der Seite werden in Regions (mp:Region) "gruppiert“ – Region ist die aufklappbare Einheit auf der Seite wie:  Elemente auf der Seite werden in XML definiert (wie mp:Table ,mp:chart) und verwenden Datenquellen wie mp:SQLDataService  Datenquellen werden pro Seite deklariert (mp:services)  Datenquellen können global definierte SQL's verwenden (SqlStatements)  Seiten und Dialog werden global registriert (Integration)
  • 58. Seite 58Gunther Pippèrr © 2014 http://www.pipperr.de „mpcui“ XML – Elementstruktur muss definiert werden  CustomUI – SqlStatements – UIMetadata • Integration – mp:Integration » mp:PageActivityDef » mp:DialogActivityDef – ActivityDefinition » mp:Page • mp:services • mx:Hbox • mp:Region • mp:InfoDisplay oder mp:Table oder mp:LineChart etc. – MenuMetadata – EmuiConfig
  • 59. Seite 59Gunther Pippèrr © 2014 http://www.pipperr.de Beispiel - metadata_ui_homepage_charts.xml (1)  Eine bestehende Metrik als Tabelle auslesen Verweis auf die Metrik
  • 60. Seite 60Gunther Pippèrr © 2014 http://www.pipperr.de Beispiel - metadata_ui_homepage_charts.xml (2)  Ergebnis eines SQL's auf der Seite anzeigen – Zum Beispiel die Version des Stores • SQL Definieren unter <SqlStatements> • Service definieren unter <mp:services> • Daten auslesen und in einem mp:InfoDisplay anzeigen
  • 61. Seite 61Gunther Pippèrr © 2014 http://www.pipperr.de Beispiel - metadata_ui_homepage_charts.xml (3)  Existierende „Regions“ einbinden – Job Activities • <mp:JobSummaryRegion width="25%" height="100%" /> – Job Overviews • <mp:JobsActivityRegion id="jobsOverview" height="40%" /> – status • <mp:StatusOverviewRegion id="statusOverview" height="50%" /> – Issues overview • <mp:IssuesOverviewRegion id="issuesOverview" height="50%" /> – IncidentRegion • <mp:IncidentRegion width="50%" height="100%" />
  • 62. Seite 62Gunther Pippèrr © 2014 http://www.pipperr.de Eigene Home Page debuggen  Mit dem Anfügen von folgenden Parametern an die Url im OMS "&loglevel=ALL,CONSOLE" kann die Homepage Konsole geöffnet werden ……………………………………..
  • 63. Seite 63Gunther Pippèrr © 2014 http://www.pipperr.de Zusammenfassung  Homepage wird über die mpcui XML Datei unter oms/mpcui/xxxx.xml definiert  Soll die Standard Home Page gesetzt werden muss die Datei "oms/metadata/systemUiIntegration/nosql_systemUiIntegr ation.xml" angelegt und eine neue Version deployed werden!  Eine eigene Homepage kann Daten aus SQL Abfragen oder integrierten Metriken darstellen – Charts und Tabellen möglich – Vordefinierte Regions für Status und Jobs – Es können Detail Charts als Dialoge geöffnet werden
  • 64. Seite 64Gunther Pippèrr © 2014 http://www.pipperr.de Nächste Schritte Weitere Features erstellen
  • 65. Seite 65Gunther Pippèrr © 2014 http://www.pipperr.de Weitere Möglichkeiten realisieren  Collection Items definieren – Stammdaten des Targets einsammeln  Discovery definieren – Automatisch erkennen, ob das Target auf dem Host existiert  Topologien erkennen – Zusammenhänge zwischen den Targets im Repository hinterlegen
  • 66. Seite 66Gunther Pippèrr © 2014 http://www.pipperr.de Zusammenfassung Plug-In Development
  • 67. Seite 67Gunther Pippèrr © 2014 http://www.pipperr.de Zusammenfassung  Ein Plug-In wird deklarativ über XML Dateien entwickelt – Die eigentliche Kernfunktionalität – das Ermitteln der eigentlichen Daten erfolgt je nach Bedarf über FETCHLETS => Programmbausteine über Perl/Bash/Java Implementierungen  Drei Bereiche – Agent – OMS – Discovery
  • 68. Seite 68Gunther Pippèrr © 2014 http://www.pipperr.de Fazit  Mit dem Plug-In Konzept hat Oracle dem OEM in Richtung Kundenfreundlichkeit deutlich geöffnet  Der Kunde hat nun die Möglichkeit beliebige Applikationen und Business Prozesse auch im Enterprise Manager mit zu verwalten  Eine eigne Lizenz ist dazu nicht notwendig, allerdings ist im Detail zu prüfen, ob der Agent auf „nicht Oracle“ Hosts entsprechend lizensiert werden muss  Leider wird noch nicht ein „Kunden Cluster Target“ unterstützt, auch das Verknüpfen von Targets über die Topologien könnte etwas besser dokumentiert werden  Die Entwicklung selber ist aber mit Basis Kenntnissen in der Skript Programmierung gut durchführbar  Die Dokumentation ist leidlich gut und mit den Beispielen der mitgelieferten Plug-Ins können zügig erste Erfolge erzielt werden
  • 69. Seite 69Gunther Pippèrr © 2014 http://www.pipperr.de Fragen Oracle 12c – Plug-In Development
  • 70. Seite 70Gunther Pippèrr © 2014 http://www.pipperr.de Quellen Wo finde ich mehr zum Thema?
  • 71. Seite 71Gunther Pippèrr © 2014 http://www.pipperr.de Oracle Online Dokumentation  Oracle Online Dokumentation – http://docs.oracle.com/cd/E24628_01/doc.121/e25161/toc.ht m  Dokumentation im EDK Home unter – doc/overview.html  Im "samples" Ordner des EDK – Beispiel Plug-Ins im EDK – Beispiel Homepages in den Zip Files  Source Code der default Plug-Ins auf dem Installation Medium des OMS‘s auf der Disk 3
  • 72. Seite 72Gunther Pippèrr © 2014 http://www.pipperr.de Quellen  Mehr über das Thema siehe auch: – http://www.pipperr.de/dokuwiki/doku.php?id=dba:oms_12c_p lugin_development
  • 73. Seite 73Gunther Pippèrr © 2014 http://www.pipperr.de Gunther Pippèrr - IT-Architekt - Berater • High-Tech • Real Estate • Utility • Communications • IT System Architekt • Technische Projektleitung • Design und Implementierung von Datenbank Anwendungen • Entwurf und Umsetzung von IT Infrastrukturen zum Datenmanagement Gunther Pippèrr arbeitet seit mehr als 16 Jahre intensiv mit den Produkten der Firma Oracle im Bereich Datenbanken/Applikationsserver und Dokumenten-Management. Herr Pippèrr hat sich tiefes Wissen über den Aufbau komplexer IT Architektur aneignen können und hat dieses in der Praxis erfolgreich umgesetzt. Herr Pippèrr hat eine Abschluss als Dipl. Ing. Technische Informatik (FH) an der FH Weingarten. Industry Expertise Background Functional Expertise  Datenbank Architekt für ein Projekt zur Massendatenverarbeitung in der Telekommunikation  Architekt und technische Projektverantwortung für ein Smart Metering Portal für das Erfassen von Energiezählerdaten und Asset Management  Architekt und Projektleitung , Datenbank Design und Umsetzung für die Auftragsverwaltung mit Steuerung von externen Mitarbeitern für den Sprachdienstleister von deutschen Technologiekonzern  Architekt und technische Projektverantwortung für IT Infrastrukturprojekte, z.B.:  Zentrale Datenhaltung für Münchner Hotelgruppe mit über 25 Hotels weltweit,  Redundante Cluster Datenbank Infrastrukturen für diverse größere Web Anwendungen wie Fondplattform und Versicherungsportale, Loyalty Card Anwendungen  CRM- und Ausschreibungsportal für großen Münchner Bauträger Selected Experience http://www.pipperr.de http://orapowershell.codeplex.com Web