无法使用 Fluentd @tcp <source> 参数 'source_address_key' 捕获系统日志客户端 IP 地址,警告 <source> 未使用
Unable to capture syslog client IP addresses using Fluentd @tcp <source> parameter 'source_address_key' with warning <source> is not used
需要有关 fluentd 配置的帮助,以允许在记录中捕获系统日志客户端 IP 地址。
我正在使用 docker 容器来启动一个 fluentd 实例来聚合来自远程系统日志客户端的日志,以便发送到 Elasticsearch 进行索引。
设法让设置与下面的@type syslog 一起工作。
<source>
@type syslog
tag syslog
protocol_type tcp
port 5140
frame_type octet_count
<parse>
@type syslog
message_format rfc5424
with_priority true
rfc5424_time_format %Y-%m-%dT%H:%M:%S+%z
</parse>
</source>
但是由于要聚合的syslog客户端较多,打算在记录中加入syslog客户端的IP地址来区分日志。
因此尝试使用@type tcp 和文档中列出的 source_address_key 参数来捕获传入的客户端 IP 地址。
"The field name for the client's IP address. If you set this option,
Fluentd automatically adds the remote address to each data record."
<source>
@type tcp
tag tcp.events
port 5140
source_address_key client_addr
<parse>
@type regexp
expression /^[\w :]+\<(?<pri>[0-9]{1,3})\>[1-9]\d{0,2} (?<time>[^ ]+) (?<host>[^ ]+)[- ]+(?<message>[\[\w\:\]\- \;\=\'\,\(\.\)\#]+)$/
</parse>
</source>
终端输出显示以下警告信息:
[warn]: parameter 'source_address_key' in <source>
@type tcp
tag "tcp.events"
port 5140
source_address_key client_addr
<parse>
@type "regexp"
expression /^[\w :]+\<(?<pri>[0-9]{1,3})\>[1-9]\d{0,2} (?<time>[^ ]+) (?<host>[^ ]+)[- ]+(?<message>[\[\w\:\]\- \;\=\'\,\(\.\)\#]+)$/
</parse>
</source> is not used.
并且从输出中,仅设法捕获系统日志消息,但没有将 IP 地址添加到记录中。
发现问题。似乎 source_address_key
不适用于 @type tcp.
发现它只在@type syslog中有效
如果有人遇到同样的问题,请返回此处。
# get logs from syslog
<source>
@type syslog
tag syslog
protocol_type tcp
source_address_key client_addr
port 5140
frame_type octet_count
<parse>
@type syslog
message_format rfc5424
with_priority true
rfc5424_time_format %Y-%m-%dT%H:%M:%S+%z
</parse>
</source>
需要有关 fluentd 配置的帮助,以允许在记录中捕获系统日志客户端 IP 地址。
我正在使用 docker 容器来启动一个 fluentd 实例来聚合来自远程系统日志客户端的日志,以便发送到 Elasticsearch 进行索引。
设法让设置与下面的@type syslog 一起工作。
<source>
@type syslog
tag syslog
protocol_type tcp
port 5140
frame_type octet_count
<parse>
@type syslog
message_format rfc5424
with_priority true
rfc5424_time_format %Y-%m-%dT%H:%M:%S+%z
</parse>
</source>
但是由于要聚合的syslog客户端较多,打算在记录中加入syslog客户端的IP地址来区分日志。
因此尝试使用@type tcp 和文档中列出的 source_address_key 参数来捕获传入的客户端 IP 地址。
"The field name for the client's IP address. If you set this option, Fluentd automatically adds the remote address to each data record."
<source>
@type tcp
tag tcp.events
port 5140
source_address_key client_addr
<parse>
@type regexp
expression /^[\w :]+\<(?<pri>[0-9]{1,3})\>[1-9]\d{0,2} (?<time>[^ ]+) (?<host>[^ ]+)[- ]+(?<message>[\[\w\:\]\- \;\=\'\,\(\.\)\#]+)$/
</parse>
</source>
终端输出显示以下警告信息:
[warn]: parameter 'source_address_key' in <source>
@type tcp
tag "tcp.events"
port 5140
source_address_key client_addr
<parse>
@type "regexp"
expression /^[\w :]+\<(?<pri>[0-9]{1,3})\>[1-9]\d{0,2} (?<time>[^ ]+) (?<host>[^ ]+)[- ]+(?<message>[\[\w\:\]\- \;\=\'\,\(\.\)\#]+)$/
</parse>
</source> is not used.
并且从输出中,仅设法捕获系统日志消息,但没有将 IP 地址添加到记录中。
发现问题。似乎 source_address_key
不适用于 @type tcp.
发现它只在@type syslog中有效
如果有人遇到同样的问题,请返回此处。
# get logs from syslog
<source>
@type syslog
tag syslog
protocol_type tcp
source_address_key client_addr
port 5140
frame_type octet_count
<parse>
@type syslog
message_format rfc5424
with_priority true
rfc5424_time_format %Y-%m-%dT%H:%M:%S+%z
</parse>
</source>