fluentd 推送 mariadb audit log

Posted 运维从入门到放弃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fluentd 推送 mariadb audit log相关的知识,希望对你有一定的参考价值。

说明:

mariadb audit log是 mariadb 的审计日志

目的是把日志拆分成 tab 键分隔的字段

 

直接附上 fluentd 配置文件

<system>
  log_level error
</system>
<source>
  @type tail
  path /data/logs/mariadb/server_audit.log
  tag mysql_audit
  pos_file /data/logs/mariadb/fluentd.pos
  <parse>
    @type multiline
    format_firstline /^d{8}/
    format1 /^(?<dt>d{8} d{2}:d{2}:d{2}),(?<hostname>[^,]+),(?<user>[^,]+),(?<ip>[^,]+),(?<connid>[^,]+),(?<queryid>[^,]+),(?<action>[^,]+),(?<db>[^,]+),(?<message>.*),(?<retcode>d+)$/
  </parse>
</source>

<filter mysql_audit>
  @type grep
  <regexp>
    key action
    pattern QUERY
  </regexp>
  <exclude>
    key user
    pattern lagou_status
  </exclude>
  <exclude>
    key db
    pattern information_schema
  </exclude>
</filter>

<filter mysql_audit>
  @type record_transformer
  enable_ruby
  <record>
    message ${record["message"].gsub(/s/,  )}
    message ${record["message"].gsub(/s+/,  )}
  </record>
</filter>

<match mysql_audit>
  #@type stdout
  @type file
  path "/data/logs/mariadb/#{ENV[‘HOSTNAME‘]}"
  time_slice_format %Y%m%d%H
  time_slice_wait 5m
  add_path_suffix false
  append true
  compress gzip
  <format>
    @type csv
    fields dt,hostname,user,ip,action,db,message,retcode
    delimiter     
  </format>
</match>

fluentd 比 logstash 内存占用大大下降

分析同样的日志 logstash 占用700M, fluentd 占用35M

不过 cpu 占用相当,对于日志量大的机器 cpu 到100%

看来对日志做正则过滤很损耗 cpu

以上是关于fluentd 推送 mariadb audit log的主要内容,如果未能解决你的问题,请参考以下文章

MySQL审计插件-MariaDB Audit Plugin

MySQL审计工具Audit插件使用

给MariaDB开启日志审计功能

开启mysql5.6 5.7的audit审计日志

MariaDB 触发器在同一张表上执行 UPDATE 和 INSERT

mariadb操作审计