AWS EC2へFluentdのインストール
オートスケーリングで追加・削除されるサーバは不特定であるためログの収集もしくは、一定期間前のログが参照できなくなる可能性がある。そのような事態を回避するためにログを外部ストレージへ移動できないかと考えていました。
世の中、便利なものがあるようでしたのでそちらを参考に自分の問題も解消できるか検証してみました。
いろんなところで紹介されていますが、自分でもやってみたのでその備忘録。
目的: AutoScalingを使用しているサーバのログをS3へ保存したい。
対象OS: Amazon Linux
インストール前に…
OS用アカウントにtd-agentユーザを作成
IAMユーザにtd-agentを作成(S3へのアクセス)
Fluentdのリポジトリを/etc/yum.repos.d/td.repoへ追加
[treasuredata]
name=TreasureData
baseurl=http://packages.treasure-data.com/redhat/$basearch
gpgcheck=0
td-agentのインストール
$sudo yum install td-agent
1.1.11がインストールされました。
プラグインをインストール
プラグインは、以下のものをインストールしました。とりあえずは、ログを収集したいのでブログ等で紹介されているものをチョイスしました。
今後、自分に必要そうなものがあれば別途インストールしたいと思います。
※参考にした記事:http://dev.classmethod.jp/cloud/amazon-linux-fluentd-setup-plugin/
$sudo /usr/lib64/fluent/ruby/bin/gem update
$sudo /usr/lib64/fluent/ruby/bin/gem install fluent-plugin-forest
$sudo /usr/lib64/fluent/ruby/bin/gem install fluent-plugin-config-expander
$sudo /usr/lib64/fluent/ruby/bin/gem install fluent-plugin-tail-multiline
ログ収集のために権限を変更
$sudo chgrp -R td-agent /var/log/nginx
$sudo chgrp -R td-agent /var/log/tomcat
$sudo chgrp -R td-agent /var/log/messages
$sudo chgrp -R td-agent /var/log/secure
$sudo chgrp -R td-agent /var/log/cron
$sudo chmod -R g+rx /var/log/nginx/
$sudo chmod -R g+rx /var/log/tomcat/
$sudo chmod -R g+rx /var/log/messages
$sudo chmod -R g+rx /var/log/secure
$sudo chmod -R g+rx /var/log/cron