Prometheus Pi-hole Exporterを入れたGrafanaからの眺め

公開

普遍的なシステム情報取得することを目的としたNode-Exporterに続き、今回は Pi-hole のメトリクス収集に特化した Pi-hole Exporter を導入し、 Prometheus が読み込んだメトリクスを Grafana のダッシュボードから見えるようにします。

Pi-hole Prometheus Exporterの導入

自宅で広告ブロックDNSとして活躍している、Apline Linuxベースの仮想マシンPi-holeサーバ

前回のPrometheus構築時に、Node-Exporterを既に仕込み済みです。

更に、Pi-hole関連のメトリクス収集のために、こちらのPi-hole Exporterを導入します。

インストール方法は公開されているバイナリはダウンロードするか、go言語の環境を整えた上でソースからビルドするかの2通り。もちろん前者を試すも、Pi-holeを入れているAlpine Linux上ではエラー異常終了。

同じバイナリをUbuntu 22.04で実行すると、go言語環境が無くても動作します。

ちなみに少し古いUbuntu 18.04ではライブラリ関連エラー。

どうも公開されているバイナリが使える環境は、限られているようです。

 

go言語を入れてソースからビルド

Alpine Linuxのパッケージマネージャapkで、go言語をインストールします(レポジトリは既にedgeを向けています)。

ライブラリなんかもごっそり入れられたようで、これだけで300MB程度の消費に。後から思うに、バイナリをビルドするためだけの捨て環境を同じ構成で組んで、生成されたバイナリだけ引き抜けば良かったのかも知れません。

ともあれ、そのまま go install コマンドでPi-hole Exporterをビルド。ビルドと言うより、Pythonのpipのような感覚。

ダウンロードしたバイナリよりも大きめな実行ファイルが生成されました。

取り敢えず、引数なしで実行してみて、使えるバイナリであることを確認。このExporterのポート番号は9617番とのこと。

最後に、root権限で /opt 下へバイナリをコピー。以降、こちらを利用します。

 

Pi-holeのAPIトークンで認証

先ず、Pi-holeのパスワード認証でPi-hole Exporterを実行、集計情報が得られました。

 

次に以前、Pi-holeをHome Assistantと連携させた際に生成したAPIトークンがあるので、このトークンでPi-hole Exporterを認証、メトリクス取得を試みます。Pi-holeの設定ファイル内のトークンを読み出して、引数に連結。

以上で、Pi-hole Exporterの動かし方はわかりました。

 

Pi-hole Exporterのデーモン化

Pi-hole Exporterがシステム起動時に動いてもらうべく、Node-Exporterのinitスクリプトを元に、Pi-hole Exporter用のそれを書いてみました。

デーモンを開始し、ランレベルを設定し終えたら、Pi-hole Exporter側の設定は終わりです。

 

Prometheusの設定

続いて、監視する側のPrometheusの設定へ移ります。

Prometheusの設定ファイル /etc/prometheus/prometheus.yml を開き、前回Node Exporterのターゲットを記述した scrape_configs: 項へ、以下の要領でPi-hole Exporterのジョブを加えます。

Prometheusサービスを再起動して設定を反映させると、

Pi-hole Exporterがターゲット一覧に加わりました。

図1.Prometheus ターゲット一覧にPi-hole

図1.Prometheus ターゲット一覧にPi-hole

Grafanaにダッシュボード追加

Pi-hole向けのGrafanaダッシュボードは、いくつか公開されている中からこちらのダッシュボードを試してみます。

ダッシュボードIDをコピー、Grafanaへインポートしてみると、ドーナツチャートが表示されずに警告が。

図2.プラグイン不足警告

図2.プラグイン不足警告

必要なプラグインを入れれば済む話なのですが、WebUI上ではなくCLIベースで行う必要があるのだそう。

このプラグイン実はdeprecatedなので、このまま利用するとダッシュボード上に警告アイコンが表示されてしまいます。

Grafanaの設定ファイルに以下のオプションを追記してリロードすると、回避することができます。

かくして、Pi-hole Exporterダッシュボードを表示できました。

図3.Pi-hole Exporterダッシュボード(10176)

図3.Pi-hole Exporterダッシュボード(10176)

続いてもう1つ、複数ホストを意識した、Pi-hole UIダッシュボードも入れてみました。いずれは、Pi-holeホストを増やして冗長化するつもりなので、こういうのも良いかも知れません。

図4.Pi-hole UIダッシュボード(14475)

図4.Pi-hole UIダッシュボード(14475)

次回はOpenWrtデバイスへのPrometheus Exporter導入へ進みます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA