使用 Liberty 中的 Logstash 收集器功能部件从 Liberty 服务器收集日志和其他事件,并将它们发送到远程 Logstash 服务器。 收集的事件可用于日志分析和故障诊断用途。
在 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除外。
过程
- 遵循 Elastic 中的指示信息来设置 Logstash。
- 为用于 Logstash 的 SSL 创建或获取证书和密钥对文件。
OpenSSL 的以下示例命令将生成证书和密钥对。 根据需要定制密钥的有效天数。
openssl req -x509 -newkey rsa:2048 -keyout logstash.key -out logstash.crt -days 365 -nodes
- 对于 Logstash 和 Elasticsearch 用户,请从此 存储库下载样本 Logstash 配置文件和索引模板文件。
- 根据自述文件下载 Elastic 堆栈版本的 Logstash 配置文件 liberty_logstash.conf和索引模板文件 liberty_logstash_template.json。
- 在 liberty_logstash.conf 文件中,定制 lumberjack
ssl_certificate 和 ssl_key 路径以及 Elasticsearch hosts (Elasticsearch_host_name:port_number) 值。
- 对于 Elasticsearch V2.x 用户, (可选) 定制
_ttl 缺省值以指示将每种事件类型的记录保留在 liberty_logstash_template.json 文件中的毫秒数。
- 对于要从中收集事件的每个 Liberty 服务器,请完成以下步骤。
- 获取或创建 Liberty 服务器的密钥库。 要创建自签名证书,请使用以下命令。 根据需要定制服务器名称、密码和主体集。
d:\wlp\bin\securityUtility createSSLCertificate --server=myServerName --password="Liberty" --subject=CN=myHostname,OU=defaultServer,O=ibm,C=us
- 将 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
- 运行以下命令以安装
logstashcollector-1.0 功能部件:
d:\wlp\bin\installUtility install logstashcollector-1.0
- 通过添加以下内容,在 自由 中的 server.xml 文件中配置 Logstash 收集器。 根据需要定制 logstashCollector 的源、主机名和端口的列表。
可以更改消息或跟踪事件中的消息字段或者 FFDC 事件中的堆栈跟踪所允许的最大字符数。 缺省最大字符数为 2048 个字符。 以下示例将 maxFieldLength 参数设置为 logstashCollector 元素中的 3000 个字符。 对于无限制的字符数,请将 maxFieldLength 设置为 0(零)或者 -1。
您可以限制每秒为每一类事件(message、trace、accessLog、ffdc、garbageCollection 和 audit)发送的最大事件数。 缺省的最大事件数为
0,这表示不进行调速。 如果将 maxEvents
设置为大于 0,那么将限制每秒发送的事件数。 maxEvents
值必须是 0 与 2147483647 之间的整数。
此外,您可以添加定制标记以装饰从服务器发送的事件。 以下示例在
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 和存储资源。
- 启用 HTTP 访问日志记录并使用
'%h %u %t "%r" %s %b %D %{User-agent}i' 日志格式。
- 启动 Elasticsearch、Logstash 和 Kibana。 请参阅 Elastic Web 站点 以获取指示信息。
- 启动 Liberty 服务器,并生成一些事件。
- 在浏览器中打开 Kibana,并创建索引。
- 对于 Kibana 7 , 6 或 5.6,单击 。
- 输入
logstash-* 作为索引模式。
- 单击高级选项,然后输入
logstash-* 作为索引模式标识。
- 选择
datetime 作为时间过滤器字段名称,然后单击创建。
- 对于 Kibana 5.0-5.5,单击 。 然后,选择
datetime 作为时间过滤器字段名称。 单击创建。
- 对于 Kibana 4 ,单击 ,然后选择
datetime 作为 时间过滤器字段名称。 单击创建。
- 从此 存储库下载样本仪表板。
- 将该仪表板导入到 Kibana。
- 对于 Kibana 7 , 6 或 5 ,单击 。
- 对于 Kibana 4 ,单击 。
- 查看该仪表板。
- 对于 Kibana 7 , 6 或 5 ,单击 ,然后选择仪表板。
- 对于 Kibana 4 ,单击 ,然后选择仪表板。
结果
您已配置 Liberty 服务器以将事件发送到 Logstash 服务器,现在可以使用 Kibana 在 Liberty 仪表板中查看事件。