share facebook facebook2 twitter menu hatena pocket slack

2013.01.24 THU

FluentdのCloudWatchプラグイン(fluent-plugin-cloudwatch_ya)をRubyGems.orgに公開してみた

鈴木 宏康

WRITTEN BY鈴木 宏康

下記一連の記事でアップデートしてきた、FluentdのCloudWatchプラグインをRubyGems.orgに公開してみました。
既にfluent-plugin-cloudwatchは登録済みだったため、プラグイン名を
fluent-plugin-cloudwatch_ya(Yet Another Plugin for Amazon CloudWatch)としました。

ソースはGitHubになります。

インストール方法は下記の通りです。

○前提条件

以前の記事「CentOS6にFluentdをインストール」のようにtd-agentがインストールされていることを前提とします。

○依存パッケージ(gem)のインストール

AWS SDK for Rubyのインストール


# /usr/lib64/fluent/ruby/bin/gem install aws-sdk
Fetching: aws-sdk-1.8.0.gem (100%)
Successfully installed aws-sdk-1.8.0
1 gem installed
Installing ri documentation for aws-sdk-1.8.0...
Installing RDoc documentation for aws-sdk-1.8.0...

JsonPathのインストール


# /usr/lib64/fluent/ruby/bin/gem install jsonpath
Fetching: jsonpath-0.5.0.gem (100%)
Successfully installed jsonpath-0.5.0
1 gem installed
Installing ri documentation for jsonpath-0.5.0...
Installing RDoc documentation for jsonpath-0.5.0...

※パッケージの依存関係はまだgemには反映できていません

CloudWatchプラグイン(fluent-plugin-cloudwatch_ya)のインストール


# /usr/lib64/fluent/ruby/bin/gem install fluent-plugin-cloudwatch_ya
Fetching: fluent-plugin-cloudwatch_ya-0.0.2.gem (100%)
Successfully installed fluent-plugin-cloudwatch_ya-0.0.2
1 gem installed
Installing ri documentation for fluent-plugin-cloudwatch_ya-0.0.2...
Installing RDoc documentation for fluent-plugin-cloudwatch_ya-0.0.2...

○動作確認(dstat/fluent-plugin-dstatと連携)

前出のブログ記事(dstat(fluent-plugin-dstat)の情報をCloudWatchに登録してみた)を
gemでインストールしたプラグイン(fluent-plugin-cloudwatch_ya)で再現してみます。

まずは必要なパッケージ(dstat/fluent-plugin-dstat)をインストールします。


# yum -y install dstat
# /usr/lib64/fluent/ruby/bin/gem install fluent-plugin-dstat
Fetching: fluent-plugin-dstat-0.2.3.gem (100%)
Successfully installed fluent-plugin-dstat-0.2.3
1 gem installed
Installing ri documentation for fluent-plugin-dstat-0.2.3...
Installing RDoc documentation for fluent-plugin-dstat-0.2.3...

設定ファイル(/etc/td-agent/td-agent.conf)は下記の通りです。
(EC2に然るべきIAM Roleが付いていることが前提です)



type dstat
tag dstat
option -l
delay 60


type copy

type file
path /tmp/dstat


type cloudwatch_ya
buffer_type file
buffer_path /opt/suz-lab/var/lib/td-agent/buf/cloudwatch.dstat
flush_interval 1m
cloud_watch_endpoint monitoring.ap-northeast-1.amazonaws.com
namespace SUZ-LAB/TEST

metric_name LoadAvg1m
value_key $['dstat']['load avg']['1m']
unit None
outcast_no_dimension_metric yes

instance_id yes




※typeはcloudwatch_yaに変更しています。

最後に必要なディレクトリへのパーミッションを調整してFluentdを起動します。


# chown -R td-agent.td-agent /opt/suz-lab/var/lib/td-agent
# /etc/init.d/td-agent start

問題が無ければ下記のようにAWSコンソール(CloudWatch)で確認することができるはずです。

確認できない場合は下記のようにでDebug/TraceレベルロギングオプションでFluentdを再起動し
ログ(/var/log/td-agent/td-agent.log)を確認してみてください。


# cat /etc/sysconfig/td-agent
TD_AGENT_ARGS="/usr/sbin/td-agent --user td-agent --group td-agent --log /var/log/td-agent/td-agent.log -vv"

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。