サーバのログをfluentdでS3に転送してAtenaで解析することになったのでメモ。
まずはubuntuにfluentdをインストールしてログをテスト収集できるところまで。
環境
Ubuntu Server 16.04 LTS
fluentdをインストール
Ubuntu 16だとこれっぽい。
curl -L https://toolbelt.treasuredata.com/sh/install-ubuntu-xenial-td-agent2.sh | sh
参考
Installing Fluentd using DEB Package (Debian / Ubuntu Linux)
ログを収集確認用に仮フォルダを作成
あくまでローカルでfluentdの動作を確認するためだけに作った。
# mkdir /var/log/td-agent/copy-log-test/
fluentdの設定
転送するファイルや間隔などを定義する。
設定ファイル
vi /etc/td-agent/td-agent.conf
イベントの受信方法の設定
<source>
@type tail
format syslog
path /var/log/syslog
pos_file /var/log/td-agent/copy.syslog.pos
tag copy.syslog
</source>
使ったプラグインの詳細
受信したイベントの処理方法の設定
<match bastion.syslog>
@type file
path /var/log/td-agent/copy-log-test/syslog
</match>
使ったプラグインの詳細
flentdを起動
sudo /etc/init.d/td-agent start
さっき作った /var/log/td-agent/copy-log-test/
フォルダにログが出来ていれば成功だが、
Permissionエラーが出たのでFluentd の実行ユーザをrootにしてしまう。
/etc/init.d/td-agent
- TD_AGENT_USER=td-agent
- TD_AGENT_GROUP=td-agent
+ TD_AGENT_USER=root
+ TD_AGENT_GROUP=root
そして再起動
sudo /etc/init.d/td-agent restart
ひとまず出力は成功。
/var/log/td-agent/copy-log-test/
2017-07-24T18:44:45+00:00 copy.syslog {"host":"test","ident":"dhclient","pid":"1","message":"DHCPACK of 0.0.0.0 from 0.0.0.0"}
2017-07-24T18:44:45+00:00 copy.syslog {"host":"test","ident":"dhclient","pid":"1","message":"bound to 0.0.0.0 -- renewal in 1785 seconds."}