iPad Air 3(かな?)が楽しみな竹永です。洗濯機はまだ無い。
このところElasticsearchとかKibanaとかばっかり触っていましたが
たまには別のツールを触るのも良いと思うのです。
と、いうことで可視化ツールの
Grafana
を触ってみます。
Grafanaってなに?
可視化ツールです。ダッシュボードを作ってヒャッハーできます。
プラグインの追加でいろいろなところからデータを持ってこれるので簡単にいろいろなデータを可視化することができます。
今のところプラグイン無しで対応しているのは下記のソース。
- Graphite
- Elasticsearch
- CloudWatch
- InfluxDB
- OpenTSDB
- KairosDB
- Prometheus
プラグイン
を入れて試してみたのは下記。
- Zabbix
…対応しているデータソースがなかなか尖っています。
CloudWatchにひっそりと対応しているので、これはもうAWSに載せるしかないですね。
Amazon Linuxにインストールしてみる
早速いつもどおりさっくりとインストールしてみます。
今回使うものは下記のものです。
- EC2インスタンス(t2.nano) x 1
- Amazon Linux AMI(ami-59bdb937)
- EBS 8GB (Magnetic volume)
作ったらログインして、とりあえず最新版にします。
sudo yum update -y
公式ページの
インストール手順
をガン見してリポジトリ追加とインストールを行います。
実際にAmazon Linuxでやってみた結果はこちら↓
$ sudo tee /etc/yum.repos.d/grafana.repo << 'EOS' [grafana] name=grafana baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch repo_gpgcheck=1 enabled=1 gpgcheck=1 gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt EOS $ sudo yum install grafana -y (だばーっといっぱい出力) インストール: grafana.x86_64 0:2.6.0-1 完了しました!
ね?簡単でしょう?
「リポジトリいじりたくないぜ!」という方はページの最初の方に「下のコマンド打てばいいよ」と記載してあるのでコピペでOKです。
$ sudo yum install https://grafanarel.s3.amazonaws.com/builds/grafana-2.6.0-1.x86_64.rpm
Grafanaの設定をしてみる
設定ファイルは /etc/grafana/grafana.ini に居ます。
起動前にいじりましょう…というのもデフォルト設定がゆるゆるです。
- ユーザーを勝手に作れる
- Organizationも勝手に作れる
- ログは認証失敗くらいしか出てこない
ということでいじくります。
僕は黒い画面上ではVim派なのでVimを起動します。
$ sudo vim /etc/grafana/grafana.ini
ログを少しばかり細かくしましょう。
41行目あたりにあるやつを下記のように書き換えます。
# Log web requests
router_logging = true
ユーザー登録と一般ユーザーの組織作成を削ります。
124行目あたりに [users] セクションがあるので、ここを下記のように変更します。
[users] # disable user signup / registration allow_sign_up = false # Allow non admin users to create organizations allow_org_create = false
次に匿名アクセスを削ります。
[users] セクションの下にあります。デフォルトでも無効ですが念のため。
[auth.anonymous] # enable anonymous access enabled = false
あとはお好みでHTTPS化することもできます。
最近
Let’s Encrypt
がパブリックベータを始めたので、試しに鍵を作ってみるのも良いと思います。
今回はHTTPS化は飛ばして普通にHTTPでアクセスします。
さて、これだけいじれば後はGUIでなんとかなります。
起動してログインッ!
残念ながら起動は黒い画面です。
まずはインスタンス起動時に自動起動するようにして…
sudo chkconfig grafana-server on
Grafanaを起動します。
sudo service grafana-server start
あとはブラウザで http://インスタンスのIPアドレス:3000/ にアクセスすればオサレなログイン画面がでてきます。
デフォルトのID/PWは admin/admin です。
かるーくログインしてください。
ユーザー設定をする
ここからはWeb UIで操作をしていきます。
まずはデフォルトのIDとPWを見てると不安になるので変更します。
「Grafana admin」をクリックして管理画面に入ります。
管理画面に入ったら他の項目には目もくれず「Global Users」をポチッと押します。
するとユーザー一覧が出てくるので admin の横っちょにある「Edit」を押します。
NameとEmailとUsernameを変更して「Update」をポチッと押して…
そのあとNew passwordを入力して「Update」をポチッと押します。
これでひとまず安心です。
一回Sign outして、入力したIDとパスワードでログインできるか確認しましょう。
データソースを追加する
データソースというのはアレです。
グラフ生成に使うデータが突っ込んであるDBとかその辺です。
対応しているデータソースは概要に書いたとおりで、RDBMSとかは入っていません。
Grafanaではデータソースが組織に紐付いていて、
同じ組織に入っているユーザーであれば自由に使うことができます。
と、いうことで今回はCloudWatchをGrafanaで使えるようにします。
AWSの認証情報を書く
CloudWatchを使うまでには多少の手間が必要で、認証情報などを自分でサーバー内に設置する必要があります。
IAM Roleを設定しているのであればここはスキップしても大丈夫です。
Grafana内でAWSアカウントを切り替えたいのであれば別ですが…。
まずはSSHでサーバーにログインして、
下記のような感じにディレクトリと空ファイルを作ります。
$ cd /usr/share/grafana/ $ sudo mkdir .aws $ sudo touch .aws/credentials $ sudo chown -R grafana:grafana .aws
空ファイルを作ったら下記のような感じで .aws/credentials に認証情報を書きます。
「hogera」の部分は後で使うので、いい感じの名前をつけてあげてください。
[hogera] aws_access_key_id=AKIAHOGEEEEEEEEE aws_secret_access_key=vlhogeeeeeeeeeeeeeeeeeeeeeeeeee
保存したら黒い画面はおわりです。
Grafanaで使えるようにする
次に、Web UIの左側メニューから「Data Sources」を選択します。
上の方にある「Add new」をクリックして追加画面を表示します。
各項目に必要な情報を入力して「Add」を押せばデータソースの完成です。
ちなみに各項目の説明は↓のような感じ。
項目名 | 項目の説明 |
---|---|
Name | 名前です。わかりやすければなんでも良いです。 |
Default | グラフ等の作成時にデフォルトで選択させるかを指定します。 |
Type | 「CloudWatch」を選択してください。 |
Credentials profile name | 1つ前の認証情報を書くところにある「hogera」の部分です。 |
Default Region | お好みのリージョンをどうぞ。 |
ためしにグラフをつくってみる
せっかくなのでグラフを1個つくってみましょう。
まずはホーム画面に戻って、上のダッシュボード一覧にある「New」をクリックします。
するとまっさらなダッシュボードができあがるので、
緑っぽいやつにマウスポインターを合わせて、下図の項目をクリックします。
つぎにグラフに使うデータソースを選択します。
さっき作ったものが入っているはずなのでそれを選択します。
すると、ダバっと項目が増えるのでポチポチと入力していきます。
正しく入力したらグラフがでてきます。下図の例はCPU使用率です。
あとは入力フォーム右上の「Back to dashboard」をクリックすればダッシュボードにグラフが追加されます。
APIを叩くのも大変なCloudWatchが、あっさりと可視化されてしまいました。
おわり
長々と説明したGrafanaですが、慣れてしまうと10分くらいで構築から可視化までができあがります。
次回の記事では、Grafanaのいろいろなテクニックというか便利機能を紹介していきます。
P.S.
そういえば
インスタンスIDが長くなる
んでしたね。
Grafanaは何もしなくても対応していました。えらい。