【Prometheus】Node exporterをざっくり理解

2022.09.20
2024.03.24
監視
Docker ComposeNode exporterPrometheus

本ページはAmazonアフィリエイトのリンクを含みます。

はじめに

Prometheusで使われるexporterの中から、Node exporterについてざっくりまとめていきます。

Node Exporterとは

Node exporterは、exporterの1つで、UnixシステムのCPU、メモリ、ディスクスペース、ディスクI/O、ネットワークなどのメトリクスを開示するexporterです。

GitHub - prometheus/node_exporter: Exporter for machine metrics

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

【監視入門】とりあえず使ってみるPrometheus

はじめに 本記事では、Promethesについてざっくり解説して、実際に簡単な監視をしてみたいと

用意するファイルはprometheus.ymldocker-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

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee