使用 Logstash 收集器 1.0 版

請利用 Liberty 中的 Logstash 收集器特性來收集 Liberty 伺服器的日誌和其他事件,將它們傳送至遠端 Logstash 伺服器。收集的事件可用來進行日誌分析和疑難排解。

開始之前

已使用下列產品測試過 logstashCollector-1.0 特性:

  • Logstash 2.x 版、Elasticsearch 2.x 版,以及 Kibana 4.x 版
  • [17.0.0.1 以及更新版本]Logstash 5.3.x 版、Elasticsearch 5.3.x 版,以及 Kibana 5.3.x 版

logstashCollector-1.0 特性可以與 Logstash 伺服器(在執行時會使用來自 Logstash 的任何可用的輸出外掛程式)搭配使用。不過,有很多使用者會選擇將 Logstash 與 Elasticsearch 和 Kibana 搭配使用,以提供完整的日誌合併與分析機能。如需相關資訊,請參閱 Elastic 網站

程序

  1. 遵循 Elastic 中的指示,來設定 Logstash。
  2. 建立或取得適用於 Logstash 的 SSL 憑證和金鑰組檔案。

    以下的 OpenSSL 範例指令會產生憑證和金鑰組。請視需要自訂金鑰的有效天數。

    openssl req -x509 -newkey rsa:2048 -keyout logstash.key -out logstash.crt -days 365 -nodes
  3. 若為 Logstash 和 Elasticsearch 使用者,請從這個儲存庫下載範例 Logstash 配置檔和索引範本檔。
    1. 根據 Readme 檔,針對您的 Elastic 堆疊版本,下載 Logstash 配置檔 liberty_logstash.conf 和索引範本檔 liberty_logstash_template.json
    2. liberty_logstash.conf 檔中,自訂 lumberjack ssl_certificatessl_key 路徑以及 Elasticsearch hosts (Elasticsearch_host_name:port_number) 值。
    3. 若為 Elasticsearch 2.x 版使用者,可以選擇性地在 liberty_logstash_template.json 檔中自訂 _ttl 預設值,指出每一種事件類型之記錄的保留毫秒數。
  4. 針對您想從中收集事件的每一部 Liberty 伺服器,完成下列步驟。
    1. 取得或建立 Liberty 伺服器的金鑰儲存庫。如果要建立自簽憑證,請使用下列指令。視需要自訂伺服器名稱、密碼和主體。
      d:\wlp\bin\securityUtility createSSLCertificate --server=myServerName --password="Liberty" --subject=CN=myHostname,OU=defaultServer,O=ibm,C=us
    2. 將步驟 2 中的 logstash.crt 檔,匯入至您伺服器中的 trust.jks 檔。視需要自訂 wlp_install_dir 和伺服器名稱。當提示您輸入密碼時,請使用步驟 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. 執行下列指令,以安裝 logstashcollector-1.0 特性:
      d:\wlp\bin\installUtility install logstashcollector-1.0
    4. 利用新增下列內容,在 Liberty 中配置 server.xml 檔中的 Logstash 收集器。視需要自訂 logstashCollector 的來源、主機名稱和埠清單。

      [17.0.0.2 以及更新版本]您可以針對訊息或追蹤事件中的訊息欄位,或針對 FFDC 事件中的堆疊追蹤,變更容許的字元數目上限。預設上限是 2048 個字元。下列範例是在 logstashCollector 元素中,將 maxFieldLength 參數設為 3000 個字元。如果希望字元數目不受限,請將 maxFieldLength 設為 0(零)或 -1

      [17.0.0.4 以及更新版本]您可以針對每一種類型的事件(message、trace、accessLog、ffdc、garbageCollection),限制每秒所能傳送的事件數目上限。預設的事件數目上限是 0,表示不套用節流控制。如果所設定的 maxEvents 大於 0,表示會限制每秒所傳送的事件數目。maxEvents 值必須在 02147483647 之間。

      [17.0.0.1 以及更新版本]此外,您可以新增自訂標籤,以便裝飾從伺服器傳來的事件。在下列範例中,logstashCollector 元素中有兩個 tag 元素。
      註: 在「管理中心」中使用的標籤,與 logstashCollector/bluemixLogCollector 中使用的標籤無關。
      <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 以及更新版本]maxFieldLength="3000">
      
          [17.0.0.1 以及更新版本]<tag>serverRackA5</tag>
          [17.0.0.1 以及更新版本]<tag>billingAppTeam</tag>
      </logstashCollector>

      追蹤和存取日誌都是高容量日誌,需要更多的網路、CPU 和儲存體資源來進行收集。

    5. 啟用 HTTP 存取記載,並使用 '%h %u %t "%r" %s %b %D %{User-agent}i' 日誌格式。
  5. 啟動 Elasticsearch、Logstash 和 Kibana。如需相關指示,請參閱 Elastic 網站
  6. 啟動 Liberty 伺服器,並產生一些事件。
  7. 在瀏覽器中開啟 Kibana,並建立索引。
    • 若為 Kibana 5,請按一下管理 > 索引型樣,將時間欄位名稱設為 datetime,然後按一下建立
    • 若為 Kibana 4,請按一下設定 > 索引型樣,將時間欄位名稱設為 datetime,然後按一下建立
  8. 從這個儲存庫,下載範例儀表板。
  9. 將儀表板匯入至 Kibana。
    • 若為 Kibana 5,請按一下管理 > 儲存的物件 > 匯入
    • 若為 Kibana 4,請按一下設定 > 物件 > 匯入
  10. 檢視儀表板。
    • 若為 Kibana 5,請按一下儀表板 > 開啟,然後選取儀表板。
    • 若為 Kibana 4,請按一下儀表板 > 載入儲存的儀表板,然後選取儀表板。

結果

您已將 Liberty 伺服器配置成會將事件傳送至 Logstash 伺服器,現在,您可以利用 Kibana,在 Liberty 儀表板中檢視事件。


指示主題類型的圖示 作業主題

檔名:twlp_analytics_logstash.html