お金をかけずにサーバーの勉強をしよう

Grafanaでカッコイイグラフを作る

2022年6月23日

メニューへ戻る

Prometheusインストール」にて、Prometheusのデータベースにサーバー負荷情報を格納する環境ができましたので、これを Grafanaで実運用に耐える形でグラフ化してみましょう。

本家サイトはこちら

Grafana Labs

Grafanaは様々なデータソースからデータを引っ張ってきて、ダッシュボード上に綺麗なグラフやその他で表示をしてくれるWEBベースのサーバープログラムです。
アカウント体系も持っていて、ユーザー毎に個々のダッシュボードを作って、ネットワーク上からそれを他のユーザーに閲覧させたりすることができます。

それでは早速インストールしてみましょう。
環境は Ubuntu Server 22.04です。

ダウンロードとインストールの仕方はこちら。
このリンク先で、Linux の OSSのエディションが対象になっています。
2022年6月22日は丁度 9.0.1がリリースされた日のようです。
Download Grafana

※ Enterprise Editionは有償です。


手順の最初に「libfontconfig1」というパッケージのインストールがあるので、これをやっておきます。

subro@UbuntuServer2204:~$ sudo apt-get install -y adduser libfontconfig1
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
adduser はすでに最新バージョン (3.118ubuntu5) です。
adduser は手動でインストールしたと設定されました。
libfontconfig1 はすでに最新バージョン (2.13.1-4.2ubuntu5) です。
libfontconfig1 は手動でインストールしたと設定されました。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

私の Ubuntu Server 22.04ではこのパッケージを既に入れてしまっていたのでこうなりましたが、このコマンド実行でインストールできるはずです。

手順に従ってパッケージファイルのダウンロードをします。

subro@UbuntuServer2204:~$ wget https://dl.grafana.com/oss/release/grafana_9.0.1_amd64.deb
--2022-06-22 15:08:26--  https://dl.grafana.com/oss/release/grafana_9.0.1_amd64.deb
dl.grafana.com (dl.grafana.com) をDNSに問いあわせています... 2a04:4e42:87::729, 151.101.54.217
dl.grafana.com (dl.grafana.com)|2a04:4e42:87::729|:443 に接続しています... 失敗しました: 接続を拒否されました.
dl.grafana.com (dl.grafana.com)|151.101.54.217|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 80002082 (76M) [application/vnd.debian.binary-package]
‘grafana_9.0.1_amd64.deb’ に保存中

grafana_9.0.1_amd64.deb                          100%[==========================================================================================================>]  76.30M  9.07MB/s    in 9.2s

2022-06-22 15:08:36 (8.28 MB/s) - ‘grafana_9.0.1_amd64.deb’ へ保存完了 [80002082/80002082]

ダウンロードできました。

手順に従ってインストールします。

subro@UbuntuServer2204:~$ sudo dpkg -i grafana_9.0.1_amd64.deb
以前に未選択のパッケージ grafana を選択しています。
(データベースを読み込んでいます ... 現在 122420 個のファイルとディレクトリがインストールされています。)
grafana_9.0.1_amd64.deb を展開する準備をしています ...
grafana (9.0.1) を展開しています...
grafana (9.0.1) を設定しています ...
### NOT starting on installation, please execute the following statements to configure grafana to start automatically using systemd
 sudo /bin/systemctl daemon-reload
 sudo /bin/systemctl enable grafana-server
### You can start grafana-server by executing
 sudo /bin/systemctl start grafana-server

インストールできました。

インストール時のメッセージにまだ起動していない旨が書いてあります。
どうせ再起動後も自動実行させたいのですし、systemctlによる自動起動の設定をしてから、OSを再起動してしまいます。

subro@UbuntuServer2204:~$ sudo /bin/systemctl enable grafana-server
Synchronizing state of grafana-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable grafana-server
Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /lib/systemd/system/grafana-server.service.

subro@UbuntuServer2204:~$ sudo reboot

