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=<aws-load-blancer-name>] [-region=<aws-region>] [-access-key-id=<id>] [-secret-access-key=<key>] [-tempfile=<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"
lbnameを指定しない場合は参照可能なELBの平均値が取得されるようです。
RDS
aws-rds.conf
# mackerel-plugin-aws-rds -identifier=<db-instance-identifer> [-region=<aws-region>] [-access-key-id=<id>] [-secret-access-key=<key>] [-tempfile=<tempfile>] [-metric-key-prefix=<prefix>] [-metric-label-prefix=<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"
identifierは必須オプションになっており、指定しない場合は値取得不可(0)になります。 コマンド実行結果を確認すると以下の様なエラーが出力されます。
The parameter Dimensions.member.1.Value is required.
惜しむべきはカスタムメトリックとして登録されることでしょうか。
台数が少ない構成であれば問題無さそうですが、ELB/RDS等はホストとサービスメトリックとして登録したい所です。
公式よりfluentdを介することで実現するようです。