システム管理者は多くのサーバから随時データを受信してその健康状態を判断しなければなりません。サービスの負荷があがっていないか、ストレージは十分にあるか、データベースがボトルネックになっていないかなど判断材料は多数あります。

そうしたデータを逐一サーバにログインして確認していては時間がかかってしまいますので、データダッシュボードソフトウェアが使われます。今回はその一つ、Grafanaを紹介します。

Grafanaのインストール

Grafanaのインストール方法は幾つも用意されています。CentOS/Ubuntuなど各Linuxディストリビューションごとにパッケージも提供されていますし、Dockerを使ったインストールも行えます。

# macOSの場合
brew update
brew install grafana
brew services start grafana

# Dockerの場合
docker run -i -p 3000:3000 grafana/grafana

これで 3000番ポートで起動します。

データの準備

最初は特にデータがありませんので、まずデータソースを登録します。今回はMySQLのような使い勝手で利用できる時系列データベースInfluxDBを使います。こちらのインストールはDockerを使うのが手軽です。

$ docker run -d -p 8083:8083 -p 8086:8086 -p 8090:8090 -p 8099:8099 influxdb

これでWeb APIとして http://localhost:8086/ が立ち上がります。後は influx コマンドでログインしてデータベースを作成後、次のようなコマンドでデータの登録ができます。

$ curl -i -XPOST http://localhost:8086/write?db=mydb --data-binary "temperature,machine=unit42,type=assembly external=90,internal=60"

データソースの登録

データが蓄積されたら、Grafanaでデータソースとして登録します。データソースは基本的にデータベースの接続情報を登録するだけです。現在のところ、以下のサービスがデータソースとして利用できます。

  • Graphite
  • Elasticsearch
  • CloudWatch
  • InfluxDB
  • OpenTSDB
  • KairosDB
  • Prometheus

クエリーの登録

データソースを登録したら、次にデータの取り出し方を指定します。グラフも表示されているので、その中でカラムやテーブル、取り出し方や頻度などを設定します。データは複数系列表示に対応しています。

表示は細かく調整できます。

ダッシュボードにて確認

後はビジュアル化されたデータをダッシュボードで確認するだけです。閲覧の他、データをJSONやCSVで取得することもできます。グラフのパターンはあまり多くありませんが(棒、エリア、円、折れ線など)、シンプルなダッシュボードとしては十分かと思います。

デモ

Grafana – Grafana Play Homeにてライブデモが確認できます。

マウスでデータの表示範囲を絞り込むと、すべてのグラフが連携して表示を更新するのが分かります。

アラートの設定も可能です。

グラフだけでなく、グリッドを使った表現も可能です。

ダッシュボードは複数作成したり、スナップショットを取っておくことができます。さらにプラグインも用意されており、手軽に機能追加ができます。

その他、ショートカットキーや動的なグラフ表示項目の変更といった機能があります。


Grafanaは機能としては他のダッシュボードソフトウェアに比べて少ないと思われますが、すぐに使いこなせるというのが利点と言えます。インストールも簡単ですし、データソースの設定も難しくないはずです。システムの重要なデータを可視化し、一目見ただけでステータスが分かるダッシュボードを作成しましょう。

Grafana – Beautiful Metrics Dashboards, Data Visualization and Monitoring