Oracle Fusion Middleware Überwachung mit Oracle BAM Markus Lohn esentri AG Ettlingen Schlüsselworte Monitoring, BAM, Fusion Middleware Einleitung Oracle BAM wird vor allem für das fachliche Überwachen von Geschäftsprozessen mit Oracle SOA und BPM Suite eingesetzt. Jedoch besteht auch die Möglichkeit die Middleware Infrastruktur zu überwachen. In diesem Vortrag werden die technischen Voraussetzungen und Möglichkeiten erläutert. Darüberhinaus erfolgt eine Demonstration am konkreten Beispiel aus der Praxis. Überwachung einer Infrastruktur auf Basis einer Fusion Middleware Das Monitoren und Überwachen einer Middleware-Umgebung kann aus zwei verschiedenen Perspektiven betrachtet werden. Zum einen aus Sicht der Applikation(en) und zum Anderen aus Sicht der Infrastruktur. Im vorliegenden Kontext bezeichnet Infrastruktur alle beteiligten MiddlewareKomponenten und dazugehörigen Datenbanken. Einige Oracle Fusion Middleware Komponenten (FMW) benötigten zur Laufzeit Datenbanken, z. B. Oracle SOA oder BPM Suite. Abbildung 1 Werkzeugübersicht für die Überwachung einer Fusion Middleware Umgebung Eine typische FMW-Systemarchitektur beinhaltet üblicherweise einen Loadbalancer (Software- oder Hardware), WebLogic Server Cluster mit 1..n Managed Servern sowie die zugehörigen Datenbanken, z. B. für SOA Suite. Betrachtet man zusätzlich alle installierten Java EE und/oder SOA-basierten Applikationen, so entsteht eine komplexe Umgebung, die überwacht werden muss. Für die verfügbaren FMW-Komponenten gibt es eine Reihe von Werkzeugen, die unterschiedliche Aufgabestellungen in Bezug auf Monitoring und Überwachen bereitstellen. Ein Administrator kann diese Werkzeuge nutzen und verschiedene Informationen zu den Komponenten abfragen und daraus den Status der gesamten Umgebung ableiten. Das Abfragen dieser Informationen erfolgt jedoch immer auf Anfrage durch den Administrator. Interessant wäre jedoch die Möglichkeit, ohne manuell Abfrage auf einen Blick, zu erkennen, ob der Status der gesamten FMW-Umgebung „grün“ oder „rot“ ist. In diesem Vortrag wird genau diese Fragestellung geklärt, durch den kombinierten Einsatz von Diagnostic Monitoring Service (DMS) und Business Activity Monitoring (BAM). Diagnostic Monitoring Service (DMS) DMS ist ein Service in der FMW, der zum Sammeln von Performance- und Statusdaten zu einzelnen Komponenten genutzt werden kann. DMS wurde bereits in FMW 10g angeboten und ist ebenfalls in FMW 11g integriert. Die gesammelten Daten können dann in Überwachungswerkzeugen, z. B. Oracle Enterprise Manager, analysiert und zur Anzeige gebracht werden. Beispielsweise werden die Performancedaten zur JVM im Enterprise Manager durch DMS erfasst und zur Verfügung gestellt. Abbildung 2 Architektur DMS DMS besteht aus folgenden Kernkomponenten: Metrics Metrics umfasst das Sammeln von Performance und Statusinformationen. Ferner wird eine Sprache zum Aggregieren und Erstellung von Berechnungen auf Basis der gesammelten Daten angeboten. Execution Context Ermöglicht die Erstellung und Nutzung eines eindeutigen Contextes zwischen verschiedenen FMWKomponenten. Ein wichtiger Anwendungsfall ist die Nutzung im Oracle Diagnostic Logging. Die sog. ECID dient zum Nachverfolgen von Requests in den verschiedenen Logfiles der beteiligten FMWKomponenten, z. B. Oracle HTTP-Server, WebLogic Server etc. Events and Tracing Mit dieser Komponente besteht die Möglichkeit definierte Ereignisse abzufangen und entsprechende Folgeaktionen zu starten. Eine Folgeaktion kann zum Beispiel die Weiterleitung der Daten an den JRockit Flight Recorder bedeuten. SpyServlet Mit dem SpyServlet können die gesammelten Metrics in einer einfachen Weboberfläche zur Anzeige gebracht werden. MBeans Alle gesammelten Metrics stehen zusätzlich als MBean zur Verfügung und können durch die entsprechenden Werkzeuge (JConsole, MBean Browser, Java) ausgelesen werden. Zum Beispiel bedient sich das SpyServlet bei der Anzeige der Metriken dem sog. AggreSpy MBean. Business Activity Monitoring (BAM) BAM ist ein real-time Monitoring Werkzeug. Es ermöglicht das Sammeln von Daten und die Anzeige in interaktiven Dashboards und Berichten. Überdies besteht die Möglichkeit aus Dashboards und Berichten weitere Aktionen zu starten. BAM wird als Bestandsteil der Oracle SOA Suite zur Verfügung gestellt. Die Daten in BAM werden in sog. Data Objects gespeichert. Data Objects müssen zunächst definiert werden. Es empfiehlt sich deshalb für den jeweiligen Anwendungsfall ein Datenmodell für Data Objects zu erstellen. Abbildung 3 BAM Architektur BAM besteht aus folgenden Kernkomponenten: BAM Server BAM Server verwaltet die gesammelten Daten in einem intelligenten Cache. Ferner übernimmt der BAM Server die Kommunikation mit der BAM-Datenbank. Zusätzlich erfolgt die Überwachung von Events und Folgeaktionen. Die Definition von Events und Folgeaktionen erfolgt über die Definition von Alerts. BAM Web Application Die Web Applications bestehen aus weiteren Komponenten zum Verwalten von Berechtigungen, Definition von Data Objects, Erstellung und Anzeige von Dashboards und Berichten. BAM Adapter Ist ein Java EE Resource Adapter, der für die Bereitstellung von Daten nach BAM angesprochen werden kann. Die Kommunikation erfolgt über Webservices oder RMI. BAM Datenbank In der BAM Datenbank werden alle Data Objects, Dashboard- und Berichtsdefinitionen gespeichert. Zusätzlich erfolgt auch die Speicherung der Daten zu Data Objects. Die BAM Datenbank ist technisch ein einziges Schema in einer Oracle-Datenbank. Für jedes Data Object wird eine eigene Tabelle in der BAM Datenbank erzeugt. Integration DMS und BAM Die Integration der beiden Komponenten erfolgt in Form einer Java EE Anwendung, die im WebLogic Server installiert und konfiguriert wird. Performance- und Statusdaten werden über eine MBean in DMS abgefragt. Die Daten werden auf jedem Managed Server erhoben. Die Performance- und Statusdaten werden in Form eines XML-Dokumentes zur Verfügung gestellt. Das XML-Dokument enthält die Performance- und Statusdaten in Form einer Tabellenstruktur, die sich aus den NounDefinitionen in DMS ableitet. Es enthält sowohl die Definition der Metrics, als auch die aktuellen Daten zu den einzelnen Metrics. Abbildung 4 FMW-Monitoring Komponenten Nach Ermittlung der Performance- und Statusdaten werden zunächst die Data Objects in BAM definiert, sofern noch nicht vorhanden. Die jeweilige Metrics-Definition wird aus dem XMLDokument extrahiert und anschließend durch eine XLS-Transformation in das XML-Format zur Definition von Data Objects in BAM transformiert. Anschließend erfolgt der Aufruf des BAMAdapters, der ggf. das Data Object in BAM erstellt oder aktualisiert. Anschließend werden die Daten der einzelnen Metrics aus dem XML-Dokument ermittelt und ebenfalls durch den Aufruf des BAM Adapters in das jeweilige Data Object in BAM gespeichert. Die Komponente FMW-Monitoring wird in Form einer Java EE-Applikation im WebLogic Server installiert und konfiguriert. Zusätzlich kann eine Whitelist definiert werden, so dass lediglich ausgewählten Metrics bei der Bearbeitung berücksichtigt werden. Die Anwendung wird in definierten zeitlichen Abständen aktiviert und schreibt Daten nach BAM. In BAM erfolgt die Anzeige und Auswertung in interaktiven Dashboards und Berichten. Fazit Über die Kombination von DMS und BAM können interaktive Dashboards zur Verfügung gestellt werden, die den Status eine FMW-Umgebung dokumentieren. Interessant ist ferner die Möglichkeit, diese Daten auch mit Informationen aus den einzelnen Applikationen zu verknüpfen. Somit besteht die Möglichkeit, dem IT-Betrieb ein einfaches Werkzeug für die Überwachung einer FMW-Umgebung bereitzustellen. Kontaktadresse: Markus Lohn esentri AG Pforzheimer Straße 132 D-76275 Ettlingen Telefon: Fax: E-Mail Internet: +49 (0) 7243 354900 +49 (0) 7243 [email protected] www.esentri.de