Logstash-Collector der Version 1.0 verwenden

Verwenden Sie das Feature "Logstash-Collector" in Liberty, um Protokollereignisse und andere Ereignisse Ihrer Liberty-Server zu erfassen und sie an einen fernen Logstash-Server zu senden. Die erfassten Ereignisse können für die Protokollanalyse und die Fehlerbehebung verwendet werden.

Vorbereitende Schritte

Das Feature logstashCollector-1.0 wurde mit den folgenden Produkten getestet:

  • Logstash Version 2.x, Elasticsearch Version 2.x und Kibana Version 4.x
  • [17.0.0.1 und höher]Logstash Version 5.3.x, Elasticsearch Version 5.3.x und Kibana Version 5.3.x

Sie können das Feature logstashCollector-1.0 mit einem Logstash-Server verwenden, der mit einem der verfügbaren Ausgabe-Plug-ins von Logstash ausgeführt wird. Viele Benutzer verwenden Logstash jedoch mit Elasticsearch und Kibana, um eine vollumfängliche Funktion für die Protokollkonsolidierung und -analyse bereitzustellen. Weitere Informationen finden Sie auf der Website von Elastic.

Vorgehensweise

  1. Richten Sie Logstash anhand der Anweisungen von Elastic ein.
  2. Erstellen Sie Zertifikats- und Schlüsselpaardateien für SSL für Logstash oder fordern Sie sie an.

    Der folgende Beispielbefehl für openSSL generiert ein Zertifikat und ein Schlüsselpaar. Passen Sie bei Bedarf die Anzahl der Tage an, für die die Schlüssel gültig sind.

    openssl req -x509 -newkey rsa:2048 -keyout logstash.key -out logstash.crt -days 365 -nodes
  3. Laden Sie für Logstash- und Elasticsearch-Benutzer eine Logstash-Beispielkonfigurationsdatei und eine Indexvorlagendatei aus diesem Repository herunter.
    1. Laden Sie die Logstash-Konfigurationsdatei liberty_logstash.conf und die Indexvorlagendatei liberty_logstash_template.json für Ihre Elastic-Stack-Version herunter. Verwenden Sie dazu die Informationen in der Readme-Datei.
    2. Passen Sie in der Datei liberty_logstash.conf die Lumberjack-Pfade für ssl_certificate und ssl_key und den hosts-Wert für Elasticsearch (Elasticsearch-Hostname:Portnummer) an.
    3. Passen Sie für Benutzer von Elasticsearch Version 2.x optional die _ttl-Standardwerte an, um die Anzahl der Millisekunden für die Aufbewahrung von Datensätzen jedes Ereignistyps in der Datei liberty_logstash_template.json anzugeben.
  4. Führen Sie die folgenden Schritte für jeden Liberty-Server aus, dessen Ereignisse Sie erfassen möchten.
    1. Fordern Sie einen Keystore für den Liberty-Server an oder erstellen Sie einen Keystore. Verwenden Sie den folgenden Befehl, um ein selbst signiertes Zertifikat zu erstellen. Passen Sie den Servernamen, das Kennwort und das Subjekt bei Bedarf an.
      d:\wlp\bin\securityUtility createSSLCertificate --server=myServerName --password="Liberty" --subject=CN=myHostname,OU=defaultServer,O=ibm,C=us
    2. Importieren Sie die Datei logstash.crt aus Schritt 2 in die Datei trust.jks in Ihrem Server. Passen Sie wlp_install_dir und den Servernamen bei Bedarf an. Wenn Sie zur Eingabe eines Kennworts aufgefordert werden, verwenden Sie das Zertifikatskennwort aus Schritt 4a.
      d:\java\bin\keytool -import -noprompt -alias logstash -file logstash.crt -keystore wlp_install_dir\usr\servers\myServerName\resources\security\trust.jks -storepass Liberty
    3. Führen Sie den folgenden Befehl aus, um das Feature logstashcollector-1.0 zu installieren:
      d:\wlp\bin\installUtility install logstashcollector-1.0
    4. Konfigurieren Sie den Logstash-Collector in der Datei server.xml in Liberty, indem Sie den folgenden Inhalt hinzufügen. Passen Sie die logstashCollector-Quellenliste, den Hostnamen und den Port bei Bedarf an.

      [17.0.0.2 und höher]Sie können die maximale Anzahl an Zeichen, die für ein Nachrichtenfeld in einer Nachricht oder einem Traceereignis bzw. für den Stack-Trace in einem FFDC-Ereignis zulässig sind, anpassen. Der Standardmaximalwert sind 2048 Zeichen. Im folgenden Beispiel wird der Parameter maxFieldLength im Element logstashCollector auf 3000 Zeichen gesetzt. Wenn Sie die Zeichenanzahl nicht beschränken möchten, setzen Sie maxFieldLength auf 0 (null) oder -1.

      [17.0.0.4 und höher]Sie können die maximale Anzahl der Ereignisse begrenzen, die pro Sekunde für jeden einzelnen Ereignistypen gesendet werden (message, trace, accessLog, ffdc, garbageCollection). Der Standardwert für die maximale Anzahl von Ereignissen ist 0, d. h., es gibt keine Begrenzung. Wenn maxEvents auf einen Wert größer als 0 gesetzt ist, gibt es eine Begrenzung der Anzahl der pro Sekunde gesendeten Ereignisse. Der Wert für maxEvents muss eine ganze Zahl zwischen 0 und 2147483647 sein.

      [17.0.0.1 und höher]Sie können auch angepasste Tags hinzufügen, um vom Server gesendete Ereignisse mit Dekoratoren zu versehen. Das folgende Beispiel hat zwei tag-Elemente im Element logstashCollector.
      Anmerkung: Im Admin Center verwendete Tags stehen mit den in logstashCollector/bluemixLogCollector verwendeten Tags in keiner Beziehung.
      <featureManager>     <feature>logstashCollector-1.0</feature>
      </featureManager> 
      
      <keyStore id="defaultKeyStore" password="Liberty" />
      <keyStore id="defaultTrustStore" location="trust.jks" password="Liberty" />
      <ssl id="mySSLConfig" trustStoreRef="defaultTrustStore" keyStoreRef="defaultKeyStore" />
      
      <logstashCollector 
      	source="message,trace,garbageCollection,ffdc,accessLog" 
      	hostName="localhost" 
      	port="5043" 
      	sslRef="mySSLConfig"
      	maxEvents="10"
      	[17.0.0.2 und höher]maxFieldLength="3000">
      
          [17.0.0.1 und höher]<tag>serverRackA5</tag>
          [17.0.0.1 und höher]<tag>billingAppTeam</tag>
      </logstashCollector>

      Trace- und Zugriffsprotokolle sind umfangreiche Protokolle, deren Erfassung mehr Netz-, CPU- und Speicherressourcen erfordert.

    5. Aktivieren Sie die HTTP-Zugriffsprotokollierung und verwenden Sie das Protokollformat '%h %u %t "%r" %s %b %D %{User-agent}i'.
  5. Starten Sie Elasticsearch, Logstash und Kibana. Diesbezügliche Anweisungen finden Sie auf der Website von Elastic.
  6. Starten Sie den Liberty-Server und generieren SIe einige Ereignisse.
  7. Öffnen Sie Kibana in einem Browser und erstellen Sie einen Index.
    • Klicken Sie für Kibana 5 auf Management > Index Patterns, setzen Sie Time-field name auf datetime und klicken Sie dann auf Create.
    • Klicken Sie für Kibana 4 auf Settings > Index Patterns, setzen Sie Time-field name auf datetime und klicken Sie dann auf Create.
  8. Laden Sie ein Beispieldashboard aus diesem Repository herunter.
  9. Importieren Sie das Dashboard in Kibana.
    • Klicken Sie für Kibana 5 auf Management > Saved Object > Import.
    • Klicken Sie für Kibana 4 auf Settings > Objects > Import.
  10. Rufen Sie das Dashboard auf.
    • Klicken Sie für Kibana 5 auf Dashboard > Open und wählen Sie dann das Dashboard aus.
    • Klicken Sie für Kibana 4 auf Dashboard > Load Saved Dashboard und wählen Sie dann das Dashboard aus.

Ergebnisse

Sie haben Ihre Liberty-Server so konfiguriert, dass Ereignisse an Ihren Logstash-Server gesendet werden, und können Ihre Ereignisse jetzt mit Kibana im Liberty-Dashboard anzeigen.

Für z/OS-Plattformen[16.0.0.4 und höher]Wenn Sie den Logstash-Collector für Garbage-Collection-Ereignisse übernehmen, funktioniert das verzögerte Herstellen einer Verbindung möglicherweise für IBM® Tools bei der z/OS-JVM (Java™ Virtual Machine) nicht ordnungsgemäß. Fügen Sie die Systemeigenschaft und den Wert -Dcom.ibm.tools.attach.enable=yes für den JVM-Aufruf hinzu, um das Problem zu beheben. Fügen Sie sie entweder direkt als Teil der Java-Ausführung oder innerhalb einer jvm.options-Datei hinzu.


Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_analytics_logstash.html