はじめに
Prometheusで使われるexporterの中から、Node exporterについてざっくりまとめていきます。
Node Exporterとは
Node exporterは、exporterの1つで、UnixシステムのCPU、メモリ、ディスクスペース、ディスクI/O、ネットワークなどのメトリクスを開示するexporterです。
GitHub - prometheus/node_exporter: Exporter for machine metrics
Exporter for machine metrics. Contribute to prometheus/node_exporter development by creating an account on GitHub.
ローカルで動かす
Docker Composeを使って、ローカルでPrometheusとNode exporterを試したい場合は下記を参考にしてください。

【監視入門】とりあえず使ってみるPrometheus
はじめに 本記事では、Promethesについてざっくり解説して、実際に簡単な監視をしてみたいと
用意するファイルはprometheus.ymlとdocker-compose.ymlになります。
それぞれのファイルの内容は下記の通りです。
1global:
2 scrape_interval: 15s # デフォルトの監視対象にpullする間隔
3 external_labels: # 外部と通信するときのラベル
4 monitor: 'codelab-monitor'
5scrape_configs: # 監視対象ごとの設定
6 - job_name: 'prometheus' # Prometheus自身の監視
7 scrape_interval: 5s # デフォルトの間隔を上書き
8 static_configs:
9 - targets: ['localhost:9090']
10 - job_name: 'node-exporter'
11 static_configs:
12 - targets: ['<PCのIPアドレス>:9100']1version: '3'
2services:
3 prometheus:
4 image: prom/prometheus
5 volumes:
6 - ./prometheus.yml:/etc/prometheus/prometheus.yml
7 ports:
8 - '9090:9090'
9 node-exporter:
10 image: quay.io/prometheus/node-exporter
11 ports:
12 - 9100:9100
13 volumes:
14 - ./proc:/host/proc
15 - ./sys:/host/sys
16 - ./rootfs:/rootfshttp://localhost:9100/metricsにアクセスすると、Node exporterのメトリクス一覧を確認することができます。

