CloudWatch
grafana

GrafanaでCloudWatch見る(接続設定編)

More than 3 years have passed since last update.

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を置き、

下記の形式でアクセスキー/シークレットアクセスキーを記載。


${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スクリプトでも確認ができる。


/etc/init.d/grafana-server

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を押して下記画面のようになれば接続完了


grafana2.5_cw_success.png