Logstash- und Bluemix-Protokollcollectors

Liberty generiert verschiedene Ereignisse zur Laufzeit, wie z. B. Protokollereignisse, Traceereignisse, FFDC-Ereignisse (First-Failure Data Capture, Erfassung von Fehlerdaten beim ersten Auftreten), Zugriffsprotokollereignisse und Garbage-Collection-Ereignisse. Insbesondere wenn Sie viele Server verwalten oder Server auf verschiedenen Plattformen (z. B. auf dedizierter Hardware und in der Cloud) ausführen, ist es hilfreich, Ereignisse von allen Servern zu konsolidieren, sodass die Ereignisse gesucht, gefiltert und analysiert werden können. In Fällen, in denen Sie Liberty in Umgebungen ohne persistenten Dateispeicher für Problembestimmungsdaten verwenden, kann es außerdem hilfreich sein, Ereignisse in einem separaten Server zu speichern.

Liberty stellt die Features "Logstash-Collector" und "Bluemix-Collector" bereit, mit dem Sie Ereignisse über Fernzugriff konsolidieren können. Die Collectors erfassen gerade ausgeführte Ereignisse, teilen sie in Felder auf und leiten die Ereignisse sicher an den konfigurierten Logstash- oder Bluemix-Protokollerfassungsserver weiter. Die Collectors können so konfiguriert werden, dass sie Daten mindestens einer der folgenden Typen senden:

  • Nachrichtenprotokollereignisse
  • Traceprotokollereignisse
  • HTTP-Zugriffsprotokollereignisse (vom Liberty-Server)
  • FFDC-Protokollereignisse
  • Garbage-Collection-Ereignisse (nur für IBM JDKs verfügbar)

Logstash-Collector

Das Feature "Logstash-Collector" (logstashCollector-1.0) sendet Ereignisse an einen Logstash-Server, den Sie bereitstellen.

Logstash kann mit dem Elasticsearch-Suchserver und dem Kibana-Dashboard verwendet werden. Sie stellen alle diese Ressourcen bereit, konfigurieren sie und verwalten sie, um eine konsolidierte Ansicht der Protokolle oder anderer Ereignisse in Ihrem Unternehmen zu erhalten. Sie müssen bei der Verwendung des Logstash-Collectors zum Weiterleiten von Ereignissen keine separaten Prozesse oder Agenten auf dem Liberty-Server-Computer konfigurieren.

Ereignisstruktur

Die Collectors senden jedes Ereignis als Satz von Feldname/Feldwert-Paaren. Jeder Typ von Ereignis hat einen eigenen Satz von Feldern. Beim Erstellen eigener Kibana-Dashboards ist es hilfreich zu wissen, welche Felder die einzelnen Ereignisse haben.

Die folgenden Felder sind allgemein und in allen Ereignissen vorhanden:
Tabelle 1. Allgemeine Ereignistypen
Feldname in logstashCollector-1.0 Feldbeschreibung
type Eine Zeichenfolge, die den Ereignistyp angibt.
datetime Die Uhrzeit, zu der das Ereignis eingetreten ist.
hostName Der Hostname des Servers, der die Quelle des Ereignisses ist.

Weitere Informationen zu den Regeln zum Festlegen des Hostnamens finden Sie unter Logstash- und Bluemix-Protokollcollectors mit Liberty in Docker verwenden.

wlpUserDir Das Benutzerverzeichnis des Servers, der die Quelle des Ereignisses ist, z. B. D:\wlp\usr.
serverName Der Servername des Servers, der die Quelle des Ereignisses ist.

Weitere Informationen zu den Regeln zum Festlegen des Servernamens finden Sie unter Logstash- und Bluemix-Protokollcollectors mit Liberty in Docker verwenden.

