【Prometheus】Node exporterをざっくり理解
はじめに
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:/rootfs
http://localhost:9100/metrics
にアクセスすると、Node exporterのメトリクス一覧を確認することができます。
主要なメトリクス
主要なメトリクスを確認してみます。
全てのメトリクスを確認する場合は、/metrics
からNode exporterにアクセスすることで全てのメトリクスを確認できます。
cpu
cpuコレクタには、それぞれのCPUが各モードでどれくらい使われているかなどのメトリクスがあります。
主なメトリクスは下記の通りです。
node_cpu_guest_seconds_total
node_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_bytes
node_filesystem_device_error
node_filesystem_files
node_filesystem_files_free
node_filesystem_readonly
node_filesystem_size_bytes
下記では、使用済みのディスク容量を確認できます。
1node_filesystem_avail_bytes/node_filesystem_size_bytes
diskstats
diskstatsコレクタには、ディスクI/Oに関するメトリクスがあります。
主なメトリクスは下記の通りです。
node_disk_discard_time_seconds_total
node_disk_discarded_sectors_total
node_disk_discards_completed_total
node_disk_discards_merged_total
node_disk_flush_requests_time_seconds_total
node_disk_flush_requests_total
node_disk_info
node_disk_io_now
node_disk_io_time_seconds_total
node_disk_io_time_weighted_seconds_total
node_disk_read_bytes_total
node_disk_read_time_seconds_total
node_disk_reads_completed_total
node_disk_reads_merged_total
node_disk_write_time_seconds_total
node_disk_writes_completed_total
node_disk_writes_merged_total
node_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_type
node_network_carrier
node_network_carrier_changes_total
node_network_carrier_down_changes_total
node_network_carrier_up_changes_total
node_network_device_id
node_network_dormant
node_network_flags
node_network_iface_id
node_network_iface_link
node_network_iface_link_mode
node_network_info
node_network_mtu_bytes
node_network_name_assign_type
node_network_net_dev_group
node_network_protocol_type
node_network_receive_bytes_total
node_network_receive_compressed_total
node_network_receive_drop_total
node_network_receive_errs_total
node_network_receive_fifo_total
node_network_receive_frame_total
node_network_receive_multicast_total
node_network_receive_packets_total
node_network_speed_bytes
node_network_transmit_bytes_total
node_network_transmit_carrier_total
node_network_transmit_colls_total
node_network_transmit_compressed_total
node_network_transmit_drop_total
node_network_transmit_errs_total
node_network_transmit_fifo_total
node_network_transmit_packets_total
node_network_transmit_queue_length
node_network_up
下記では、受信した平均のバイト数を確認できます。
1rate(node_network_receive_bytes_total[1m])
![](
meminfo
meminfoコレクタには、メモリに関するメトリクスがあります。
主なメトリクスは下記の通りです。
node_memory_Active_anon_bytes
node_memory_Active_bytes
node_memory_Active_file_bytes
node_memory_AnonHugePages_bytes
node_memory_AnonPages_bytes
node_memory_Bounce_bytes
node_memory_Buffers_bytes
node_memory_Cached_bytes
node_memory_CommitLimit_bytes
node_memory_Committed_AS_bytes
node_memory_DirectMap1G_bytes
node_memory_DirectMap2M_bytes
node_memory_DirectMap4k_bytes
node_memory_Dirty_bytes
node_memory_FileHugePages_bytes
node_memory_FilePmdMapped_bytes
node_memory_HugePages_Free
node_memory_HugePages_Rsvd
node_memory_HugePages_Surp
node_memory_HugePages_Total
node_memory_Hugepagesize_bytes
node_memory_Hugetlb_bytes
node_memory_Inactive_anon_bytes
node_memory_Inactive_bytes
node_memory_Inactive_file_bytes
node_memory_KReclaimable_bytes
node_memory_KernelStack_bytes
node_memory_Mapped_bytes
node_memory_MemAvailable_bytes
node_memory_MemFree_bytes
node_memory_MemTotal_bytes
node_memory_Mlocked_bytes
node_memory_NFS_Unstable_bytes
node_memory_PageTables_bytes
node_memory_Percpu_bytes
node_memory_SReclaimable_bytes
node_memory_SUnreclaim_bytes
node_memory_ShmemHugePages_bytes
node_memory_ShmemPmdMapped_bytes
node_memory_Shmem_bytes
node_memory_Slab_bytes
node_memory_SwapCached_bytes
node_memory_SwapFree_bytes
node_memory_SwapTotal_bytes
node_memory_Unevictable_bytes
node_memory_VmallocChunk_bytes
node_memory_VmallocTotal_bytes
node_memory_VmallocUsed_bytes
node_memory_WritebackTmp_bytes
node_memory_Writeback_bytes
下記では、利用可能なメモリの容量を確認できます。
1node_memory_MemAvailable_bytes
loadavg
loadavgコレクタには、ロードアベレージのメトリクスがあります。
ロードアベレージは負荷を表す指標の1つです。
主なメトリクスは下記の通りです。
node_load1
node_load15
node_load5
下記では、1分間のロードアベレージを確認できます。
1node_load1
参考
- prometheus/node_exporter: Exporter for machine metrics
- Monitoring Linux host metrics with the Node Exporter | Prometheus
- ロードアベレージとは - 意味をわかりやすく - IT用語辞典 e-Words