全部產品
Search
文件中心

:Docker單機容器監控接入

更新時間:Nov 26, 2024

本文介紹如何監控Docker單機容器,以協助企業更好地管理和維護容器化應用。

前提條件

步驟一:接入Docker單機容器監控

  1. 登入Prometheus控制台,在左側導覽列單擊接入中心

  2. 單擊Docker 單機容器監控卡片,然後根據控制台指引完成組件接入。下面對重點配置項進行說明。

    配置項

    說明

    cAdvisor 安裝方式

    cAdvisor(Container Advisor)是Google開源的一款容器監控工具,可以收集容器的CPU、記憶體、網路和磁碟等資源使用方式。

    • 自動安裝:自動根據您提供的過濾策略對 ECS 執行個體進行服務發現,並向發現的主機中安裝 cAdvisor 服務。

    • 自助安裝:需要你在接入前自行在 ECS 主機上安裝 cAdvisor 服務,並開放對應的連接埠,開放 VPC 內訪問。

      說明

      ECS 白名單需要為 VPC 網段開放指定連接埠。

    主機服務發現方式

    如何選擇要監控的ECS主機:

    汙點標籤選擇

    ECS 汙點標籤:通過ECS執行個體的汙點標籤(反向選擇)來匹配目標的執行個體。

    無條件(選擇當前VPC所有Linux執行個體)

    -

    標籤選擇

    ECS 執行個體標籤:通過ECS執行個體的標籤來匹配目標的執行個體。

    IP 域選擇

    ECS 網段(IP CIDR):該方提供一個網段,當ECS的IP地址匹配該網段時,即被選中。如果填寫VPC對應的網段,即代表命中當前VPC下全部的 ECS。

    執行個體 ID

    ECS 執行個體 ID:多個執行個體ID請使用英文半形逗號(,)分隔。

    cAdvisor 服務連接埠

    預設8080。

    Metric 採集間隔(單位/秒)

    預設15s。

    自動設定安全性群組

    開啟該功能後,如果檢查不通過會自動添加安全性群組規則。

    自訂ECS Tag注入

    可添加多個標籤。指定ECS標籤的Key,會自動將標籤的索引值對注入到Prometheus指標中。

步驟二:查看監控大盤

Prometheus預設內建了很多容器監控大盤,包括叢集概覽、核心組件、Node、Pod等監控能力,在Container Service控制台、ARMS控制台、Prometheus控制台都有透出。您可以通過以下方式查看監控大盤。

  1. 登入Prometheus控制台,在左側導覽列單擊接入管理

  2. 接入管理頁面,單擊大盤查詢頁簽。在ECS環境中選擇待查看的叢集,即可查看對應的監控大盤。69.jpgimage

步驟三:設定警示

  1. 登入Prometheus控制台,在左側導覽列單擊接入管理

  2. 接入管理頁面,單擊已接入環境頁簽。選擇ECS環境,然後單擊目標環境名稱,進入ECS環境詳情頁面。

  3. 組件管理頁簽,查看Prometheus內建的警示通知。1.jpg

  4. 內建的警示規則會產生警示事件,但是不會進行警示通知。如果您希望將警示通知發送到郵件或其他平台,可以單擊編輯配置通知方式。

    在警示配置頁面,您也可以自訂警示閾值、期間、警示內容等,警示詳細配置,請參見建立Prometheus警示規則

    2.jpg

採集指標說明

指標

類型

指標描述

container_blkio_device_usage_total

COUNTER

塊 IO 裝置位元組使用量

container_cpu_cfs_periods_total

COUNTER

經過的強制執行循環間隔數

container_cpu_cfs_throttled_periods_total

COUNTER

限制的周期間隔數目

container_cpu_cfs_throttled_seconds_total

COUNTER

容器限制的總期間

container_cpu_load_average_10s

GAUGE

過去10秒鐘的容器 CPU 平均負載值

container_cpu_schedstat_run_periods_total