sequence Die Folgenummer des Ereignisses (hilfreich beim Sortieren von Datensätzen mit derselben Zeitmarke).
Neben den allgemeinen Feldern hat jeder Ereignistyp eigene eindeutige Felder:
  • Nachrichtenereignisse
    Tabelle 2. Nachrichtenereignisse (type: "liberty_message")
    Feldname in logstashCollector-1.0 Feldbeschreibung
    severity Der Anzeiger für den Schweregrad (F = Fatal, E = Error, W = Warning, A = Audit, I = Info, O = SystemOut, R = SystemErr).
     

    Der Anzeiger für den Schweregrad (FATAL, ERROR, WARNING, AUDIT, INFO, CONFIG, DETAIL).

    messageId Die Nachrichten-ID in der Protokollzeile, die verwendet werden kann, um bestimmte Fehlertypen zu finden, z. B. s SRVE0250I.
    methodName Der Methodenname aus dem Protokolldatensatz.
    className Der Klassenname aus dem Protokolldatensatz.
    loggerName Der Protokollname aus dem Protokolldatensatz.
    threadId Die Thread-ID in der Protokollzeile, z. B. 00000015. Die Thread-ID ist eine Zeichenfolge und keine Zahl.
    message Die mit der Nachrichten-ID beginnende Nachricht aus dem Protokolldatensatz.
    [16.0.0.4 und höher]Anmerkung: Zusätzlich zum Standardprotokoll- und Trace-Framework leitet der Logstash-Collector Nachrichtenereignisse weiter, wenn die Binärprotokollierung aktiviert ist.
  • Traceereignisse
    Tabelle 3. Traceereignisse (type: "liberty_trace")
    Feldname in logstashCollector-1.0 Feldbeschreibung
    severity Der Anzeiger für den Schweregrad (1 = Fine, 2 = Finer, 3 = Finest, > = Entry, < = Exit).
      Die Anzeige für den Schweregrad (FINE, FINER, FINEST, ENTRY, EXIT).
    methodName Der Methodenname aus dem Protokolldatensatz.
    className Der Klassenname aus dem Protokolldatensatz.
    loggerName Der Protokollname aus dem Protokolldatensatz.
    threadId Die Thread-ID in der Protokollzeile, z. B. 00000015. Die Thread-ID ist eine Zeichenfolge und keine Zahl.
    message Die Nachricht aus dem Protokolldatensatz.
    [16.0.0.4 und höher]Anmerkung: Zusätzlich zum Standardprotokoll- und Trace-Framework leitet der Logstash-Collector Traceereignisse weiter, wenn die Binärprotokollierung aktiviert ist.
  • HTTP-Zugriffsprotokollereignisse
    Tabelle 4. HTTP-Zugriffsprotokollereignisse (type: "liberty_accesslog")
    Feldname in logstashCollector-1.0 Feldbeschreibung
    uriPath Die Pfadangabe für die angeforderte URL. Diese Pfadangabe enthält nicht die Abfrageparameter, z. B. /pushworksserver/ push/apps/tags.
    requestMethod Das verwendete HTTP-Verb, z. B. GET.
    remoteHost Die IP-Adresse des fernen Host, z. B. 127.0.0.1.
    userAgent Der userAgent-Wert in der Anforderung.
    requestProtocol Der Protokolltyp, z. B. HTTP/1.1.
    queryString Die Zeichenfolge, die die Abfragezeichenfolge aus der HTTP-Anforderung darstellt, z. B. color=blue&size=large.
    bytesReceived In der URL empfangene Byte, z. B. 94.
    responseCode Der HTTP-Antwortcode, z. B. 200.
    elapsedTime Die für die Bearbeitung der Anforderung benötigte Zeit in Mikrosekunden.
    requestHost Die IP-Adresse des Anforderungshosts, z. B. 127.0.0.1.
    requestPort Die Portnummer der Anforderung.
  • FFDC-Ereignisseevents
    Tabelle 5. FFDC-Ereignisse (type: "liberty_ffdc":)
    Feldname in logstashCollector-1.0 Feldbeschreibung
    className Die Klasse, die den FFDC-Eintrag ausgegeben hat.
    exceptionName Die Ausnahme, die im FFD-Eintrag gemeldet wurde.
    probeID Die eindeutige ID des FFDC-Punkts in der Klasse.
    stackTrace Der Stack-Trace des FFDC-Vorfalls.
    objectDetails Die Vorfalldetails für den FFDC-Vorfall.
    threadId Die Thread-ID des FFDC-Vorfalls.
  • Garbage-Collection-Ereignisse
    Tabelle 6. Garbage-Collection-Ereignisse (type: "liberty_gc":)
    Feldname in logstashCollector-1.0 Feldbeschreibung
    heap Der insgesamt verfügbare Heapspeicher.
    usedHeap Der belegte Heapspeicher.
    duration Die Dauer der Garbage-Collection-Ausführung in Mikrosekunden.
    gcType Der Typ des Garbage-Collection-Ereignisses (z. B. Nursery, Global).
    reason Der Grund für die Garbage-Collection.

Logstash- und Bluemix-Protokollcollectors mit Liberty in Docker verwenden

Für die Ausführung von Liberty-Servern in Docker-Containern oder anderen virtualisierten Umgebungen werden hostName und serverName wie folgt definiert:

Das Feld hostName wird auf den ersten der folgenden Werte gesetzt, der verfügbar ist:
  • Wert der Umgebungsvariablen CONTAINER_HOST
  • Wert der Liberty-Konfigurationsvariablen ${defaultHostName} Liberty
  • Kanonischer Hostname gemäß Bericht des Software-Development-Kit (JDK)
Das Feld serverName wird auf den ersten der folgenden Werte gesetzt, der verfügbar ist:
  • Wert der Umgebungsvariablen CONTAINER_NAME
  • Wert der Liberty-Konfigurationsvariablen ${wlp.server.name} Liberty

Bei der Ausführung von Liberty-Servern im Bluemix-Container-Service sind CONTAINER_HOST und CONTAINER_NAME bereits definiert.

Bei der Ausführung von Liberty-Servern in Liberty-Docker-Verbünden sind CONTAINER_HOST und CONTAINER_NAME bereits definiert.

Wenn Liberty-Server in Docker-Containern oder anderen virtuellen Umgebungen, die Sie verwalten, ausgeführt werden, setzen Sie die Umgebungsvariablen CONTAINER_HOST und CONTAINER_NAME bei der Ausführung Ihres Image. Diese Umgebungsvariablen stellen sicher, dass der Logstash-Collector oder Bluemix-Protokollcollector die Datensätze, die er mit dem entsprechenden Host- oder Containernamen sendet, markiert, was die Problembestimmung unterstützt. Wenn Sie diese Umgebungsvariablen nicht definieren, kann es schwierig werden zu bestimmen, welcher Container welche Ereignisse gesendet hat, wenn ein Dashboard verwendet wird, in dem Ergebnisse mehrerer Container verwendet werden. Verwenden Sie beim Starten eines Docker-Containers einen Befehl wie den folgenden:
docker run -d -e LICENSE=accept -e CONTAINER_NAME=Containername -e CONTAINER_HOST=Container-Host --name=Containername Imagename

Symbol das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 01.12.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=cwlp_analytics_collectors
Dateiname: cwlp_analytics_collectors.html