使用 Logstash 收集器 V1.0

使用 Liberty 中的 Logstash 收集器功能部件从 Liberty 服务器收集日志和其他事件,并将它们发送到远程 Logstash 服务器。 收集的事件可用于日志分析和故障诊断用途。

Open Liberty Open Liberty Web 站点上提供了有关将 Logstash 收集器与 Liberty 配合使用的最新文档。

准备工作

针对下列产品测试了 logstashCollector-1.0 功能部件:

  • Logstash V2.x、Elasticsearch V2.x 和 Kibana V4.x
  • Logstash V5.3.x、Elasticsearch V5.3.x 和 Kibana V5.3.x
  • Logstash V6.4.x、Elasticsearch V6.4.x 和 Kibana V6.4.x
  • Logstash V7.x、Elasticsearch V7.x 和 Kibana V7.x

可以将 logstashCollector-1.0 功能部件与运行 Logstash 中的任何可用输出插件的 Logstash 服务器配合使用。 但是,许多用户选择将 Logstash 与 Elasticsearch 和 Kibana 配合使用,以提供完整的日志合并和分析功能。 有关更多信息,请参阅 Elastic Web 站点

Logstash 收集器垃圾回收事件可从 IBM JDK 中的 IBM Health Center 获取。 IBM JDK通常包含 IBM 健康中心,但 IBM 和 Semeru 版本的JDK除外。

过程

  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. 根据自述文件下载 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 V2.x 用户, (可选) 定制 _ttl 缺省值以指示将每种事件类型的记录保留在 liberty_logstash_template.json 文件中的毫秒数。
  4. 对于要从中收集事件的每个 Liberty 服务器,请完成以下步骤。
    1. 获取或创建 Liberty 服务器的密钥库。 要创建自签名证书,请使用以下命令。 根据需要定制服务器名称、密码和主体集。
      d:\wlp\bin\securityUtility createSSLCertificate --server=myServerName --password="Liberty" --subject=CN=myHostname,OU=defaultServer,O=ibm,C=us
    2. logstash.crt 文件从步骤 2 导入到服务器中的 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. 通过添加以下内容,在 自由 中的 server.xml 文件中配置 Logstash 收集器。 根据需要定制 logstashCollector 的源、主机名和端口的列表。

      可以更改消息或跟踪事件中的消息字段或者 FFDC 事件中的堆栈跟踪所允许的最大字符数。 缺省最大字符数为 2048 个字符。 以下示例将 maxFieldLength 参数设置为 logstashCollector 元素中的 3000 个字符。 对于无限制的字符数,请将 maxFieldLength 设置为 0(零)或者 -1

      您可以限制每秒为每一类事件(message、trace、accessLog、ffdc、garbageCollection 和 audit)发送的最大事件数。 缺省的最大事件数为 0,这表示不进行调速。 如果将 maxEvents 设置为大于 0,那么将限制每秒发送的事件数。 maxEvents 值必须是 02147483647 之间的整数。

      此外,您可以添加定制标记以装饰从服务器发送的事件。 以下示例在 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,audit" 
      	hostName="localhost" 
      	port="5043" 
      	sslRef="mySSLConfig"
      	maxEvents="10"
      	maxFieldLength="3000">
      	<tag>serverRackA5</tag>
      	<tag>billingAppTeam</tag>
      </logstashCollector>

      跟踪和访问日志是大容量日志,需要收集更多网络、CPU 和存储资源。

    5. 启用 HTTP 访问日志记录并使用 '%h %u %t "%r" %s %b %D %{User-agent}i' 日志格式。
  5. 启动 Elasticsearch、Logstash 和 Kibana。 请参阅 Elastic Web 站点 以获取指示信息。
  6. 启动 Liberty 服务器,并生成一些事件。
  7. 在浏览器中打开 Kibana,并创建索引。
    • 对于 Kibana 7 , 6 或 5.6,单击 管理 > 索引模式
      • 输入 logstash-* 作为索引模式
      • 单击高级选项,然后输入 logstash-* 作为索引模式标识
      • 选择 datetime 作为时间过滤器字段名称,然后单击创建
    • 对于 Kibana 5.0-5.5,单击 管理 > 索引模式。 然后,选择 datetime 作为时间过滤器字段名称。 单击创建
    • 对于 Kibana 4 ,单击 设置 > 索引模式,然后选择 datetime 作为 时间过滤器字段名称。 单击创建
  8. 从此 存储库下载样本仪表板。
  9. 将该仪表板导入到 Kibana。
    • 对于 Kibana 7 , 6 或 5 ,单击 管理 > 保存的对象 > 导入
    • 对于 Kibana 4 ,单击 设置 > 对象 > 导入
  10. 查看该仪表板。
    • 对于 Kibana 7 , 6 或 5 ,单击 仪表板 > 打开 ,然后选择仪表板。
    • 对于 Kibana 4 ,单击 仪表板 > 装入已保存的仪表板 ,然后选择仪表板。

结果

您已配置 Liberty 服务器以将事件发送到 Logstash 服务器,现在可以使用 Kibana 在 Liberty 仪表板中查看事件。