paloma blog

NWエンジニアやってます。主に自宅環境のお遊びを書きます。Pythonもちょっと。タイトルは好きなカクテルから。

Homelabにモニタリングサーバ導入3 prometheusで取った情報をGrafanaで見る

prometheusでリソース取れるようになったのでGrafanaでいい感じに可視化してみます。

リポジトリからもインストールできるようなのですが、ここを参考にパッケージをインストールしました。
(最初に発見したのがここだったので)

grafana.com

cloud利用などもできるようですが初めてなのでローカル環境へインストールします。

前提パッケージインストール

サイトに倣ってインストールします。
まずは前提となる依存パッケージのインストール。

masashi@lab-monitor1:~$ sudo apt-get install -y adduser libfontconfig1
...
adduser is already the newest version (3.118ubuntu5).
adduser set to manually installed.
libfontconfig1 is already the newest version (2.13.1-4.2ubuntu5).
libfontconfig1 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 16 not upgraded.

Ubuntuサーバの標準インストールだと最初から入ってるみたい。

パッケージインストール

本体のパッケージをダウンロード。

masashi@lab-monitor1:~$ wget https://dl.grafana.com/oss/release/grafana_9.5.2_amd64.deb

そのままdpkgでインストールします。

masashi@lab-monitor1:~$ sudo dpkg -i grafana_9.5.2_amd64.deb
Selecting previously unselected package grafana.
(Reading database ... 129376 files and directories currently installed.)
Preparing to unpack grafana_9.5.2_amd64.deb ...
...
### 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

開始等々のコマンドも出力されました。
スタートしてみます。

masashi@lab-monitor1:~$ sudo /bin/systemctl start grafana-server
masashi@lab-monitor1:~$ ps aux | grep gra
root          15  0.0  0.0      0     0 ?        S    May21   0:03 [migration/0]
root          21  0.0  0.0      0     0 ?        S    May21   0:07 [migration/1]
root         715  0.0  0.3 109748  3868 ?        Ssl  May21   0:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
grafana    38399 45.0 12.3 1402644 122816 ?      Ssl  06:31   0:03 /usr/share/grafana/bin/grafana server --config=/etc/grafana/grafana.ini --pidfile=/run/grafana/grafana-server.pid --packaging=deb cfg:default.paths.logs=/var/log/grafana cfg:default.paths.data=/var/lib/grafana cfg:default.paths.plugins=/var/lib/grafana/plugins cfg:default.paths.provisioning=/etc/grafana/provisioning
masashi    38409  0.0  0.2   6608  2172 pts/1    S+   06:31   0:00 grep --color=auto gra

プロセスも上がりましたね。

masashi@lab-monitor1:~$ ss -lt
State        Recv-Q       Send-Q               Local Address:Port                 Peer Address:Port       Process
LISTEN       0            4096                 127.0.0.53%lo:domain                    0.0.0.0:*
LISTEN       0            128                        0.0.0.0:ssh                       0.0.0.0:*
LISTEN       0            4096                             *:3000                            *:*
LISTEN       0            4096                             *:9116                            *:*
LISTEN       0            4096                             *:9090                            *:*
LISTEN       0            128                           [::]:ssh                          [::]:*

アクセス用にポート調べませんでしたがListenの状態見ると3000番っぽいですね。

アクセス

無事にアクセス完了。画面が見えました。

パスワード登録してログイン

とりあえずデフォルトのadminユーザで入るとパスワード変更を促されます。

変更後、ログイン初期画面はこんな感じ。
(初回のスクショがとれていなかったので後付けの。いくつかcompleteになってます)

セットアップしていきます。
prometheusの監視対象がまだpfSenseしかいないのでまずはこの子用にセットアップします。

Data source

まずは取得対象のデータを選択します。 prometheusのフォーマット的があるのでこちらを選択。
とりあえずURLのみprometheusのものを設定しました。

Dashboard

ここで監視するデータのパネルを作っていきます。

prometheusと同じクエリが使えるので同じようにグラフ化できます。
意外と難しくないね。

最初のダッシュボードでCPU使用率を取得してみました。
グラフの下のペインにクエリを書く欄があります。

ダークな配色なのでprometheusと対照的なのもありかっこいいですね。

同じようにメモリ、In/Outインターフェースの使用率(量)を作成し、並べてみました。

これだけでもなかなかおしゃれに見えます。

桁合わせと判例を消してシンプルにするといい感じ。
職場で見るやつじゃん!

まとめ

Grafana等今どきの可視化ツールを使うのは初めてだったのですが、データ取得の構文はprometheusのものなので思った以上に簡単にデータ連携ができてしまいました。
デザイン等もカスタマイズ項目が多くてもっとオシャレにできそう。
取得データのクエリとか紹介しそびれましたが、コンテナ監視のタスクも残っていますので全部そろった後に改めて整理して紹介したいと思います。

次はDockerホストのデータ取得をしてみます。