Grafanaでかっけぇダッシュボード作るよ!(構築・設定編)

記事タイトルとURLをコピーする

iPad Air 3(かな?)が楽しみな竹永です。洗濯機はまだ無い。

このところElasticsearchとかKibanaとかばっかり触っていましたが

たまには別のツールを触るのも良いと思うのです。

と、いうことで可視化ツールの
Grafana
を触ってみます。

Grafanaってなに?

可視化ツールです。ダッシュボードを作ってヒャッハーできます。

f:id:cmpokuma:20200508162117p:plain

プラグインの追加でいろいろなところからデータを持ってこれるので簡単にいろいろなデータを可視化することができます。

今のところプラグイン無しで対応しているのは下記のソース。

  • 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

公式ページの
インストール手順
をガン見してリポジトリ追加とインストールを行います。

f:id:cmpokuma:20200508163911p:plain

実際に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/ にアクセスすればオサレなログイン画面がでてきます。

f:id:cmpokuma:20200508165340p:plain

デフォルトのID/PWは admin/admin です。

かるーくログインしてください。

ユーザー設定をする

ここからはWeb UIで操作をしていきます。

まずはデフォルトのIDとPWを見てると不安になるので変更します。

「Grafana admin」をクリックして管理画面に入ります。

f:id:cmpokuma:20200508165531p:plain

管理画面に入ったら他の項目には目もくれず「Global Users」をポチッと押します。

f:id:cmpokuma:20200508165619p:plain

するとユーザー一覧が出てくるので admin の横っちょにある「Edit」を押します。

f:id:cmpokuma:20200508165851p:plain

NameとEmailとUsernameを変更して「Update」をポチッと押して…

f:id:cmpokuma:20200508165936p:plain

そのあとNew passwordを入力して「Update」をポチッと押します。

f:id:cmpokuma:20200508170019p:plain

これでひとまず安心です。

一回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」を選択します。

f:id:cmpokuma:20200508170303p:plain

上の方にある「Add new」をクリックして追加画面を表示します。

f:id:cmpokuma:20200508170430p:plain

各項目に必要な情報を入力して「Add」を押せばデータソースの完成です。

f:id:cmpokuma:20200508170509p:plain

ちなみに各項目の説明は↓のような感じ。

項目名 項目の説明
Name 名前です。わかりやすければなんでも良いです。
Default グラフ等の作成時にデフォルトで選択させるかを指定します。
Type 「CloudWatch」を選択してください。
Credentials profile name 1つ前の認証情報を書くところにある「hogera」の部分です。
Default Region お好みのリージョンをどうぞ。

ためしにグラフをつくってみる

せっかくなのでグラフを1個つくってみましょう。

まずはホーム画面に戻って、上のダッシュボード一覧にある「New」をクリックします。

f:id:cmpokuma:20200508171604p:plain

するとまっさらなダッシュボードができあがるので、

緑っぽいやつにマウスポインターを合わせて、下図の項目をクリックします。

Add graph menu

つぎにグラフに使うデータソースを選択します。

さっき作ったものが入っているはずなのでそれを選択します。

Data source menu

すると、ダバっと項目が増えるのでポチポチと入力していきます。

正しく入力したらグラフがでてきます。下図の例はCPU使用率です。

Graphs setting

あとは入力フォーム右上の「Back to dashboard」をクリックすればダッシュボードにグラフが追加されます。

Created graph

APIを叩くのも大変なCloudWatchが、あっさりと可視化されてしまいました。

おわり

長々と説明したGrafanaですが、慣れてしまうと10分くらいで構築から可視化までができあがります。

次回の記事では、Grafanaのいろいろなテクニックというか便利機能を紹介していきます。

P.S.

そういえば
インスタンスIDが長くなる
んでしたね。

Grafanaは何もしなくても対応していました。えらい。