主要なメトリクス
主要なメトリクスを確認してみます。
全てのメトリクスを確認する場合は、/metricsからNode exporterにアクセスすることで全てのメトリクスを確認できます。
cpu
cpuコレクタには、それぞれのCPUが各モードでどれくらい使われているかなどのメトリクスがあります。
主なメトリクスは下記の通りです。
node_cpu_guest_seconds_totalnode_cpu_seconds_total
下記では、各CPUのアイドル時間の平均を確認できます。
1rate(node_cpu_seconds_total{mode="idle"}[1m])
下記では、マシンが各モードで使っている時間を確認できます。
1avg without(cpu)(rate(node_cpu_seconds_total[1m]))
filesystem
filesystemコレクタには、ディスク容量などのファイルシステムに関するメトリクスがあります。
主なメトリクスは下記の通りです。
node_filesystem_avail_bytesnode_filesystem_device_errornode_filesystem_filesnode_filesystem_files_freenode_filesystem_readonlynode_filesystem_size_bytes
下記では、使用済みのディスク容量を確認できます。
1node_filesystem_avail_bytes/node_filesystem_size_bytes
diskstats
diskstatsコレクタには、ディスクI/Oに関するメトリクスがあります。
主なメトリクスは下記の通りです。
node_disk_discard_time_seconds_totalnode_disk_discarded_sectors_totalnode_disk_discards_completed_totalnode_disk_discards_merged_totalnode_disk_flush_requests_time_seconds_totalnode_disk_flush_requests_totalnode_disk_infonode_disk_io_nownode_disk_io_time_seconds_totalnode_disk_io_time_weighted_seconds_totalnode_disk_read_bytes_totalnode_disk_read_time_seconds_totalnode_disk_reads_completed_totalnode_disk_reads_merged_totalnode_disk_write_time_seconds_totalnode_disk_writes_completed_totalnode_disk_writes_merged_totalnode_disk_written_bytes_total
下記では、読み出しI/Oの平均時間を確認できます。
1rate(node_disk_read_time_seconds_total[1m])/rate(node_disk_reads_completed_total[1m])
netdev
netdevコレクタには、ネットワークに関するメトリクスがあります。
主なメトリクスは下記の通りです。
node_network_address_assign_typenode_network_carriernode_network_carrier_changes_totalnode_network_carrier_down_changes_totalnode_network_carrier_up_changes_totalnode_network_device_idnode_network_dormantnode_network_flagsnode_network_iface_idnode_network_iface_linknode_network_iface_link_modenode_network_infonode_network_mtu_bytesnode_network_name_assign_typenode_network_net_dev_groupnode_network_protocol_typenode_network_receive_bytes_totalnode_network_receive_compressed_totalnode_network_receive_drop_totalnode_network_receive_errs_totalnode_network_receive_fifo_totalnode_network_receive_frame_totalnode_network_receive_multicast_totalnode_network_receive_packets_totalnode_network_speed_bytesnode_network_transmit_bytes_totalnode_network_transmit_carrier_totalnode_network_transmit_colls_totalnode_network_transmit_compressed_totalnode_network_transmit_drop_totalnode_network_transmit_errs_totalnode_network_transmit_fifo_totalnode_network_transmit_packets_totalnode_network_transmit_queue_lengthnode_network_up
下記では、受信した平均のバイト数を確認できます。
1rate(node_network_receive_bytes_total[1m])
meminfo
meminfoコレクタには、メモリに関するメトリクスがあります。
主なメトリクスは下記の通りです。
node_memory_Active_anon_bytesnode_memory_Active_bytesnode_memory_Active_file_bytesnode_memory_AnonHugePages_bytesnode_memory_AnonPages_bytesnode_memory_Bounce_bytesnode_memory_Buffers_bytesnode_memory_Cached_bytesnode_memory_CommitLimit_bytesnode_memory_Committed_AS_bytesnode_memory_DirectMap1G_bytesnode_memory_DirectMap2M_bytesnode_memory_DirectMap4k_bytesnode_memory_Dirty_bytesnode_memory_FileHugePages_bytesnode_memory_FilePmdMapped_bytesnode_memory_HugePages_Freenode_memory_HugePages_Rsvdnode_memory_HugePages_Surpnode_memory_HugePages_Totalnode_memory_Hugepagesize_bytesnode_memory_Hugetlb_bytesnode_memory_Inactive_anon_bytesnode_memory_Inactive_bytesnode_memory_Inactive_file_bytesnode_memory_KReclaimable_bytesnode_memory_KernelStack_bytesnode_memory_Mapped_bytesnode_memory_MemAvailable_bytesnode_memory_MemFree_bytesnode_memory_MemTotal_bytesnode_memory_Mlocked_bytesnode_memory_NFS_Unstable_bytesnode_memory_PageTables_bytesnode_memory_Percpu_bytesnode_memory_SReclaimable_bytesnode_memory_SUnreclaim_bytesnode_memory_ShmemHugePages_bytesnode_memory_ShmemPmdMapped_bytesnode_memory_Shmem_bytesnode_memory_Slab_bytesnode_memory_SwapCached_bytesnode_memory_SwapFree_bytesnode_memory_SwapTotal_bytesnode_memory_Unevictable_bytesnode_memory_VmallocChunk_bytesnode_memory_VmallocTotal_bytesnode_memory_VmallocUsed_bytesnode_memory_WritebackTmp_bytesnode_memory_Writeback_bytes
下記では、利用可能なメモリの容量を確認できます。
1node_memory_MemAvailable_bytes
loadavg
loadavgコレクタには、ロードアベレージのメトリクスがあります。
ロードアベレージは負荷を表す指標の1つです。
主なメトリクスは下記の通りです。
node_load1node_load15node_load5
下記では、1分間のロードアベレージを確認できます。
1node_load1
参考
- prometheus/node_exporter: Exporter for machine metrics
- Monitoring Linux host metrics with the Node Exporter | Prometheus
- ロードアベレージとは - 意味をわかりやすく - IT用語辞典 e-Words





