Grafanaでイケてるグラフを作る!
環境構築第3弾ということで、今回はGrafanaを構築していきます。
Prometheusでもグラフは見られるんですけど、お世辞にも見やすいとは言えません。
そこでGrafanaと呼ばれるログデータの可視化ツールを使ってPrometheusから取得したメトリクスを可視化していきます。
Grafana
Grafanaってそもそも何ぞ?という方はこちらの記事をご参考ください。
とりあえずデータソースからクエリを通じて値を取得して可視化するツールという認識くらいでいいと思います。(マニュアルより先に動かしてみるタイプの人間)
バイナリの取得
[root@centos8-prometheus:/usr/local/src/grafana]# wget https://dl.grafana.com/oss/release/grafana-6.7.2.linux-amd64.tar.gz -- 解凍して適当に整形して [root@centos8-prometheus:/usr/local/src/grafana]# ll 合計 63580 -rw-r--r--. 1 root root 11343 4月 2 17:48 LICENSE -rw-r--r--. 1 root root 108 4月 2 17:48 NOTICE.md -rw-r--r--. 1 root root 2799 4月 2 17:48 README.md -rw-r--r--. 1 root root 5 4月 2 17:49 VERSION drwxr-xr-x. 2 root root 96 4月 2 17:49 bin drwxr-xr-x. 3 root root 107 4月 2 17:49 conf drwxr-xr-x. 5 root root 61 4月 19 16:18 data -rw-r--r--. 1 root root 65075053 4月 2 18:11 grafana-6.7.2.linux-amd64.tar.gz drwxr-xr-x. 14 root root 188 4月 2 17:49 public drwxr-xr-x. 2 root root 4096 4月 2 17:49 scripts drwxr-xr-x. 3 root root 23 4月 2 17:49 tools
Unitファイルの作成
この辺りは割とてきとーです。
[root@centos8-prometheus:/usr/local/src/grafana]# cat /etc/systemd/system/grafana.service [Unit] Description=Grafana After=network-online.target [Service] Type=simple ExecStart=/usr/local/src/grafana/bin/grafana-server -homepath=/usr/local/src/grafana -config=/usr/local/src/grafana/conf/defaults.ini Restart=on failure [Install] WantedBy=multi-user.target
Grafanaの起動とログイン
[root@centos8-prometheus:/usr/local/src/grafana]# systemctl start grafana [root@centos8-prometheus:/usr/local/src/grafana]# systemctl status grafana ● grafana.service - Grafana Loaded: loaded (/etc/systemd/system/grafana.service; disabled; vendor preset: disabled) Active: active (running) since Sun 2020-04-19 16:27:12 JST; 2s ago Main PID: 6427 (grafana-server) Tasks: 7 (limit: 5030) Memory: 18.2M CGroup: /system.slice/grafana.service └─6427 /usr/local/src/grafana/bin/grafana-server -homepath=/usr/local/src/grafana -config=/usr/local/src/grafana/conf/defaults.ini
起動できました。
ブラウザからGrafanaにアクセスできるか確認してみます。 デフォルトポートは3000です。
青を基調としたイケてる画面ですね!
ログインにはdefaults.ini
に記載されているadmin_user
とadmin_password
が必要です。デフォルトはどちらもadmin
です。
データソースの追加
ログイン出来たら今度はデータソースを追加する必要があります。
トップ画面の[Add data source]から[Prometheus]を選択します。
ちなみに最近MySQLをデータソースとして使えることを知りました。(古のバージョンにはなかった気がします) これもいつか試してみたいですね!
[HTTP]
URLにはデータソース(今はPrometheus)のURLを入れます。 AccessはServerでいいと思います。
[Auth]
Basicに設定してGrafanaにログインするためのユーザー名とパスワードを設定します。
最後にこの画像からでは分かりませんが、一番下のSave & Testを押して、[Data source is working]と表示されれば準備完了です。
Dashboardの追加
データを取得出来たらいよいよダッシュボードを作っていきます。
ホーム画面から[Build a dshboard]→[Add Query]を選択します。
あとはQueriesからグラフを描画するときに利用するクエリ(このクエリはPromQLと呼ばれます)の追加・編集、Visualizationからグラフの見た目、Generalからグラフのタイトルなど詳細を決めていくことができます。
PromQL
Grafanaでグラフを作成するときに苦労するのは、どのようなクエリで、そしてどのようなメトリクスを取得するか、ということではないでしょうか。
このあたりは僕も現在進行形で非常に苦労しています…
どのメトリクスがどのような意味を持つのかはGrafanaから少し確認できます。(grafana version 6.7.2, node_exporter version 0.18.1で確認)
exporterによっては表示されないこともあるかもしれません。 その場合は対象exporterのGitHubから確認したほうがいいでしょう。
MySQLとかであれば大抵SHOW GLOBAL VARIABLES
, SHOW GLOBAL STATUS
からの結果ですのでMySQLの公式リファレンスを参照することをお勧めします。
最後に
そんなわけで今回はGrafanaを構築してデータを可視化してみました。
ぜひぜひ自分専用のイケてるダッシュボードを作りましょう~