【nginx/fluentd/s3/athena】fluentdでs3にlogを出してathenaで分析できるようにする その1
auto scale関係で、サーバーのログがすぐ消えてしまう環境で、ログをどこかに置いておきたい場合がある。 今回は、nginxのaccess_logを、fluentdでS3にアップロードし aws athenaで分析できるようにする
【目次】
- ec2にfluentdをセットアップ <- いまここ
- ecからs3にファイルアップロード
- athenaで分析する
ec2にfluentdをセットアップ
サーバー設定
ファイルディクリプタ
$ ulimit -n 1024
の場合は、
cd /etc/security sudo cp limits.conf limits.conf.origin sudo vim limits.conf
root soft nofile 65536 root hard nofile 65536 * soft nofile 65536 * hard nofile 65536
カーネルパタメーター
net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.ip_local_port_range = 10240 65535
両方変更して
/etc/sysctl.con
td-agent入れる
curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
td-agentの起動と、サーバー再起動時の起動設定
sudo service td-agent start Starting td-agent: [ OK ] sudo chkconfig td-agent on
td-agentのプラグイン
#S3へupload sudo /usr/sbin/td-agent-gem install fluent-plugin-s3 #プレースホルダー対応 sudo /usr/sbin/td-agent-gem install fluent-plugin-forest #configいじる sudo /usr/sbin/td-agent-gem install fluent-plugin-config-expander
td-agentのユーザー変更
/etc/init.d/td-agent
#TD_AGENT_USER=td-agent TD_AGENT_USER=root
設定ファイルの更新
詳細はその2で
/etc/td-agent/td-agent.conf
設定の反映
sudo /etc/init.d/td-agent reload