Amazon LinuxでPrometheusを動かしてみたで動いたPrometheusを利用して、サーバのメトリクスを収集します。今回はPrometheusが稼働しているAmazon Linuxのメトリクスを収集します。
node_exporterを稼働させる
メトリクスを収集したいサーバでnode_exporterというバイナリを起動します。
yum install git hg gcc golang
git clone https://github.com/prometheus/node_exporter.git
make
./node_exporter &
node_exporterは、Prometheusサーバが読み取れるデータを生成し9100ポートで公開してくれます。
[ec2-user@ip-10-175-10-126 ~]$ wget http://localhost:9100/metrics
[ec2-user@ip-10-175-10-126 ~]$ more 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"} 8.5685e-05
go_gc_duration_seconds{quantile="0.25"} 0.0006615610000000001
go_gc_duration_seconds{quantile="0.5"} 0.00068378
go_gc_duration_seconds{quantile="0.75"} 0.000708493
go_gc_duration_seconds{quantile="1"} 0.017944932
go_gc_duration_seconds_sum 0.155032352
go_gc_duration_seconds_count 205
なお、node_exporterはWindowsをサポートしないようです。(Windows support)
node_exporterと同じように、定期的に自サーバのメトリクスを取得し、ファイルに書き込み、httpで公開できる仕組みを作れば、windowsでもメトリクスを収集できる気がします。
Prometheusにnodeを登録する
Prometheusサーバに、node_exporterが生成するデータを登録します。
[ec2-user@ip-10-175-10-126 ~]$ cat prometheus.conf
(中略)
job: {
name: "node"
scrape_interval: "5s"
target_group: {
target: "http://localhost:9100/metrics"
}
}
Prometheusでメトリクスを確認する
Prometheusサーバを再起動すると、コンソールにNodeが追加され、メトリクスを収集している対象の一覧が表示されます。
対象のノードをクリックすると、CPUとメモリ、ディスクのグラフが描画されています。
Graphタブを利用することで、取得したメトリクスのグラフを描画することが可能です。データの抽出はQUERY LANGUAGEを利用する必要があります。