流利的配置以解析auth.log

时间:2019-04-16 08:13:50

标签: elasticsearch logging kubernetes fluentd efk

我正在使用以下配置来流利地读取auth.logs并将其发送到弹性搜索,但是我遇到一个错误,指出模式不匹配并且日志没有推送到ES。

我正在使用fluentd syslog解析器插件rfc3164-pattern中定义的模式

<source>
  @type tail
  path /var/log/auth.log
  pos_file /var/log/auth.pos
  format /^\<(?<pri>[0-9]+)\>(?<time>[^ ]* {1,2}[^ ]* [^ ]*) (?<host>[^ ]*) (?<ident>[a-zA-Z0-9_\/\.\-]*)(?:\[(?<pid>[0-9]+)\]) *(?<message>.*)$/
  tag authlog
</source>
<match authlog.**>
  @type elasticsearch
  hosts "ESHOST:PORT"
  logstash_format true
  logstash_prefix "server-authlogs"
  include_tag_key true
  flush_interval 5s
  logstash_dateformat %Y.%m.%d
  time_precision 3
</match>

输出错误:

  

2019-04-16 08:00:50 +0000 [警告]:#0模式不匹配:“ 4月16日08:00:50主机名-1415 sshd [15134]:pam_unix(sshd:session):会话已打开为用户ubuntu通过(uid = 0)”   2019-04-16 08:00:50 +0000 [警告]:#0模式不匹配:“ 4月16日08:00:50主机名-1415 systemd-logind [1138]:用户ubuntu的新会话10。”

2 个答案:

答案 0 :(得分:0)

对于那些正在寻找类似产品的人来说,这里的配置效果很好。

<source> 
 type tail 
 path /var/log/foo/auth.log 
 pos_file /var/log/auth.pos 
 tag authlog
 format /^(?<time>[^ ]* {1,2}[^ ]* [^ ]*) (?<host>[^ ]*) (?<ident>[a-zA-Z0-9_\/\.\-]*)(?:\[(?<pid>[0-9]+)\])?(?:[^\:]*\:)? *(?<message>.*)$/ 
</source>
<match authlog.**>
 @type elasticsearch
 hosts "ESHOST:PORT"
 logstash_format true
 logstash_prefix "server-authlogs"
 include_tag_key true
 flush_interval 5s
 logstash_dateformat %Y.%m.%d
 time_precision 3
</match>

对于以下身份验证日志模式:

Apr 16 18:02:02 host-1415 sshd[11111]: Accepted password for ubuntu from 111.11.111.11 port 11111 ssh2

答案 1 :(得分:0)

How about using parser_syslog? If /var/log/auth.log has syslog format(RFC3164).

<source> 
  @type tail 
  path /var/log/auth.log 
  pos_file /var/log/auth.pos 
  tag authlog
  <parse>
    @type syslog
    message_format rfc3164
    with_priority false
  </parse>
</source>