agent-pluginを使ってELB、RDSの監視設定を追加していきます。

IAM Policy

mackerel-plugin-aws-elb は GetMetricStatistics に加え、ListMetrics も必要とのことです。

  • cloudwatch:GetMetricStatistics
  • cloudwatch:ListMetrics

CLI で IAM User 作成

専用の IAM User を作成するなら以下のような感じでしょうか。

$ USER=mackerel_agent
# IAMユーザ作成
$ aws iam create-user --user-name $USER
{
    "User": {
        "UserName": "mackerel_agent",
        "Path": "/",
        "CreateDate": "2016-03-28T10:04:13.381Z",
        "UserId": "XXXXXXXXXXXXXXXXXXXXX",
        "Arn": "arn:aws:iam::999999999999:user/mackerel_agent"
    }
}
# IAMポリシー付与
$ aws iam attach-user-policy --user-name $USER --policy-arn arn:aws:iam::aws:policy/CloudWatchReadOnlyAccess
# AccessKey生成
$ aws iam create-access-key --user-name $USER
{
    "AccessKey": {
        "UserName": "mackerel_agent",
        "Status": "Active",
        "CreateDate": "2016-03-28T10:06:33.644Z",
        "SecretAccessKey": "YYYYYYYYYYYYYYYYYYYYYYYYYYYY/zzzzzzzzzzz",
        "AccessKeyId": "WWWWWWWWWWWWWWWWWWWW"
    }
}

ELB

mackerel-plugin-aws-elb

aws-elb.conf

# mackerel-plugin-aws-elb [-lbname=] [-region=] [-access-key-id=] [-secret-access-key=] [-tempfile=]

[plugin.metrics.aws-elb]
command = "/usr/local/bin/mackerel-plugin-aws-elb -access-key-id AWS_ACCESS_KEY_ID -secret-access-key AWS_SECRET_ACCESS_KEY -lbname ELB_NAME

20160423024441

lbnameを指定しない場合は参照可能なELBの平均値が取得されるようです。

RDS

aws-rds.conf

# mackerel-plugin-aws-rds -identifier= [-region=] [-access-key-id=] [-secret-access-key=] [-tempfile=] [-metric-key-prefix=] [-metric-label-prefix=]

[plugin.metrics.aws-rds]
command = "/usr/local/bin/mackerel-plugin-aws-rds -identifier=DBIDENTIFIER -access-key-id AWS_ACCESS_KEY_ID -secret-access-key AWS_SECRET_ACCESS_KEY"

20160423024452

identifierは必須オプションになっており、指定しない場合は値取得不可(0)になります。 コマンド実行結果を確認すると以下の様なエラーが出力されます。

The parameter Dimensions.member.1.Value is required.

惜しむべきはカスタムメトリックとして登録されることでしょうか。 台数が少ない構成であれば問題無さそうですが、ELB/RDS等はホストとサービスメトリックとして登録したい所です。
公式よりfluentdを介することで実現するようです。

元記事はこちら

Mackerel事始め agent-plugin ELB RDS