Node ExporterでLinuxホストのメトリクスを監視する
Prometheus Node Exporterは、ハードウェアおよびカーネル関連の様々なメトリクスを公開します。
このガイドでは、以下のことを行います。
localhost
でNode Exporterを起動する- 実行中のNode Exporterからメトリクスをスクレイプするように設定されたPrometheusインスタンスを
localhost
で起動する
注Prometheus Node Exporterは*nixシステム用ですが、Windowsには同様の目的を果たすWindows exporterがあります。
Node Exporterのインストールと実行
Prometheus Node Exporterは単一の静的バイナリで、tarball経由でインストールできます。Prometheusのダウンロードページからダウンロードしたら、展開して実行します。
# NOTE: Replace the URL with one from the above mentioned "downloads" page.
# <VERSION>, <OS>, and <ARCH> are placeholders.
wget https://github.com/prometheus/node_exporter/releases/download/v<VERSION>/node_exporter-<VERSION>.<OS>-<ARCH>.tar.gz
tar xvfz node_exporter-*.*-amd64.tar.gz
cd node_exporter-*.*-amd64
./node_exporter
Node Exporterが実行中でポート9100でメトリクスを公開していることを示す、次のような出力が表示されるはずです。
INFO[0000] Starting node_exporter (version=0.16.0, branch=HEAD, revision=d42bd70f4363dced6b77d8fc311ea57b63387e4f) source="node_exporter.go:82"
INFO[0000] Build context (go=go1.9.6, user=root@a67a9bc13a69, date=20180515-15:53:28) source="node_exporter.go:83"
INFO[0000] Enabled collectors: source="node_exporter.go:90"
INFO[0000] - boottime source="node_exporter.go:97"
...
INFO[0000] Listening on :9100 source="node_exporter.go:111"
Node Exporterのメトリクス
Node Exporterがインストールされ実行されたら、/metrics
エンドポイントをcURLすることでメトリクスがエクスポートされていることを確認できます。
curl https://:9100/metrics
次のような出力が表示されるはずです。
# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 3.8996e-05
go_gc_duration_seconds{quantile="0.25"} 4.5926e-05
go_gc_duration_seconds{quantile="0.5"} 5.846e-05
# etc.
成功しました!Node Exporterは現在、Prometheusがスクレイプできるメトリクスを公開しています。これには、出力の下の方にある様々なシステムメトリクス(node_
で始まる)も含まれます。これらのメトリクス(ヘルプとタイプ情報を含む)を表示するには
curl https://:9100/metrics | grep "node_"
Prometheusインスタンスの設定
ローカルで実行しているPrometheusインスタンスは、Node Exporterのメトリクスにアクセスできるように適切に設定する必要があります。以下のprometheus.yml
設定ファイルの例は、Prometheusインスタンスがlocalhost:9100
からNode Exporterのメトリクスをスクレイプする頻度を指示します。
global:
scrape_interval: 15s
scrape_configs:
- job_name: node
static_configs:
- targets: ['localhost:9100']
Prometheusをインストールするには、お使いのプラットフォームの最新リリースをダウンロードして展開します。
wget https://github.com/prometheus/prometheus/releases/download/v*/prometheus-*.*-amd64.tar.gz
tar xvf prometheus-*.*-amd64.tar.gz
cd prometheus-*.*
Prometheusがインストールされたら、上記で作成したPrometheus設定ファイルを指すように--config.file
フラグを使用して起動できます。
./prometheus --config.file=./prometheus.yml
Prometheus式ブラウザによるNode Exporterメトリクスの探索
Prometheusが実行中のNode Exporterインスタンスからメトリクスをスクレイプしているので、Prometheus UI (別名式ブラウザ) を使用してこれらのメトリクスを探索できます。ブラウザでlocalhost:9090/graph
にアクセスし、ページ上部のメインの式バーに式を入力します。式バーは次のようになります。
Node Exporterに固有のメトリクスはnode_
で始まり、node_cpu_seconds_total
やnode_exporter_build_info
などのメトリクスが含まれます。
以下のリンクをクリックして、いくつかのメトリクス例をご覧ください。
メトリクス | 意味 |
---|---|
rate(node_cpu_seconds_total{mode="system"}[1m]) | 過去1分間のシステムモードで費やされたCPU時間の平均(1秒あたり、秒単位) |
node_filesystem_avail_bytes | 非ルートユーザーが利用可能なファイルシステム領域(バイト単位) |
rate(node_network_receive_bytes_total[1m]) | 過去1分間に受信したネットワークトラフィックの平均(1秒あたり、バイト単位) |