无法使用Fluentd @tcp <source>参数'source_address_key'捕获警告<source>的系统日志客户端IP地址

时间:2019-06-25 06:19:37

标签: tcp ip syslog fluentd

需要流畅的配置帮助,才能捕获记录中的syslog客户端IP地址。

我正在使用docker容器启动一个流利的实例,以聚合来自远程syslog客户端的日志,并将其发送到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>

但是,由于有许多要聚合的系统日志客户端,因此打算通过将系统日志客户端的IP地址添加到记录中来区分日志。

因此,尝试使用@type tcp和文档中列出的source_address_key参数来捕获传入的客户端IP地址。

  

“客户端IP地址的字段名称。如果设置此选项,   Fluentd自动将远程地址添加到每个数据记录。”

<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.

从输出中,仅设法捕获syslog消息,但未将IP地址添加到记录中。

1 个答案:

答案 0 :(得分:0)

发现了问题。似乎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>