今回は、先日書籍(Amazon Web Servicesクラウドデザインパターン設計ガイド)が発売された
Cloud Design Pattern(CDP)の記事になります。
今回の対象は「Web Storage Archiveパターン」です。
この「実装」の部分で、下記のような記載があります。
Fluentdと、そのAmazon S3 Output Pluginを利用して短いスパンでログを
S3にアーカイブすることも可能。
実際に試してみました。
(下記のようにFluentdがインストールされていることを前提とします)
○利用するディレクトリの準備
gitから引っ張ってくると簡単です。
# yum -y install git # cd /opt/ # git clone https://github.com/suz-lab/suz-lab-centos-ami.git suz-lab Initialized empty Git repository in /opt/suz-lab/.git/ remote: Counting objects: 50, done. remote: Compressing objects: 100% (38/38), done. remote: Total 50 (delta 11), reused 43 (delta 6) Unpacking objects: 100% (50/50), done.
しかし、下記のディレクトリが準備されていれば問題ありません。
/opt/suz-lab/etc/rsyslog/ /opt/suz-lab/etc/td-agent/ /opt/suz-lab/var/log/rsyslog/ /opt/suz-lab/var/lib/td-agent/ /opt/suz-lab/var/lib/td-agent/pos/ /opt/suz-lab/var/lib/td-agent/buf/
○rsyslogの調整
rsyslogが管理するすべとのログを一つのファイル(all.log)に出力するようにします。
# cat /etc/rsyslog.conf ... $IncludeConfig /opt/suz-lab/etc/rsyslog/*.conf # cat /opt/suz-lab/etc/rsyslog/all.conf *.* /opt/suz-lab/var/log/rsyslog/all.log # /etc/init.d/rsyslog restart システムロガーを停止中: [ OK ] システムロガーを起動中: [ OK ] # chown td-agent.td-agent /opt/suz-lab/var/log/rsyslog/all.log
○Amazon S3 Output Pluginのインストール
fluentd専用のruby(gem)でインストールします。
# /usr/lib64/fluent/ruby/bin/gem install fluent-plugin-s3 Fetching: aws-sdk-1.7.1.gem (100%) Fetching: fluent-plugin-s3-0.2.5.gem (100%) Successfully installed aws-sdk-1.7.1 Successfully installed fluent-plugin-s3-0.2.5 2 gems installed Installing ri documentation for aws-sdk-1.7.1... Installing ri documentation for fluent-plugin-s3-0.2.5... Installing RDoc documentation for aws-sdk-1.7.1... Installing RDoc documentation for fluent-plugin-s3-0.2.5... # cat /etc/td-agent/td-agent.conf include /opt/suz-lab/etc/td-agent/*.conf # chown -R td-agent.td-agent /opt/suz-lab/var/lib/td-agent
○Fluentdの設定ファイルの作成(調整)
設定ファイルにrsyslogの出力をS3にアーカイブする記述を追加します。
# cat /opt/suz-lab/etc/td-agent/rsyslog-s3.conftype s3 aws_key_id ACCESS KEY aws_sec_key SECRET KEY s3_bucket log2.suz-lab.com s3_endpoint s3-ap-northeast-1.amazonaws.com path syslog/ buffer_path /opt/suz-lab/var/lib/td-agent/buf/s3.syslog time_slice_format %Y/%m/%d/ip-10-120-29-120/%H flush_interval 10m
○Fluentdの起動をログのS3へのアーカイブの確認
Fluentdを起動して10分くらいすると、S3にログがアーカイブされていることがわかります。
# /etc/init.d/td-agent start