Fluentdで扱うログをフィルタリング(あるパターンのログを除外)する必要があったので、
下記のプラグインを試してみました。
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
<source>
type tail
format syslog
path /opt/suz-lab/var/log/syslog/all.log
pos_file /opt/suz-lab/var/lib/td-agent/pos/tail.syslog.pos
tag tail.syslog
</source>
<match tail.syslog>
type copy
<store>
type file
path /tmp/tail.syslog
</store>
<store>
type filter
deny ident: "-bash"
</store>
</match>
<match filtered.**>
type file
path /tmp/filtered.syslog
</match>
他にもいろいろできますが(あるパターンのログのみ出力など)、詳しい設定は直接ソースをみてもらえれば、何となくわかると思います。
ログの確認
フィルター前のログは下記の通りです。
# 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'"}
Fluentdは途中のデータ加工のノウハウが重要かも...
--------
http://www.suz-lab.com

0 コメント:
コメントを投稿