近頃いろいろと試していたFluentdのCloudWatchプラグインですが、(仕様の)紆余曲折を経て
FluentdのCloudWatchプラグイン(fluent-plugin-cloudwatch_ya)をRubyGems.orgに公開してみた
記事のようにRubyGems.orgに公開しました。

下記で紹介してきた記事の内容も対応できるよう調整していた為、改めて最新のもので同じ事を実現してみようと
思います。
(上記の記事の方法でfluent-plugin-cloudwatch_yaはインストール済みとします)

○DataCounterプラグインのインストール

# /usr/lib64/fluent/ruby/bin/gem install fluent-plugin-datacounter
Fetching: fluent-plugin-datacounter-0.4.0.gem (100%)
Successfully installed fluent-plugin-datacounter-0.4.0
1 gem installed
Building YARD (yri) index for fluent-plugin-datacounter-0.4.0...

○設定ファイル(/etc/td-agent/td-agent.conf)


type tail
format syslog
path /opt/suz-lab/var/log/syslog/all.log
pos_file /opt/suz-lab/var/lib/td-agent/pos/tail.syslog.pos
tag tail.syslog


type copy

type file
path /tmp/tail.syslog


type datacounter
unit minute
aggregate all
count_key ident
pattern1 history ^-bash$
pattern2 audit ^audispd$
tag datacounter.syslog



type copy

type file
path /tmp/datacounter.syslog


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

metric_name HistoryCount
value_key $['history_count']
unit Count

instance_id yes



metric_name AuditCount
value_key $['audit_count']
unit Count

instance_id yes



※デフォルト(outcast_no_dimension_metric no)でディメンジョン無しでデータをPUT
※instance_id yesでInstanceId=i-xxxxxxxxのディメンジョンでもPUT

○対象ログのパーミッション調整とFluentdの起動

# chown td-agent.td-agent /opt/suz-lab/var/log/syslog/all.log
# service td-agent start
Starting td-agent: [ OK ]

○確認

[
{:metric_name=>"HistoryCount", :timestamp=>"2013-01-20T18:08:43+09:00", :value=>3, :unit=>"Count", :dimensions=>[]},
{:metric_name=>"HistoryCount", :timestamp=>"2013-01-20T18:08:43+09:00", :value=>3, :unit=>"Count", :dimensions=>[{"name"=>"InstanceId", "value"=>"i-4dbcf34e"}]},
{:metric_name=>"AuditCount", :timestamp=>"2013-01-20T18:08:43+09:00", :value=>10, :unit=>"Count", :dimensions=>[]},
{:metric_name=>"AuditCount", :timestamp=>"2013-01-20T18:08:43+09:00", :value=>10, :unit=>"Count", :dimensions=>[{"name"=>"InstanceId", "value"=>"i-4dbcf34e"}]}
]

AWSコンソールでも下記のように確認できます。

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