Grafana2.5がリリースされ、CloudWatchが正式にサポートされたので設定を行ってみる。
インストール
インストールの説明は割愛。
http://docs.grafana.org/installation/
データストアを持たないので、インストールして起動できさえすればOK。
デフォルトポートは3000
ユーザー/パスワードはadmin
CloudWatch設定
基本的にはこの設定通り
http://docs.grafana.org/datasources/cloudwatch/
CloudWatch部分のコードはcloudwatch.goで見ることができる。
AWS SDK for Goが使われている。
※PRにProfileの設定を追加したものが取り込まれたので、今後はマルチアカウントに対応できそう。(2015/11/01時点)
CloudWatch接続の為の認証はGrafanaの設定ではなく、サーバ側で行えるようにする必要がある。
方法は2種類。
IAM Roles
EC2で使用する場合はこの方法が一番セキュアで楽。
デメリットとして
- インスタンス起動時に設定しないといけない
- マルチアカウントに対応された時でも、1アカウント分の認証設定しかできない
AWS credentials file
サーバ内に${HOME}/.aws/credencialsを置き、
下記の形式でアクセスキー/シークレットアクセスキーを記載。
[default]
aws_access_key_id = asdsadasdasdasd
aws_secret_access_key = dasdasdsadasdasdasdsa
region = us-west-2
今回はこの方法で少し詰まったのでメモとして残す。
AWS credentials fileの置き場所について
公式の設定情報では下記の様に書いてある。
Create a file at ~/.aws/credentials. That is the HOME path for user running grafana-server.
grafana-serverを動かしているuserの${HOME}/.aws/credentialsに置けと。
grafana-serverを動かしているuser?
yum / aptでインストールしている場合はgrafana
ユーザーで起動しているはず。
initスクリプトでも確認ができる。
PATH=/bin:/usr/bin:/sbin:/usr/sbin
NAME=grafana-server
DESC="Grafana Server"
GRAFANA_USER=grafana
GRAFANA_GROUP=grafana
GRAFANA_HOME=/usr/share/grafana
CONF_DIR=/etc/grafana
WORK_DIR=$GRAFANA_HOME
DATA_DIR=/var/lib/grafana
LOG_DIR=/var/log/grafana
CONF_FILE=$CONF_DIR/grafana.ini
MAX_OPEN_FILES=10000
PID_FILE=/var/run/$NAME.pid
DAEMON=/usr/sbin/$NAME
psコマンドで確認
[root@localhost grafana]# ps aux |grep grafana
grafana 7032 0.0 3.3 498112 15560 ? Sl 12:20 0:02 /usr/sbin/grafana-server --pidfile=/var/run/grafana-server.pid --config=/etc/grafana/grafana.ini cfg:default.paths.data=/var/lib/grafana cfg:default.paths.logs=/var/log/grafana
この場合はUSER:grafana GROUP:grafana
で起動させている
その為、当然ファイルの権限もUSER:grafana GROUP:grafana
とする必要がある。
結局どうする?
/usr/share/grafana/.aws/credentialsにgrafanaユーザー/グループの権限でファイルを置く
- ファイルの置き場所 :
/usr/share/grafana/.aws/credentials
- ファイルの権限 :
-rw-------. 1 grafana grafana 140 Oct 29 17:15 credentials
[root@localhost grafana]# pwd
/usr/share/grafana
[root@localhost grafana]# ls -al
total 24
drwxr-xr-x. 6 root root 4096 Oct 29 16:43 .
drwxr-xr-x. 67 root root 4096 Oct 29 16:29 ..
drwxr-xr-x. 2 grafana grafana 4096 Oct 29 17:15 .aws
drwxr-xr-x. 2 root root 4096 Oct 29 17:12 conf
drwxr-xr-x. 12 root root 4096 Oct 29 16:28 public
drwxr-xr-x. 3 root root 4096 Oct 29 16:28 vendor
[root@localhost grafana]# ls -al .aws/
total 16
drwxr-xr-x. 2 grafana grafana 4096 Oct 29 17:15 .
drwxr-xr-x. 6 root root 4096 Oct 29 16:43 ..
-rw-------. 1 grafana grafana 34 Oct 29 16:34 config
-rw-------. 1 grafana grafana 140 Oct 29 17:15 credentials
結果
Test Connectionを押して下記画面のようになれば接続完了