Log4j 输入插件
编辑Log4j 输入插件
编辑- 插件版本: v3.1.3
- 发布于: 2018-04-06
- 更新日志
对于其他版本,请参阅版本化插件文档。
获取帮助
编辑有关插件的问题,请在Discuss论坛中打开一个主题。对于错误或功能请求,请在Github中打开一个问题。有关 Elastic 支持的插件列表,请参阅Elastic 支持矩阵。
弃用通知
编辑此插件已弃用。建议您使用 filebeat 从 log4j 收集日志。
以下部分是如何从 SocketAppender 迁移到使用 filebeat 的指南。
要从 log4j SocketAppender 迁移到使用 filebeat,您需要进行以下更改
- 配置您的 log4j.properties (在您的应用程序中) 以写入本地文件。
- 安装并配置 filebeat 以收集这些日志并将它们发送到 Logstash
- 配置 Logstash 以使用 beats 输入。
配置 log4j 以写入本地文件
编辑在您的 log4j.properties 文件中,删除 SocketAppender 并将其替换为 RollingFileAppender。
例如,您可以使用以下 log4j.properties 配置来写入每日日志文件。
# Your app's log4j.properties (log4j 1.2 only) log4j.rootLogger=daily log4j.appender.daily=org.apache.log4j.rolling.RollingFileAppender log4j.appender.daily.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy log4j.appender.daily.RollingPolicy.FileNamePattern=/var/log/your-app/app.%d.log log4j.appender.daily.layout = org.apache.log4j.PatternLayout log4j.appender.daily.layout.ConversionPattern=%d{YYYY-MM-dd HH:mm:ss,SSSZ} %p %c{1}:%L - %m%n
更详细地配置 log4j.properties 不在本迁移指南的范围内。
配置 filebeat
编辑接下来,安装 filebeat。根据上面的 log4j.properties,我们可以使用以下 filebeat 配置
# filebeat.yml filebeat: prospectors: - paths: - /var/log/your-app/app.*.log input_type: log output: logstash: hosts: ["your-logstash-host:5000"]
有关配置 filebeat 的更多详细信息,请参阅配置 Filebeat。
配置 Logstash 以从 filebeat 接收
编辑最后,使用 beats 输入配置 Logstash
# logstash configuration input { beats { port => 5000 } }
强烈建议您还在 filebeat 和 logstash beats 输入中启用 TLS,以保护和确保日志数据的安全。
有关配置 beats 输入的更多详细信息,请参阅logstash beats 输入文档。
描述
编辑通过 TCP 套接字从 Log4j SocketAppender 读取事件。此插件仅适用于 log4j 版本 1.x。
可以接受来自客户端的连接或连接到服务器,具体取决于 mode
。根据配置的 mode
,您需要在远程端使用匹配的 SocketAppender 或 SocketHubAppender。
每个收到的 log4j LoggingEvent 创建一个事件,其模式如下
-
timestamp
⇒ 从 1970 年 1 月 1 日到创建日志事件所经过的毫秒数。 -
path
⇒ 日志记录器的名称 -
priority
⇒ 此事件的级别 -
logger_name
⇒ 日志记录器的名称 -
thread
⇒ 发出日志请求的线程名称 -
class
⇒ 发出日志请求的调用者的完全限定类名。 -
file
⇒ 发出日志请求的调用者的源文件名和行号,格式为以冒号分隔的 "fileName:lineNumber"。 -
method
⇒ 发出日志请求的调用者的方法名。 -
NDC
⇒ NDC 字符串 -
stack_trace
⇒ 多行堆栈跟踪
此外,如果原始 log4j LoggingEvent 包含 MDC 哈希条目,它们将作为字段合并到事件中。
Log4j 输入配置选项
编辑此插件支持以下配置选项以及稍后描述的通用选项。
设置 | 输入类型 | 必填 |
---|---|---|
否 |
||
字符串,以下之一 |
否 |
|
否 |
||
否 |
另请参阅通用选项,了解所有输入插件支持的选项列表。
proxy_protocol
编辑- 值类型为 布尔
- 默认值为
false
代理协议支持,目前仅支持 v1 http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt
通用选项
编辑所有输入插件都支持这些配置选项
设置 | 输入类型 | 必填 |
---|---|---|
否 |
||
否 |
||
否 |
||
否 |
||
否 |
||
否 |
codec
编辑- 值类型为 codec
- 默认值为
"plain"
用于输入数据的编解码器。输入编解码器是一种方便的方法,可以在数据进入输入之前对其进行解码,而无需在 Logstash 管道中使用单独的过滤器。