最近更新时间:2024.02.28 20:04:51
首次发布时间:2023.11.16 18:54:08
容器服务支持监控集群节点的资源状态。本文为您介绍如何配置和查看节点监控信息。
容器服务集群已接入托管 Prometheus,并同步安装了 node-exporter 组件。详情请参见 接入托管 Prometheus。
当您将容器服务集群正确接入托管 Prometheus,并安装了对应的组件后,需要配置对应的采集规则,才能正确采集指标。
说明
您可以查看节点的概览信息,包括:节点内存使用率、节点 CPU 使用率、节点磁盘使用率等。支持设置查询的时间段,并指定刷新方式(手动刷新、自动刷新)。
该看板的指标清单如下表所示。
看板名称 | PromQL 语句 |
---|---|
节点内存使用率 | (node_memory_MemTotal_bytes{cluster="$ClusterId",node=~"$Node"}-node_memory_MemAvailable_bytes{cluster="$ClusterId",node=~"$Node"})/node_memory_MemTotal_bytes{cluster="$ClusterId",node=~"$Node"}*100 |
节点 CPU 使用率 | sum(irate(node_cpu_seconds_total{cluster="$ClusterId",node=~"$Node",mode="user"}[5m]))by(node)/count(count(node_cpu_seconds_total{cluster="$ClusterId",node=~"$Node"})by(cpu,node))by(node)*100 |
节点磁盘使用率 | sum(node_filesystem_size_bytes{cluster=~"$ClusterId",node=~"$Node",device!~'rootfs'}-node_filesystem_avail_bytes{cluster=~"$ClusterId",node=~"$Node",device!~'rootfs',fstype!~'tmpfs'})by(node)/sum(node_filesystem_size_bytes{cluster=~"$ClusterId",node=~"$Node",device!~'rootfs'})by(node)*100 |
节点磁盘 Read 速率 | sum(rate(node_disk_read_bytes_total{cluster=~"$ClusterId",node=~"$Node",device=~"[a-z]*[a-z]"}[5m]))by(node) |
节点磁盘 Write 速率 | sum(rate(node_disk_written_bytes_total{cluster=~"$ClusterId",node=~"$Node",device=~"[a-z]*[a-z]"}[5m]))by(node) |
节点网络流量(In) | sum(rate(node_network_receive_bytes_total{cluster=~"$ClusterId",node=~"$Node"}[5m]))by(node) |
节点网络流量(Out) | sum(rate(node_network_transmit_bytes_total{cluster=~"$ClusterId",node=~"$Node"}[5m]))by(node) |
节点 Socket 数 | node_sockstat_TCP_alloc{cluster=~"$ClusterId",node=~"$Node"} |
您可以查看指定节点的详细监控信息,包括:节点内存信息(内存使用量、内存使用率)、节点 CPU 信息(CPU 使用量、CPU 使用率、CPU 负载)、磁盘信息(磁盘使用率、磁盘读写 IOPS)等。支持设置查询的时间段,并指定刷新方式(手动刷新、自动刷新)。
该看板的指标清单如下表所示。
大盘名称 | PromQL 语句 |
---|---|
节点详情监控 | 内存总量 |
CPU 总数 | kube_node_status_capacity{cluster=~"$ClusterId",node=~"$Node",resource="cpu"} |
Pod Capacity | kube_node_status_capacity{cluster=~"$ClusterId",node=~"$Node",resource="pods"} |
CPU Requests | sum(kube_pod_container_resource_requests{cluster="$ClusterId",resource="cpu",node=~"$Node"})by(node) |
内存 Requests | sum(kube_pod_container_resource_requests{cluster="$ClusterId",resource="memory",node="$Node"})by(node) |
Pod 数量 | count(kube_pod_info{cluster="$ClusterId",node="$Node"}) |
节点内存使用 | sum(kube_pod_container_resource_requests{cluster="$ClusterId",resource="memory",node="$Node"})by(node) |
sum(kube_pod_container_resource_limits{cluster="$ClusterId",resource="memory",node="$Node"})by(node) | |
kube_node_status_capacity{cluster="$ClusterId",resource="memory",node="$Node"} | |
sum(node_memory_MemTotal_bytes{cluster="$ClusterId",node="$Node"}-node_memory_MemAvailable_bytes{cluster="$ClusterId",node="$Node"})by(node) | |
节点 CPU 使用 | sum(kube_pod_container_resource_requests{cluster="$ClusterId",resource="cpu",node="$Node"})by(node) |
sum(kube_pod_container_resource_limits{cluster="$ClusterId",resource="cpu",node="$Node"})by(node) | |
sum(kube_node_status_capacity{cluster="$ClusterId",resource="cpu",node="$Node"})by(node) | |
sum (irate(node_cpu_seconds_total{cluster="$ClusterId",mode="user",node="$Node"}[5m])) by(node) | |
节点 CPU 负载(1m、5m、15m) | node_load1{cluster="$ClusterId",node="$Node"} |
node_load5{cluster="$ClusterId",node="$Node"} | |
node_load15{cluster="$ClusterId",node="$Node"} | |
磁盘使用率 | avg((node_filesystem_size_bytes{cluster=~"$ClusterId",instance=~"$Node",device!~'rootfs'}-(node_filesystem_avail_bytes{cluster=~"$ClusterId",instance=~"$Node",device!~'rootfs',fstype!~'tmpfs'}))/node_filesystem_size_bytes{cluster=~"$ClusterId",instance=~"$Node",device!~'rootfs'}*100)by(device) |
磁盘读写流量 | rate(node_disk_read_bytes_total{cluster=~"$ClusterId",node=~"$Node",device=~"[a-z]*[a-z]"}[5m]) |
rate(node_disk_written_bytes_total{cluster=~"$ClusterId",instance=~"$Node",device=~"[a-z]*[a-z]"}[5m]) | |
磁盘 inode 使用率 | (node_filesystem_files{cluster=~"$ClusterId",node="$Node",device!~'rootfs',fstype!~'tmpfs'}-node_filesystem_files_free{cluster=~"$ClusterId",instance="$Node",device!~'rootfs',fstype!~'tmpfs'})/node_filesystem_files{cluster=~"$ClusterId",instance="$Node",device!~'rootfs',fstype!~'tmpfs'}*100 |
磁盘读写 IOPS | rate(node_disk_writes_completed_total{cluster=~"$ClusterId",node=~"$Node",device=~"[a-z]*[a-z]"}[5m]) |
rate(node_disk_reads_completed_total{cluster=~"$ClusterId",node=~"$Node",device=~"[a-z]*[a-z]"}[5m]) | |
TCP 连接 | node_sockstat_TCP_inuse{cluster="$ClusterId",node="$Node"} |
node_sockstat_TCP_alloc{cluster="$ClusterId",node="$Node"} | |
node_sockstat_TCP_tw{cluster="$ClusterId",node="$Node"} | |
node_netstat_TcpExt_ListenDrops{cluster="$ClusterId",node="$Node"} | |
node_netstat_Tcp_ActiveOpens{cluster="$ClusterId",node="$Node"} | |
node_netstat_Tcp_PassiveOpens{cluster="$ClusterId",node="$Node"} | |
网络流入流出包速率 | rate(node_network_receive_packets_total{cluster=~"$ClusterId",node=~"$Node"}[5m]) |
rate(node_network_transmit_packets_total{cluster=~"$ClusterId",node=~"$Node"}[5m]) | |
网络流入流出流量速率 | rate(node_network_receive_bytes_total{cluster=~"$ClusterId",node=~"$Node"}[5m]) |
rate(node_network_transmit_bytes_total{cluster=~"$ClusterId",node=~"$Node"}[5m]) | |
网络流入流出丢包率 | 100* sum(rate(container_network_transmit_packets_dropped_total{cluster=~"$ClusterId",node=~"$Node",pod!=""}[5m]))by(node)/sum(rate(container_network_transmit_packets_total{cluster=~"$ClusterId",node="$Node",pod!=""}[5m]))by(node) |
100* sum(rate(container_network_receive_packets_dropped_total{cluster=~"$ClusterId",node=~"$Node",pod!=""}[5m]))by(node)/sum(rate(container_network_receive_packets_total{cluster=~"$ClusterId",node="$Node",pod!=""}[5m]))by(node) |
说明
如果您需要在托管 Prometheus 中的 Explore 功能或告警中心使用上述 PromQL 语句查看具体的指标或配置告警,请修改或删除语句中关于集群、节点、容器组的变量。例如:将 cluster=~"$Cluster"
参数中的$Cluster
变量修改为具体的集群 ID ,或直接删除该参数。
您可以使用托管 Prometheus 的 Explore 功能来快速查询和展示指标数据。详情请参见 指标查询。
您可以在托管 Prometheus 的告警中心配置集群相关告警,包括: