Fluentdで扱うログをフィルタリング(あるパターンのログを除外)する必要があったため、下記のプラグインを
試してみました。
github/muddydixon : fluent-plugin-filter
尚、FluentdはCentOS6にFluentdをインストールの記事で紹介したように、インストールされていることを
前提としています。
○fluent-plugin-filterのインストール
# /usr/lib64/fluent/ruby/bin/gem install fluent-plugin-filter
Fetching: fluent-plugin-filter-0.0.0.gem (100%)
Successfully installed fluent-plugin-filter-0.0.0
1 gem installed
Installing ri documentation for fluent-plugin-filter-0.0.0...
Installing RDoc documentation for fluent-plugin-filter-0.0.0...
○Fluentdの設定
# cat /etc/td-agent/td-agent.conf
type copy
type file
path /tmp/tail.syslog
type filter
deny ident: "-bash"
type file
path /tmp/filtered.syslog
特定パターンのログのみを出力するなど様々な設定が可能ですが、詳しい設定は直接ソースを見てもらえれば、
概ね理解して頂けると思います。
github/muddydixon(source) : fluent-plugin-filter
○ログの確認
フィルター前のログは下記の通りです。
# cat /tmp/tail.syslog.20130205.b4d4f40e7e13ac759
...
2013-02-05T18:45:52+09:00 tail.syslog {"host":"ip-10-148-5-42","ident":"audispd","message":"node=ip-10-148-5-42 type=USER_LOGIN msg=audit(1360057552.157:12733): user pid=20508 uid=0 auid=4294967295 ses=4294967295 msg='op=login acct=28756E6B6E6F776E207573657229 exe="/usr/sbin/sshd" hostname=? addr=127.0.0.1 terminal=ssh res=failed'"}
2013-02-05T18:46:32+09:00 tail.syslog {"host":"ip-10-148-5-42","ident":"-bash","message":"HISTORY: PID=18495 UID=0 less"}
2013-02-05T18:46:50+09:00 tail.syslog {"host":"ip-10-148-5-42","ident":"-bash","message":"HISTORY: PID=18495 UID=0 less /tmp/tail.syslog.20130205.b4d4f40e7e13ac759 "}
...
フィルター後のログは、下記のように「”ident”:”-bash”」が除外されたログになっています。
# cat /tmp/filtered.syslog.20130205.b4d4f445ccf660817
2013-02-05T18:47:52+09:00 filtered.tail.syslog {"host":"ip-10-148-5-42","ident":"postfix/smtpd","pid":"20195","message":"disconnect from localhost.localdomain[127.0.0.1]"}
2013-02-05T18:47:52+09:00 filtered.tail.syslog {"host":"ip-10-148-5-42","ident":"sshd","pid":"20569","message":"Connection closed by 127.0.0.1"}
2013-02-05T18:47:52+09:00 filtered.tail.syslog {"host":"ip-10-148-5-42","ident":"audispd","message":"node=ip-10-148-5-42 type=CRYPTO_KEY_USER msg=audit(1360057672.199:12741): user pid=20566 uid=0 auid=4294967295 ses=4294967295 msg='op=destroy kind=server fp=83:2f:96:a8:d5:c2:d9:fd:2b:a0:5b:3b:87:cb:fa:19 direction=? spid=20566 suid=0 exe="/usr/sbin/sshd" hostname=? addr=127.0.0.1 terminal=? res=success'"}