COUNTER

cgroup 進程在 CPU 上啟動並執行次數

container_cpu_schedstat_runqueue_seconds_total

COUNTER

容器進程在運行隊列上等待總時間長度

container_cpu_schedstat_run_seconds_total

COUNTER

容器進程在 CPU 上運行總時間長度

container_cpu_system_seconds_total

COUNTER

累計系統 CPU 限定時間

container_cpu_usage_seconds_total

COUNTER

累計 CPU 限定時間

container_cpu_user_seconds_total

COUNTER

累計使用者 CPU 限定時間

container_file_descriptors

GAUGE

容器開啟的檔案描述符數量

container_fs_inodes_free

GAUGE

可用的 Inodes 數量

container_fs_inodes_total

GAUGE

總的 Inodes 數量

container_fs_io_current

GAUGE

當前進行中的 I/O 數量

container_fs_io_time_seconds_total

COUNTER

累計 I/O 消耗的秒數

container_fs_io_time_weighted_seconds_total

COUNTER

累計加權的 I/O 時間

container_fs_limit_bytes

GAUGE

容器在該檔案系統上可以消耗的位元組數

container_fs_read_seconds_total

COUNTER

累計讀取消耗的秒數

container_fs_reads_bytes_total

COUNTER

累計讀取的位元組數

container_fs_reads_merged_total

COUNTER

累計合并的讀取次數

container_fs_reads_total

COUNTER

累計完成的讀取次數

container_fs_sector_reads_total

COUNTER

累計完成的扇區讀取次數

container_fs_sector_writes_total

COUNTER

累計完成的扇區寫入次數

container_fs_usage_bytes

GAUGE

容器在該檔案系統上已使用的位元組數

container_fs_write_seconds_total

COUNTER

累計寫入消耗的秒數

container_fs_writes_bytes_total

COUNTER

累計寫入的位元組數

container_fs_writes_merged_total

COUNTER

累計合并的寫入次數

container_fs_writes_total

COUNTER

累計完成的寫入次數

container_hugetlb_failcnt

COUNTER

hugepage 使用次數達到限制的次數

container_hugetlb_max_usage_bytes

GAUGE

記錄的 hugepage 最大使用量

container_hugetlb_usage_bytes

GAUGE

當前的 hugepage 的使用量

container_last_seen

GAUGE

最後看到容器的時間

container_llc_occupancy_bytes

GAUGE

利用 RDT 記憶體頻寬監控(MBM)統計的容器的 LLC 緩衝使用方式

container_memory_bandwidth_bytes

GAUGE

利用 RDT 記憶體頻寬監控(MBM)統計的容器的總記憶體頻寬使用方式

container_memory_bandwidth_local_bytes

GAUGE

利用 RDT 記憶體頻寬監控(MBM)統計的容器本地記憶體頻寬使用方式

container_memory_cache

GAUGE

總頁緩衝

container_memory_failcnt

COUNTER

記憶體使用量超過限制的次數

container_memory_failures_total

COUNTER

記憶體配置失敗的累計次數

container_memory_mapped_file

GAUGE

記憶體對應檔的大小

container_memory_max_usage_bytes

GAUGE

最大記憶體使用量量

container_memory_migrate

GAUGE

記憶體遷移狀態

container_memory_numa_pages

GAUGE

每個 NUMA 節點上使用的頁面數量

container_memory_rss

GAUGE

RSS的大小

container_memory_swap

GAUGE

容器的交換記憶體使用量量

container_memory_usage_bytes

GAUGE

當前記憶體使用量量

container_memory_working_set_bytes

GAUGE

當前工作集

container_network_advance_tcp_stats_total

GAUGE

容器的 Advanced TCP 串連統計

container_network_receive_bytes_total

COUNTER

累計接收的位元組數

container_network_receive_errors_total

COUNTER

接收時遇到的錯誤累計次數

container_network_receive_packets_dropped_total

COUNTER

