Aufbau einer Log-Analytics-Infrastruktur für Oracle WebLogic
WebLogic Logging Exporter
Der Logging Exporter ermöglicht es, Logmeldungen vom WebLogic Server visuell in der Open-Source-Analyseplattform Kibana im Zusammenspiel mit Elasticsearch darzustellen. Somit werden dem Nutzer diverse Möglichkeiten wie vereinfachte Analysen oder Visualisierungen der Logs ermöglicht.
Installation und Starten von WebLogic Logging Exporter
Der Logging Exporter wird mittels eines Java-Archivs zur Verfügung gestellt. Die Datei weblogic-logging-exporter-1.0.0.jar kann hier heruntergeladen werden.
Um die Konfigurationsdatei WebLogicLoggingExporter.yaml zu parsen, wird ein weiteres Java-Archiv benötigt. Die snakeyaml-1.xx.jar -Datei ist hier herunterzuladen.
Die Dateien werden anschließend in das entsprechende Domain-Verzeichnis verschoben:
[oracle@localhost ~]$ mv ~/Downloads/weblogic-logging-exporter-1.0.0.jar ~/Downloads/snakeyaml-1.xx.jar <Pfad zum Domainverzeichnis>
Jetzt wird der Server gestartet:
[oracle@localhost ~]$ source <Pfad zum Domainverzeichnis>/startWebLogic.sh
Die Administrationskonsole wird über den Webbrowser aufgerufen: http://localhost:7001/console
In der Administrationskonsole wird die Startup-Klasse gesetzt: Domainstruktur → Umgebung → Startup- und Shutdown-Klassen → Zusammenfassung der Startup- und Shutdown-Klassen → Neu → Startup-Klasse → Weiter → Name: "" Klassenname: "weblogic.logging.exporter.Startup" → Server auswählen → Fertigstellen
Die config.xml-Datei benötigt einen solchen Eintrag:
[oracle@localhost ~]$ cat <Pfad zum Domainverzeichnis>/config/config.xml <startup-class> <name>StartupClass-0</name> <target>AdminServer</target> <class-name>weblogic.logging.exporter.Startup</class-name> </startup-class>
Um den Klassenpfad zu setzen, werden die letzten Zeilen der Datei entsprechend ergänzt:
[oracle@localhost ~]$ vim <Pfad zum Domainverzeichnis>/bin/setDomainEnv.sh export CLASSPATH="<Pfad zum Domainverzeichnis>/weblogic-logging-exporter- 1.0.0.jar:<Pfad zum Domainverzeichnis>/snakeyaml-1.23.jar:$CLASSPATH"
An dieser Stelle wird die Konfigurationsdatei erstellt:
[oracle@localhost ~]$ touch <Pfad zum Domainverzeichnis>/config/ WebLogicLoggingExporter.yaml
Die Konfigurationsdatei benötigt entsprechenden Code, der dieser Webseite entnommen werden kann:
[oracle@localhost ~]$ cat <Pfad zum Domainverzeichnis>/config/WebLogicLoggingExporter.yaml weblogicLoggingIndexName: wls publishHost: localhost publishPort: 9200 domainUID: domain1 weblogicLoggingExporterEnabled: true weblogicLoggingExporterSeverity: Notice weblogicLoggingExporterBulkSize: 2 weblogicLoggingExporterFilters: - FilterExpression: MSGID != 'BEA-000449'
Optionale Anpassungen sind möglich.
Um den Logging Exporter in vollem Umfang benutzen zu können, werden Elasticsearch und Kibana benötigt, siehe dazu die folgenden Abschnitte Installation und Starten von Kibana sowie Installation und Starten von Elasticsearch. Der WebLogic Server erfordert anschließend einen Neustart, um die Logging-Daten nach der Installation sowie dem Start von Elasticsearch und Kibana entsprechend verarbeiten zu können.
Kibana
Die Analyseplattform ermöglicht eine visuelle Darstellung der Elasticsearch Daten über die Web-Oberfläche. Der Abschnitt Anwendungen Logging Exporter zeigt Beispiele einer solchen Darstellung. Abgesehen von der benutzerfreundlichen Bedienung liegt der große Vorteil bei Kibana darin, die bisher geloggten Informationen nach eigenen Wünschen zu strukturieren und anzeigen zu können. Dies ist sowohl im Textformat als auch in diversen Grafiken möglich.
Installation und Starten von Kibana
Zu Beginn wird das Kibana Repository erstellt:
[oracle@localhost ~]$ sudo touch /etc/yum.repos.d/kibana.repo
Das Repository wird anschließend ergänzt:
[oracle@localhost ~]$ cat /etc/yum.repos.d/kibana.repo [kibana-7.x] name=Kibana repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
Im Anschluss wird die Installation durchgeführt:
[oracle@localhost ~]$ sudo yum install kibana
Der Service lässt sich mit folgenden Kommandos starten oder stoppen:
[oracle@localhost ~]$ sudo -i service kibana start [oracle@localhost ~]$ sudo -i service kibana stop
Der Aufruf der grafischen Weboberfläche erfolgt mittels eines Browsers unter der URL http://localhost:5601.
Elasticsearch
Die REST-API des Elasticsearch ermöglicht die Bereitstellung der Logging Daten des WebLogic Servers für Kibana. Somit ist in diesem Anwendungsfall die Hauptaufgabe des Elasticsearch Services, die Logging Daten zu speichern und zu verarbeiten, um sie anschließend visuell und strukturiert mithilfe einer Analyseplattform wiedergeben zu können.
Installation und Starten von Elasticsearch
Zu Beginn wird das Elasticsearch Repository erstellt:
[oracle@localhost ~]$ sudo touch /etc/yum.repos.d/elasticsearch.repo
Das Repository wird anschließend ergänzt:
[oracle@localhost ~]$ cat /etc/yum.repos.d/elasticsearch.repo [elasticsearch] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=0 autorefresh=1 type=rpm-md
Im Anschluss wird die Installation durchgeführt:
[oracle@localhost ~]$ sudo yum install --enablerepo=elasticsearch elasticsearch
Der Service lässt sich mit folgenden Kommandos starten oder stoppen:
[oracle@localhost ~]$ sudo -i service elasticsearch start [oracle@localhost ~]$ sudo -i service elasticsearch stop
Der Aufruf der Weboberfläche erfolgt mittels eines Browsers unter der URL http://localhost:9200.
Anwendung Logging Exporter
Beim Starten des Servers sollte eine ähnliche Meldung auf der Konsole ausgegeben werden. Diese Meldung signalisiert den erfolgreichen Start des Logging Exporters:
[oracle@localhost ~]$ source <Pfad zum Domainverzeichnis>/startWebLogic.sh ======================= Weblogic Logging Exporter Startup class called Reading configuration from file name: /oracle/product/middleware/wls141100/user_ projects/domains/config/WebLogicLoggingExporter.yaml <15.10.2020, 15:50:26,560 Mitteleuropäische Sommerzeit> <Notice> <Log Management> <BEA-170027> <The server has successfully established a connection with the Domain level Diagnostic Service.> Config{weblogicLoggingIndexName='wls', publishHost='localhost', publishPort=9200, weblogicLoggingExporterSeverity='Notice', weblogicLoggingExporterBulkSize='2', enabled=true, weblogicLoggingExporterFilters=[FilterConfig{expression='MSGID != 'BEA-000449'', servers=[]}], domainUID='domain1'}
Index Pattern werden von Kibana benötigt, um auf die entsprechenden Elasticsearch Daten zu zugreifen. Somit ist eine Selektierung der Daten nach diversen Eigenschaften möglich.
Über http://localhost:5601/ wird ein Index Pattern in Kibana erstellt, mit dem aufgeklappten Menü über Kibana → Discover → Create index pattern → Index pattern name: wls → Next step → Create index pattern.
Eine Betrachtung der Logs ist über Kibana → Discover möglich.
Um zu verstehen woher die Logmeldungen kommen, müssen die zuvor nach dem Serverstart ausgegebenen "<LoggingService>"-Meldungen auf der Konsole betrachtet werden:
[oracle@localhost ~]$ source <Pfad zum Domainverzeichnis>/startWebLogic.sh <15.10.2020, 15:50:19,028 Mitteleuropäische Sommerzeit> <Notice> <LoggingService> <BEA-320400> <The log file /oracle/product/middleware/wls141100/user_projects/ domains/servers/AdminServer/logs/AdminServer.log will be rotated. Reopen the log file if tailing has stopped. This can happen on some platforms, such as Windows.> <15.10.2020, 15:50:19,029 Mitteleuropäische Sommerzeit> <Notice> <LoggingService> <BEA-320401> <The log file has been rotated to/oracle/product/middleware/ wls141100/user_projects/domains/servers/AdminServer/logs/AdminServer.log0004 log00040. Log messages will continue to be logged in /oracle/product/ /middleware/wls141100/user_projects/domains/servers/AdminServer/logs/ /AdminServer.log.>
Ein Auszug einer solchen Logdatei:
[oracle@localhost ~]$ cat <Pfad zum Domainverzeichnis>/servers/<Servername>/logs/ <Logdatei> ####<14.10.2020, 16:38:21,534 Mitteleuropäische Sommerzeit> <Notice> <WebLogicServer> <localhost.localdomain> <AdminServer> <[STANDBY] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <7170ac3b-3c0b-4a2d-aa36-9a3386ab603f-00000006> <1602686301534> <[severity-value: 32] [rid: 0] > <BEA-000365> <Server state changed to ADMIN.> ####<14.10.2020, 16:38:21,650 Mitteleuropäische Sommerzeit> <Notice> <WebLogicServer> <localhost.localdomain> <AdminServer> <[STANDBY] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <7170ac3b-3c0b-4a2d-aa36-9a3386ab603f-00000006> <1602686301650> <[severity-value: 32] [rid: 0] > <BEA-000365> <Server state changed to RESUMING.>
Die Logging-Übersicht von Kibana über die Weboberfläche ist in der folgenden Abbildung zu sehen:
- Die angezeigten Tags ermöglichen es, die Logs nach spezifischen Inhalten zu filtern
- Die Logs werden in aufklappbaren Elementen dargestellt
- Die einzelnen Spalten können aufgeklappt werden, um eine tabellarische Übersicht der Informationen zu bekommen. Die Anzeige der Logs im JSON-Format ist ebenfalls möglich
Visualisierungsmöglichkeiten
Ein Beispiel einer wie zuvor genannten visuellen Darstellung mittels Kibana:
In der Veranschaulichung werden drei Managed Server auf die Häufigkeit ihres Serverstarts hin analysiert. Hierbei wird ein Säulendiagramm erstellt. Dies setzt sich aus den mit Schlüsselworten gefilterten Logmeldungen zusammen. Somit ist ein visuelles sowie spezifisches Monitoring möglich.
Fazit
Mittels Integration von Kibana, Elasticsearch und dem Logging Exporter sind Administratoren in der Lage, die Logs von relevanten Systemprozessen spezifiziert und strukturiert zu analysieren und zu überwachen. Des Weiteren können die zuvor erwähnten Logdaten in Form von Grafiken und Tabellen visualisiert werden.
Der im Artikel beschriebene Vorteil bezogen auf die Analyse der Logdaten in Verbindung mit der schnellen und einfachen Konfiguration der einzelnen Komponenten sind starke Argumente, die für den Aufbau einer solchen Infrastruktur sprechen. Dieser Vorteil wird besonders bei einer Vielzahl von zu überwachenden Ressourcen sichtbar, da dem Administrator sämtliche relevanten Informationen und Ereignisse an einer zentralen Stelle angezeigt werden.
Quellen
elastic. (10 2020). Von https://www.elastic.co/guide/en/elasticsearch/reference/7.9/rpm.html#rpm-repo abgerufen
elastic. (10 2020). Von https://www.elastic.co/guide/en/kibana/7.9/rpm.html#rpm-repo abgerufen
markxnelson. (10 2020). GitHub. Von https://github.com/oracle/weblogic-logging-exporter abgerufen
Oracle. (10 2020). Von https://docs.oracle.com/en/middleware/standalone/weblogic-server/14.1.1.0/notes/whatsnew.html#GUID-663B3917-2821-4C41-B841-CBEC74D89C0B abgerufen
Junior Consultant bei ORDIX
Bei Updates im Blog, informieren wir per E-Mail.
Kommentare