Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

10分で理解するGrafana

More than 1 year has passed since last update.

Grafana とは

Grafana は Grafana Labs が公開しているログ・データ可視化のためのツールです
可視化ツールとしては kibana とほぼ同じようなものです

grafana_top.png

Grafana も kibana も、DB に保存されたログに対してリアルタイムにクエリを投げてデータを表示することができ、
表示する期間の長さや時間帯を変えたり、パーツ毎に特定のノードだけのデータを表示したりインタラクティブに可視化を操作することができます

Grafana は複数のデータベースに対応しており現時点では以下に対応しています
- Graphite
- Prometheus
- Elasticsearch
- InfluxDB
- OpenTSDB
- MySQL
- AWS Cloudwatch

kibana は elasticsearch のみ対応しています
UI の機能は kibana の方が高機能な気がしますが、Grafana でもプラグインで様々な機能・UIが公開されていますし自分で開発することもできます
https://grafana.com/plugins

ただ、リソース監視やアプリケーションのスタッツ監視という観点で考えれば、そこまでリッチな可視化は必要ない場合がほとんどだと思うので、どちらを使っても大きな違いはないはずです

Prometheus で取得したデータをカッコよく可視化するためにも Grafana を使うことができます

Grafana インストール

公式ドキュメント に沿ってインストールしてもらえばOKですが、Docker を利用するのが一番簡単です

データの保存を考えずにとりあえず動かすならこれだけ!

DockerでGrafanaを起動
$ docker run -d -p 3000:3000 grafana/grafana

Grafana で可視化する

Dashboard というのを作成し Dashboard ごとに可視化パーツを設定していくことになります

可視化の手順は基本的に以下だけです
1. Dashboard を作成
1. UIパーツを追加
1. データ取得のクエリをセット

クエリを考えるのに多少頭を使う必要があるくらいで、あとはサクサク試しながら追加していくことができます
一度セットアップした Dashboard は保存できますし、設定を Json 形式で export できるのでコードとしてバックアップを取っておくことも可能です

利用できる UIパーツ

デフォルトでは以下のパーツが用意されています
Graph と Singlestat があればとりあえず困ることはないでしょう
UI.png

Heatmap ってやつがなかなかイケてる見た目をしています
heatmap.png

Grafana のプラグインでいろいろな UI パーツが公開されているので、
込み入った表示がしたければそういうものを利用するのもありです

github のコミットの履歴のグラフみたいなプラグインとかもありました
https://github.com/NeoCat/grafana-cal-heatmap-panel
commit.png

クエリの設定 (Prometheus の場合)

利用するバックエンドによってクエリの詳細は違いますが、Prometheus を利用した場合の例を少しだけ

10分で理解する Prometheus で紹介した node_exporter を利用するとマシンのCPU、メモリ、ディスクなどのリソース情報を取得できます

空きメモリを取得するには以下をセットします

空きメモリ取得
node_memory_MemAvailable

各マシンの CPU 使用率は以下のクエリで取得できます

CPU使用状況
100 - (avg by (instance) (irate(node_cpu{mode="idle"}[5m])) * 100)

ぶっちゃけクエリの意味はあんまりわかっていません
クエリの意味の解説はコチラへ!
https://www.robustperception.io/understanding-machine-cpu-usage/

これが Grafana で作ったダッシュボードだ!

色々と設定をするとこんな感じのダッシュボードが出来上がります
Prometheus で用意されているデフォルトのダッシュボードと比べると雲泥の差ですね

grafana_s.png

以上、快適なダッシュボードライフを!

scouty
「あらゆる事象を必然化し、 世の中のミスマッチをなくす」ことをミッションとし、AIヘッドハンティングサービスを開発・運営するスタートアップ
https://lapras.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away