Grafanaをdockerで利用する †
例: docker-compose †
- docker-compose.yml
services:
grafana:
image: grafana/grafana-oss:12.4.1
ports:
- "3000:3000"
user: 1000 # id -u
volumes:
- ./data:/var/lib/grafana
environment:
GF_PLUGINS_PREINSTALL: "alexanderzobnin-zabbix-app@6.3.0,grafana-athena-datasource@3.1.10"
AWS_SDK_LOAD_CONFIG: "true"
GF_AUTH_SIGV4_AUTH_ENABLED: "true"
GF_LOG_LEVEL: "warn"
AWS CloudWatchの設定 †
ec2等の実機の場合: IAM roleをec2等に設定する
- Authentication Provider: AWS SDK default
- セキュリティ上一番良いが、local dockerではIAM roleから値が取れないので、動作しない(はず)。
- 未検証: STSの値を環境変数(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN)に設定する
localで検証したい場合:
- Authentication Provider: Access key & secret key
- Authentication Provider: Credentials files
- GF_PATHS_HOME /usr/share/grafana なので、ここに「~/.aws/credentials」を配置すれば良さそう
- 「-v ./data:/var/lib/grafana」にマウントして、./data/.aws/credentials に配置しても動作しなかった
ログイン専用のAWSアカウントに集約している(AssumeRole)場合 †
記事:
AWS login account:
- example-login
- IAM user/group/roleの管理だけを行う
AWS another account: 顧客や、用途(dev, stg, prod)毎に複数ある
- example-dev
- example-prod
- example-loginからAssumeRoleするためのroleがある
- Configurations > Data Sources > CloudWatch
- Authentication Provider: Access key & secret key
例: example-dev の例
- Acess Key ID: ~/.aws/credentials の 「example-login」の値
- Secret Access Key: ~/.aws/credentials の 「example-login」の値
- Assume Role ARN: `~/.aws/config の「example-dev」の値
- arn:aws:iam::012345678912:role/example-assumerole-readonly