LinuxリモートホストへのNode-Exporter導入
ローカルネットワーク上にいる、同じAlpine Linuxベースの2機の広告ブロックDNS仮想マシンに、同じ要領でNode-Exporterをインストールしました。
さらに、Oracle Cloud上でNextCloudを運用しているUbuntu 20.04インスタンスや、Debian 11ベースのPiAwareが動く初代Raspberry Piへも展開します。
いずれも各々のパッケージマネージャで、 prometheus-node-exporter をインストールするだけ。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
ubuntu@ubnxc:~$ uname -a Linux ubnxc 5.15.0-1055-oracle #61~20.04.1-Ubuntu SMP Tue Mar 26 09:23:06 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux ubuntu@ubnxc:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 ubuntu@ubnxc:~$ sudo apt install prometheus-node-exporter The following additional packages will be installed: libio-pty-perl libipc-run-perl libtime-duration-perl libtimedate-perl moreutils prometheus-node-exporter-collectors smartmontools Suggested packages: gsmartcontrol smart-notifier mailx | mailutils The following NEW packages will be installed: libio-pty-perl libipc-run-perl libtime-duration-perl libtimedate-perl moreutils prometheus-node-exporter prometheus-node-exporter-collectors smartmontools ubuntu@ubnxc:~$ systemctl status prometheus-node-exporter ● prometheus-node-exporter.service - Prometheus exporter for machine metrics Loaded: loaded (/lib/systemd/system/prometheus-node-exporter.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2024-04-22 09:07:21 HKT; 1min 15s ago Docs: https://github.com/prometheus/node_exporter Main PID: 1430993 (prometheus-node) Tasks: 5 (limit: 6961) Memory: 1.5M CGroup: /system.slice/prometheus-node-exporter.service └─1430993 /usr/bin/prometheus-node-exporter |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
pi@piaware2:~ $ uname -a Linux piaware2 5.15.84+ #1613 Thu Jan 5 11:58:09 GMT 2023 armv6l GNU/Linux pi@piaware2:~ $ lsb_release -a No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye pi@piaware2:~ $ sudo apt install prometheus-node-exporter The following additional packages will be installed: libio-pty-perl libipc-run-perl libtime-duration-perl libtimedate-perl moreutils prometheus-node-exporter-collectors smartmontools Suggested packages: gsmartcontrol smart-notifier mailx | mailutils The following NEW packages will be installed: libio-pty-perl libipc-run-perl libtime-duration-perl libtimedate-perl moreutils prometheus-node-exporter prometheus-node-exporter-collectors smartmontools pi@piaware2:~ $ systemctl status prometheus-node-exporter ● prometheus-node-exporter.service - Prometheus exporter for machine metrics Loaded: loaded (/lib/systemd/system/prometheus-node-exporter.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2024-04-23 08:17:21 HKT; 3 days ago Docs: https://github.com/prometheus/node_exporter Main PID: 200 (prometheus-node) Tasks: 9 (limit: 876) CPU: 6h 10min 47.057s CGroup: /system.slice/prometheus-node-exporter.service └─200 /usr/bin/prometheus-node-exporter |
続いてPrometheus側で、設定ファイルの targets 欄にリモートホストを連結します。
|
1 2 3 |
- job_name: 'node' static_configs: - targets: ['localhost:9100', 'resolv11.lan:9100', 'resolv9.lan:9100', 'ubnxc.tail#####.ts.net:9100', 'piaware2.lan:9100'] |
サービスを再起動して設定を反映させたら、PrometheusのWeb UI上の Status → Targets ページにターゲットが増えているのを確認。
Grafanaでは、複数ノードを1枚のダッシュボードで俯瞰的に監視したくて、こちらのダッシュボードをインポートしてみました。
下段のResource Detailsが一つ分しかないのでまず、ダッシュボードの上方で全てのInstanceを選択、
すると、Resource Detailsの設定でnodeでリピートするようにすると、インスタンスの数だけ生成されます。ただ、タイトルに利用している変数が相応しくないので、$nodeへ書き換えました。
最後に、ダッシュボードの保存では、現在の変数値をデフォルトで保持するオプションにチェックを入れておくと便利。

図20.ダッシュボードの保存オプション
気になるシステムサイズ
コンパクトさがウリのAlpine Linuxをベースに始めた監視環境は、grafanaを入れた辺りでrootfsの使用量は爆増、prometheusのメトリクスデータ含め、1.1GBにまで肥大しました。
|
1 2 3 4 5 6 7 8 9 |
rootfs 100MB OSセットアップ直後 330MB prometheusインストール後 740MB grafanaインストール後 ← grafana大きい! 745MB nginxインストール後 1.1GB 1週間運用時点 ← data容量265MB prom14:~$ du -sh /var/lib/prometheus/data/ 265.6M /var/lib/prometheus/data/ |
構築はまだまだ続きますが、長くなってしまったので今回はここまで。次回は、既にNode-Exporterを入れたPi-holeサーバに、Pi-hole Exporterを追加導入します。










