Aufbau einer Log-Analytics-Infrastruktur für Oracle WebLogic

titelbild-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:

  1. Die angezeigten Tags ermöglichen es, die Logs nach spezifischen Inhalten zu filtern
  2. Die Logs werden in aufklappbaren Elementen dargestellt
  3. 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

Kibana bietet jedoch nicht nur eine übersichtliche Veranschaulichung der Logdateien, sondern auch eine visuelle/tabellarische Darstellung.

Mit dem aufgeklappten Menü über Kibana → Visualize → Create new Visualization ist die Erstellung einer solchen Veranschaulichung 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

By accepting you will be accessing a service provided by a third-party external to https://blog.ordix.de/