接收時丟棄的資料包累計次數

container_network_receive_packets_total

COUNTER

累計接收的資料包數

container_network_tcp6_usage_total

GAUGE

容器的 TCP6 串連統計

container_network_tcp_usage_total

GAUGE

容器的 TCP 串連統計

container_network_transmit_bytes_total

COUNTER

累計傳輸的位元組數

container_network_transmit_errors_total

COUNTER

傳輸時遇到的錯誤累計次數

container_network_transmit_packets_dropped_total

COUNTER

傳輸時丟棄的資料包累計次數

container_network_transmit_packets_total

COUNTER

累計傳輸的資料包數

container_network_udp6_usage_total

GAUGE

容器的 UDP6 串連統計

container_network_udp_usage_total

GAUGE

容器的 UDP 串連統計

container_oom_events_total

COUNTER

觀察到的容器記憶體溢出次數

container_perf_events_scaling_ratio

GAUGE

perf 事件計數的縮放比例

container_perf_events_total

COUNTER

perf 核心事件的縮放計數

container_perf_uncore_events_scaling_ratio

GAUGE

perf 非核心事件的縮放比例(事件可以通過事件標籤來識別,PMU和socket標籤表示測量事件的PMU和CPU socket)

container_perf_uncore_events_total

COUNTER

perf 非核心事件的縮放計數(事件可以通過事件標籤來識別,PMU和socket標籤表示測量事件的PMU和CPU socket)

container_processes

GAUGE

容器內啟動並執行進程數量

container_referenced_bytes

GAUGE

基於 /proc/smaps 檔案中的 Referenced 欄位,在上一個測量周期內容器引用的位元組數

container_sockets

GAUGE

容器的開啟通訊端數量

container_spec_cpu_period

GAUGE

容器的 CPU 週期

container_spec_cpu_quota

GAUGE

容器的 CPU 配額

container_spec_cpu_shares

GAUGE

容器的 CPU 份額

container_spec_memory_limit_bytes

GAUGE

容器的記憶體限制

container_spec_memory_reservation_limit_bytes

GAUGE

容器的記憶體保留限制

container_spec_memory_swap_limit_bytes

GAUGE

容器的記憶體交換限制

container_start_time_seconds

GAUGE

容器自 Unix 紀元以來的啟動時間

container_tasks_state

GAUGE

給定狀態中的任務數(睡眠、運行、停止、不可中斷或I/O等待)

container_threads

GAUGE

容器內啟動並執行線程數量

container_threads_max

GAUGE

容器內允許的最大線程數

container_ulimits_soft

GAUGE

容器根進程的 soft ulimit 值

machine_cpu_cache_capacity_bytes

GAUGE

分配給 NUMA 節點和 CPU 核心的緩衝大小(以位元組為單位)

machine_cpu_cores

GAUGE

邏輯 CPU 核心數

machine_cpu_physical_cores

GAUGE

物理 CPU 核心數

machine_cpu_sockets

GAUGE

CPU 插槽數

machine_dimm_capacity_bytes

GAUGE

各類型記憶體模組標記的總 RAM DIMM 容量值

machine_dimm_count

GAUGE

各類型記憶體模組標記的RAM DIMM數量

machine_memory_bytes

GAUGE

安裝在機器上的記憶體容量

machine_swap_bytes

GAUGE

機器上可用的交換記憶體容量

machine_node_distance

GAUGE

NUMA 節點和目標 NUMA 節點之間的距離

machine_node_hugepages_count

GAUGE

分配給 NUMA 節點的 hugepage 數量

machine_node_memory_capacity_bytes

GAUGE

分配給 NUMA 節點的記憶體數量

machine_nvm_avg_power_budget_watts

GAUGE

NVM 平均功率預算

machine_nvm_capacity

GAUGE

NVM 容量值

machine_thread_siblings_count

GAUGE

CPU 兄弟線程的數量

相關文檔

如何構建高效穩定的Docker容器監控體系