Node Exporterを用いたLinuxホストのメトリクス監視 - Prometheusドキュメント

このページはPrometheus公式ドキュメント和訳+αの一部です。

Node Exporterは、ハードウェアとカーネル関係の幅広いメトリクスをexposeする。

このガイドでは、

  • ローカルホストでNode Exporterを起動する
  • そのNode Exporterからメトリクスをscrapeするように設定したPrometheusインスタンスをローカルホストで起動する

注意: Node Exporterが*nixのためにあるのに対して、Windowsに対してWMI exporterが同じような目的で使われる

Node Exporterのインストールと実行

Node Exporterは、tarballからインストールできる単一のスタティックなバイナリである。 Prometheusのダウンロードページからtarballをダウンロード、展開し、実行する。

wget https://github.com/prometheus/node_exporter/releases/download/v*/node_exporter-*.*-amd64.tar.gz
tar xvfz node_exporter-*.*-amd64.tar.gz
cd node_exporter-*.*-amd64
./node_exporter

以下のように、Node Exporterが動いていて9100ポートでメトリクスをexposeしていることを示す出力が見られるはずである。

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がインストール、実行されると、curlでエンドポイント/metricsにアクセスすることで、メトリクスがexposeされていることを確認できる。

curl http://localhost: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.

これでPrometheusがscrapeできるメトリクスをNode Exporterがexposeしており、出力のかなり下の方にnode_で始まるシステムの様々なメトリクスが含まれている。 これらのシステムメトリクスを(ヘルプおよび型情報と共に)見るためには以下のコマンドを実行する

curl http://localhost:9100/metrics | grep "node_"

Prometheusの設定

Node Exporterのメトリクスにアクセスするために、ローカルで実行しているPrometheusインスタンスが適切に設定されている必要がある。 設定ファイルprometheus.ymlにある以下のscrape_configは、localhost:9100を通してNode Exporterからメトリクスを取得するように指定している。

scrape_configs:
- job_name: 'node'
  static_configs:
  - targets: ['localhost:9100']

Prometheusをインストールするには、自分のプラットフォームの最新リリースをダウンロードし、tarを展開する。

wget https://github.com/prometheus/prometheus/releases/download/v*/prometheus-*.*-amd64.tar.gz
tar xvf prometheus-*.*-amd64.tar.gz
cd prometheus-*.*

インストールが終わったら、上で作成した設定ファイルを--config.fileフラグで指定することでPrometheusを起動することが出来る。

./prometheus --config.file=./prometheus.yml

expression browserによるNode Exporterメトリクスの調査

これでPrometheusがNode Exporterインスタンスからメトリクスを取得しているので、Prometheus UI(expression browser)を使ってそれらのメトリクスを調べることが出来る。 ブラウザでlocalhost:9090/graphを開いて、ページ上部のmain expression barを使って、expressionを入力する。 expression barは、このように見える。

prometheus-expression-bar

Node Exporter特有のメトリクスは、node_cpu_seconds_totalnode_exporter_build_infoのようにnode_というプリフィックスが付いている。

下記のリンクをクリックすると、いくつかのメトリクスの例を見ることが出来る。

node exporterについてさらに丁寧な解説はこちらを参照

参考リンク

おすすめ書籍

入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリング

入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリング

入門 監視 ―モダンなモニタリングのためのデザインパターン

入門 監視 ―モダンなモニタリングのためのデザインパターン

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム

和訳活動の支援

Prometheusドキュメント和訳が役に立った方は、以下QRコードからPayPayで活動を支援して頂けるとありがたいです。

PayPayによる支援用QRコード
上のQRコードからPayPayによる支援