使用 Logstash 收集器 V1.0

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

开始之前

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

  • Logstash V2.x、Elasticsearch V2.x 和 Kibana V4.x
  • [17.0.0.1 and later]Logstash V5.3.x、Elasticsearch V5.3.x 和 Kibana V5.3.x

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

过程

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

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

      [17.0.0.1 and later]此外,您可以添加定制标记以装饰从服务器发送的事件。以下示例在 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 and later]maxFieldLength="3000">
      
          [17.0.0.1 and later]<tag>serverRackA5</tag>
          [17.0.0.1 and later]<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 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