再起動したら Grafanaのサーバーが動いて 3000/tcpで待ち受けているので、WEBブラウザで以下にアクセスしてみます。

http://192.168.1.150:3000

※ 192.168.1.150は Subro家の Ubuntu Server 22.04のIPです。


こんな画面になりました。
初期ユーザーは「admin」パスワードも「admin」でLog inを押します。
Grafana ログイン画面

[admin]ユーザーのパスワードを設定します。Submitを押します。
Grafana パスワード設定画面

これが Grafanaの初期画面です。
WEBフロントの技術が駆使された今風のカッコイイデザインですね。
Grafana 初期画面


ここからは環境構築ではなく、Grafanaの使い方になります。

このサイトでの趣旨ではないので Prometheusとの連携程度にしますが、ここで触れるものはほんの一部で、Grafanaはかなりの高機能なツールだと捉えて問題ないかと思います。

実運用を想定して、一般ユーザーを作ります。

画面左下の[盾(?)マーク]のアイコンをクリックするとメニューが出ますので、[Users]を選択します。
Grafana ユーザー作成 1

New userを押します。
Grafana ユーザー作成 2

一通り入力し、Create userを押します。
Grafana ユーザー作成 3

subroユーザーができました。
subroユーザーの行をダブルクリックします。
Grafana ユーザー作成 4

[Organizations]にある[change role]をクリックします。
Grafana ユーザー作成 5

選択肢が出てきますので[Editor]を選択し、Saveを押します。
Grafana ユーザー作成 6

subroユーザーの作成ができました。
次に、Prometheusと連携できるようにします。

画面左下の[歯車マーク]のアイコンをクリックするとメニューが出ますので、[Data Sources]を選択します。
Grafana データソース登録 1

Add data sourceを押します。
Grafana データソース登録 2

[prometheus]をクリックします。
Grafana データソース登録 3

[HTTP]の[URL]に、PromehteusのURLを入力します。
Subro家では、このGrafanaが動いている Ubuntu Server 22.04で Prometheusを動かしていますので、「http://localhost:9090」としました。
他はそのままでSave & Testを押します。
Grafana データソース登録 4

上手く連携できると、テストが成功した旨のダイアログが出ます。

これで環境的なセッティングは完了なので、ログアウトします。


subroユーザーでログインし直します。

画面左上にある[田(?)マーク]をクリックするとメニューが出ますので、[+ New dashboard]を選択します。
Grafana ダッシュボード作成 1

Add a new panelを押します。
Grafana ダッシュボード作成 2

[Data Source]を[Prometheus]にします。
Grafana ダッシュボード作成 3

[Metric]の選択肢からグラフにしたいものを選択します。
ここでは Windows Server 2022の CPU負荷のグラフを作ります。
[windows_cpu_processor_performance]を選択しました。
Grafana ダッシュボード作成 4

こんな感じになりました。
Grafana ダッシュボード作成 5

画面右の[Panel Options]でグラフのタイトルなど付けます。
Grafana ダッシュボード作成 6

画面右上のSaveを押します。
Grafana ダッシュボード作成 7

画面右からこれがせり出してきます。
[Dashboard name]は任意でOKです。Saveを押します。
Grafana ダッシュボード作成 8

ダッシュボードができました。
WEBブラウザのウィンドウサイズを変えてもこのレイアウトが崩れません。
そういうデザインで作った事になりますね。
負荷の値の方は見たかったものとは別なもののようでしたが… Grafana ダッシュボード作成 9


以上で Grafanaの使い方を終了します。

今回は Prometheusからのデータ取得の例となっていますが、データソースは色々なものがあります。
ただし美味しいデータソースは Enterprise Editionではないと使えなかった覚えがあります。

ダッシュボードの機能だけではなく、特定のデータを見ての通知機能もありますので、段々と監視システムの中核としての役割を持つことができるようになってきているように見えます。

まだ何も監視システムを導入していない環境であれば、無償でここまではできますから試してみるのも宜しいかと思います。