Node 状态异常 | 集群监控 | kube_node_status_condition{condition="Ready",job="kube-state-metrics",status="true"} == 0 | 2m | Node({{ $labels.node}})状态异常持续2分钟 |
应用健康检查失败 | 应用监控 | probe_success == 0 | 2m | 应用健康检查失败 |
应用FullGC异常 | 应用监控 | increase(jvm_gc_collection_seconds_count{gc=~"ConcurrentMarkSweep|PS MarkSweep"}[2m]) > 2 | 2m | 应用在2分钟内FullGC次数超过2次 |
app-actuator-health-10min | 业务指标监控 | probe_success == 0 | 10m | 持续10分钟应用健康检查失败,请及时上线处理。 |
PodCPU使用率大于90% | 应用监控 | sum (rate (container_cpu_usage_seconds_total{image!=""}[10m])) by (pod,namespace) / sum(kube_pod_container_resource_limits_cpu_cores{job="kube-state-metrics"}) by (pod,namespace) * 100 > 90 | 2m | Pod({{$labels.pod}})CPU使用率大于90%,(当前值:{{printf "%.2f" $value}}%)。 |
Pod内存使用率大于90% | 应用监控 | sum (container_memory_rss{image!="",pod!~"^logtail.*"}) by (pod,namespace) / sum(kube_pod_container_resource_limits_memory_bytes{job="kube-state-metrics"}) by (pod,namespace) * 100 > 90 | 2m | Pod({{$labels.pod}})内存使用率大于90%,(当前值:{{printf "%.2f" $value}}%)。 |
Pod频繁重启 | 应用监控 | increase(kube_pod_container_status_restarts_total{job=~".*kube-state-metrics"}[5m]) > 0 | 10m | Pod{{$labels.pod}}最近5分钟频繁重启 |
NodeCPU使用率超过80% | 集群监控 | 100 - ((avg by (instance,job,env,appname,line)(irate(node_cpu_seconds_total{mode="idle"}[5m]))) *100) * on(instance) group_left(nodename) (node_uname_info) > 80 | 2m | 服务器{{$labels.nodename}}CPU使用率超过80% (当前值:{{printf "%.2f" $value}}%)。 |
NodeCPU使用率超过90% | 集群监控 | 100 - ((avg by (instance,job,env,appname,line)(irate(node_cpu_seconds_total{mode="idle"}[5m]))) *100) * on(instance) group_left(nodename) (node_uname_info) > 90 | 2m | 服务器{{$labels.nodename}}内存使用率超过90% (当前值:{{printf "%.2f" $value}}%)。 |
Node内存使用率超过80% | 集群监控 | (1 - (node_memory_MemAvailable_bytes / (node_memory_MemTotal_bytes)))* 100 * on(instance) group_left(nodename) (node_uname_info) > 80 | 2m | 服务器{{$labels.nodename}}内存使用率超过80% (当前值:{{printf "%.2f" $value}}%)。 |
Node内存使用率超过90% | 集群监控 | (1 - (node_memory_MemAvailable_bytes / (node_memory_MemTotal_bytes)))* 100 * on(instance) group_left(nodename) (node_uname_info) > 90 | 2m | 服务器{{$labels.nodename}}内存使用率超过90% (当前值:{{printf "%.2f" $value}}%)。 |
Node磁盘使用率超过80% | 集群监控 | (node_filesystem_size_bytes{fstype=~"ext.?|xfs"}-node_filesystem_free_bytes{fstype=~"ext.?|xfs"}) *100/(node_filesystem_avail_bytes {fstype=~"ext.?|xfs"}+(node_filesystem_size_bytes{fstype=~"ext.?|xfs"}-node_filesystem_free_bytes{fstype=~"ext.?|xfs"})) * on(instance) group_left(nodename) (node_uname_info) > 80 | 2m | 服务器{{$labels.nodename}}磁盘({{$labels.device}})使用率超过80% (当前值:{{printf "%.2f" $value}}%)。 |
Node磁盘使用率超过90% | 集群监控 | (node_filesystem_size_bytes{fstype=~"ext.?|xfs"}-node_filesystem_free_bytes{fstype=~"ext.?|xfs"}) *100/(node_filesystem_avail_bytes {fstype=~"ext.?|xfs"}+(node_filesystem_size_bytes{fstype=~"ext.?|xfs"}-node_filesystem_free_bytes{fstype=~"ext.?|xfs"})) * on(instance) group_left(nodename) (node_uname_info) > 90 | 1m | 服务器{{$labels.nodename}}磁盘({{$labels.device}})使用率超过90% (当前值:{{printf "%.2f" $value}}%) |
Nacos宕机 | 中间件监控 | count(nacos_monitor{name="configCount"})<1 | 1m | Nacos({{$labels.pod}})服务异常已持续1分钟 |
RocketMQ宕机 | 中间件监控 | up{job="rocketmq-exporter"}==0 | 1m | RocketMQ({{$labels.pod}})服务异常已持续1分钟 |
集群Pod批量重启 | 集群监控 | count(sum (increase (kube_pod_container_status_restarts_total{}[2m])) by (pod)>1)>3 | 1m | 集群Pod发生批量重启事件(当前值:{{printf $value}})。 |
30分钟内一个Pod重启2次 | 业务指标监控 | sum (increase (kube_pod_container_status_restarts_total{namespace="tt-his"}[30m])) by (pod) > 2 | 1m | 30分钟内一个Pod重启2次 |
Pod 磁盘使用超过20G | 应用监控 | sum by(container, pod) (container_fs_usage_bytes{id!="/"}) / 1024 / 1024 / 1024 > 20 | 1m | Pod {{$labels.pod}} 磁盘使用大于20G,(当前值:{{printf "%.2f" $value}}G)。 |
客户端访问APIServer出错 | 集群监控 | (sum(rate(rest_client_requests_total{code=~"5.."}[5m])) by (instance, job, cluster_id) / sum(rate(rest_client_requests_total[5m])) by (instance, job, cluster_id)) > 0.01 | 15m | 客户端访问 APIServer 出错率大于1% |
客户端访问APIServer证书快过期 | 集群监控 | apiserver_client_certificate_expiration_seconds_count{job="apiserver"} > 0 and on(job) histogram_quantile(0.01, sum by (cluster_id, job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job="apiserver"}[5m]))) < 86400 | 10m | 访问APIServer的客户端证书将在24小时后过期 |
APIServer故障 | 集群监控 | absent(up{job="apiserver"} == 1) | 2m | APIServer从采集目标中消失 |
Scheduler故障 | 集群监控 | absent(up{job="kube-scheduler"} == 1) | 15m | Scheduler从采集目标中消失 |
ControllerManager故障 | 集群监控 | absent(up{job="kube-controller-manager"} == 1) | 15m | ControllerManager下线 |
Node不可达 | 集群监控 | kube_node_spec_taint{job=~".*kube-state-metrics",key="node.kubernetes.io/unreachable",effect="NoSchedule"} == 1 | 15m | Node 不可达,上面的工作负载会重新调度 |
Node上运行太多pod | 集群监控 | count by(cluster_id, node) ((kube_pod_status_phase{job=~".*kube-state-metrics",phase="Running"} == 1) * on(instance,pod,namespace,cluster_id) group_left(node) topk by(instance,pod,namespace,cluster_id) (1, kube_pod_info{job=~".*kube-state-metrics"}))/max by(cluster_id, node) (kube_node_status_capacity_pods{job=~".*kube-state-metrics"} != 1) > 0.95 | 15m | Node上运行pod量快达到上限 |
Node状态抖动 | 集群监控 | sum(changes(kube_node_status_condition{status="true",condition="Ready"}[15m])) by (cluster_id, node) > 2 | 15m | Node状态在正常和异常之间抖动 |
Kubelet的客户端证书快过期 | 集群监控 | kubelet_certificate_manager_client_ttl_seconds < 86400 | 10m | Kubelet客户端证书将在24小时后过期 |
Kubelet的服务端证书快过期 | 集群监控 | kubelet_certificate_manager_server_ttl_seconds < 86400 | 10m | Kubelet服务端证书将在24小时后过期 |
PLEG耗时高 | 集群监控 | histogram_quantile(0.99, sum(rate(kubelet_pleg_relist_duration_seconds_bucket[5m])) by (cluster_id, instance, le) * on(instance, cluster_id) group_left(node) kubelet_node_name{job="kubelet"}) >= 10 | 5m | PLEG操作耗时的99分位数超过10秒 |
Pod启动耗时高 | 集群监控 | histogram_quantile(0.99, sum(rate(kubelet_pod_worker_duration_seconds_bucket{job="kubelet"}[5m])) by (cluster_id, instance, le)) * on(cluster_id, instance) group_left(node) kubelet_node_name{job="kubelet"} > 60 | 15m | Pod启动耗时的99分位数值超过60秒 |
Kubelet故障 | 集群监控 | absent(up{job="kubelet", metrics_path="/metrics"} == 1) | 15m | Kubelet从采集目标消失 |
节点Conntrack使用率过高 | 集群监控 | (node_nf_conntrack_entries / node_nf_conntrack_entries_limit) > 0.75 | 2m | 节点使用大量Conntrack条目。 |
机器时钟漂移 | 集群监控 | ( node_timex_offset_seconds > 0.05 and deriv(node_timex_offset_seconds[5m]) >= 0 ) or ( node_timex_offset_seconds < -0.05 and deriv(node_timex_offset_seconds[5m]) <= 0 ) | 10m | 机器时间漂移超过300秒,检查NTP是否正常配置 |
机器时钟未同步 | 集群监控 | min_over_time(node_timex_sync_status[5m]) == 0 | 10m | 机器时间最近未同步,检查 NTP 是否正常配置 |
网卡发送出错 | 集群监控 | increase(node_network_transmit_errs_total[2m]) > 10 | 60m | 网卡发送数据出错 |
网卡接收出错 | 集群监控 | increase(node_network_receive_errs_total[2m]) > 10 | 60m | 网卡接收数据出错 |
文件系统inode使用率高 | 集群监控 | (node_filesystem_files_free{job="node-exporter",fstype!=""}/node_filesystem_files{job="node-exporter",fstype!=""}*100<3 and node_filesystem_readonly{job="node-exporter",fstype!=""}==0) | 60m | 文件系统可用 inode 低于3% |
ETCD故障 | 集群监控 | absent(up{job="kube-etcd"} == 1) | 2m | etcd组件故障 |
nginx故障 | 中间件监控 | nginx_up{} | 2m | Nginx报警: Nginx服务异常 |
Pod的PVC使用率超过90% | 应用监控 | ((kubelet_volume_stats_capacity_bytes - kubelet_volume_stats_available_bytes) / kubelet_volume_stats_capacity_bytes *100 )>90 | 2m | Pod {{$labels.pod}} 的PVC使用率超过90%,(当前值:{{printf "%.2f" $value}})。 |
SSL证书过期告警 | 集群监控 | (ssl_cert_not_after-time())/3600/24 < 15 | 1h | 证书{{ $labels.instance }}还有{{ printf "%.1f" $value }}天就过期了,请尽快更新证书 |
Node平均负载偏高 | 集群监控 | (sum (node_load5) by (instance) / count by (instance) (node_cpu_seconds_total{mode="idle"})) > 2 | 30s | 服务器{{$labels.instance}}5分钟平均负载已超过CPU内核数两倍 (当前值:{{printf "%.2f" $value}}%)。 |
Node出现不可中断(D状态)进程 | 集群监控 | sum by(cluster, job, instance, groupname) (namedprocess_namegroup_states{state="Waiting"})>0 | 3m | 服务器{{$labels.instance}}上出现不可中断(D状态)进程{{$labels.groupname}} |
Node出现僵尸进程 | 集群监控 | sum by(cluster, job, instance, groupname) (namedprocess_namegroup_states{state="Zombie"})>0 | 3m | 服务器{{$labels.instance}}上出现僵尸进程{{$labels.groupname}} |
Node出现非正常状态进程 | 集群监控 | sum by(cluster, job, instance, groupname) (namedprocess_namegroup_states{state="Other"})>0 | 3m | 服务器{{$labels.instance}}上出现非正常状态进程{{$labels.groupname}} |
因资源不足被驱逐的Pod累积超过50个 | 集群监控 | sum(kube_pod_status_phase{phase="Evicted"}) | 1m | 因资源不足被驱逐的Pod累积超过50个 |
mysql集群主从延迟过高 | 数据库监控 | max(mysql_slave_status_seconds_behind_master{namespace="databases"}) by (pod) - max(mysql_slave_status_sql_delay{namespace="databases"}) by (pod) > 30 | 2m | mysql实例({{$labels.pod}})延迟过高 (当前值:{{printf "%.2f" $value}}%) |
mysql集群发生主从切换 | 数据库监控 | rate (mysql_slave_status_master_server_id [5m]) > 0 | 1m | mysql集群发生主从切换,当前master节点:{{$labels.master_host}} |
mysql实例连接数异常增长 | 数据库监控 | avg by(pod)(mysql_global_status_threads_connected{namespace="databases"})/avg by(pod)(mysql_global_variables_max_connections{namespace="databases"})*100 > 40 | 1m | mysql连接数超过最大连接数的50% |
mysql集群从库状态异常 | 数据库监控 | sum (mysql_slave_status_slave_io_running{namespace="databases"} + mysql_slave_status_slave_sql_running{namespace="databases"}) by (pod) < 2 | 2m | mysql从库状态异常,请检查{{$labels.pod}} |
mysql实例锁等待数量异常 | 数据库监控 | irate(mysql_global_status_innodb_row_lock_waits[1m]) >20 | 1m | 每秒新增锁等待数量异常,当前值{{printf "%.2f" $value}}) |
mysql实例qps过高 | 数据库监控 | irate(mysql_global_status_queries{namespace="databases"}[5m]) > 6000 | 2m | qps过高,当前值{{printf "%.2f" $value}}),请检查 |
mysql实例pod内存使用率高 | 数据库监控 | sum(container_memory_rss{namespace="databases",container="mysql"}) by (pod) / sum(kube_pod_container_resource_limits_memory_bytes{namespace="databases", container="mysql",job="kube-state-metrics"}) by (pod) > 0.75 | 2m | 物理内存占用过高,当前值{{printf "%.2f" $value}}) |
mysql实例cpu使用率过高 | 数据库监控 | sum by(pod,container) (irate(container_cpu_usage_seconds_total{namespace="databases", container="mysql"}[2m])) *100 / sum by(pod,container) (kube_pod_container_resource_limits_cpu_cores{namespace="databases",container="mysql",job="kube-state-metrics"}) > 70 | 2m | cpu使用率超过70%,当前值{{printf "%.2f" $value}}) |
mysql实例异常重启 | 数据库监控 | mysql_global_status_uptime{pod!=""} < 120 | 1m | mysql节点{{$labels.pod}}异常重启 |
mysql实例不可达 | 数据库监控 | up{namespace="databases",pod=~".*mysql-cluster.*"} !=1 | 1m | mysql节点不可达,节点:{{$labels.pod}} |
ECS-load1负载高于cpu核数 | 中间件监控 | (sum by (instance,service) (node_load1))>(count by(instance,service) (count by(instance,cpu,service) (node_cpu_seconds_total)))* on(instance,service) group_left(nodename) (node_uname_info) | 100s | 服务器 {{$labels.instance}} ({{$labels.appname}})load1负载高于cpu核数 (当前值:{{printf "%.2f" $value}}%)。' |
ECS-load1负载高于cpu核数的1.5倍 | 中间件监控 | (sum by (instance,service) (node_load1))>(count by(instance,service) (count by(instance,cpu,service) (node_cpu_seconds_total))*1.5)* on(instance,service) group_left(nodename) (node_uname_info) | 100s | 服务器 {{$labels.instance}} ({{$labels.appname}})load1负载高于cpu核数的1.5倍 (当前值:{{printf "%.2f" $value}}%)。' |
ECS-磁盘使用率超过90% | 中间件监控 | (node_filesystem_size_bytes{fstype=~"ext.?|xfs"}-node_filesystem_free_bytes{fstype=~"ext.?|xfs"}) *100/(node_filesystem_avail_bytes {fstype=~"ext.?|xfs"}+(node_filesystem_size_bytes{fstype=~"ext.?|xfs"}-node_filesystem_free_bytes{fstype=~"ext.?|xfs"})) * on(instance,service) group_left(nodename) (node_uname_info) > 90 | 2m | 服务器 {{$labels.instance}} ({{$labels.nodename}})磁盘({{$labels.device}})使用率超过90% (当前值:{{printf "%.2f" $value}}%)。' |
ECS-磁盘使用率超过80%: | 中间件监控 | (node_filesystem_size_bytes{fstype=~"ext.?|xfs"}-node_filesystem_free_bytes{fstype=~"ext.?|xfs"}) *100/(node_filesystem_avail_bytes {fstype=~"ext.?|xfs"}+(node_filesystem_size_bytes{fstype=~"ext.?|xfs"}-node_filesystem_free_bytes{fstype=~"ext.?|xfs"})) * on(instance,service) group_left(nodename) (node_uname_info) > 80 | 2m | 服务器 {{$labels.instance}} ({{$labels.nodename}})磁盘({{$labels.device}})使用率超过80% (当前值:{{printf "%.2f" $value}}%)。' |
ECS- CPU使用率超过90% | 中间件监控 | 100 - ((avg by (instance,job,env,appname,service)(irate(node_cpu_seconds_total{mode="idle"}[5m]))) *100) * on(instance,service) group_left(nodename) (node_uname_info) >90 | 2m | 服务器 {{$labels.instance}} ({{$labels.nodename}})CPU使用率超过90% (当前值:{{printf "%.2f" $value}}%)。' |
ECS-CPU使用率超过80% | 中间件监控 | 100 - ((avg by (instance,job,env,appname,service)(irate(node_cpu_seconds_total{mode=idle}[5m]))) *100) * on(instance,service) group_left(nodename) (node_uname_info) >80 | 2m | 服务器 {{$labels.instance}} ({{$labels.nodename}})CPU使用率超过80% (当前值:{{printf "%.2f" $value}}%)。' |
ECS-内存使用率超过90% | 中间件监控 | (1 - (node_memory_MemAvailable_bytes / (node_memory_MemTotal_bytes)))* 100 * on(instance,service) group_left(nodename) (node_uname_info) > 90 | 2m | 服务器 {{$labels.instance}} ({{$labels.nodename}})内存使用率超过90% (当前值:{{printf "%.2f" $value}}%)' |
ECS-内存使用率超过85% | 中间件监控 | (1 - (node_memory_MemAvailable_bytes / (node_memory_MemTotal_bytes)))* 100 * on(instance,service) group_left(nodename) (node_uname_info) > 85 | 2m | 服务器 {{$labels.instance}} ({{$labels.nodename}})内存使用率超过85% (当前值:{{printf "%.2f" $value}}%) |
ECS-服务器宕机告警 | 中间件监控 | up{ service="ecs-out-of-cluster"} * on(instance) group_left(nodename) node_uname_info{ service="ecs-out-of-cluster"} == 0 | 1m | 服务器HostName: {{ .nodename }} 服务器: {{ .instance }} 1分钟内没有响应,请检查是否宕机。 |
网络拨测告警 | 集群监控 | probe_success{probeName="k8s出口ip拨测"} == 0 | 5m | 网络拨测:{{$labels.clusterName}}-{{$labels.probeName}}不通过 |
mysql集群主从延迟超过5分钟 | 数据库监控 | max(mysql_slave_status_seconds_behind_master{namespace="databases"}) by (pod) - max(mysql_slave_status_sql_delay{namespace="databases"}) by (pod) > 300 | 2m | mysql实例({{$labels.pod}})延迟过高(当前值:{{printf "%.2f" $value}}%) |
mysql集群从库权限不是只读 | 数据库监控 | mysql_global_variables_read_only{job=~".*mysql",pod !~".*mysql-0.*"} != 1 | 1m | mysql实例({{$labels.pod}})权限不是只读 |
mysql实例打开文件数超过75% | 数据库监控 | mysql_global_status_innodb_num_open_files > (mysql_global_variables_open_files_limit) * 0.75 | 2m | mysql实例({{$labels.pod}})打开文件数超过75%(当前值:{{printf "%.2f" $value}}%) |
mysql(app)实例连接数过高 | 数据库监控 | avg by(pod)(mysql_global_status_threads_connected{namespace="databases",pod =~".*app.*"})/avg by(pod)(mysql_global_variables_max_connections{namespace="databases",pod =~".*app.*"})*100 > 50 | 2m | mysql实例({{$labels.pod}})连接数超50%(当前值:{{printf "%.2f" $value}}%) |
mysql(app)锁等待数量异常 | 数据库监控 | irate(mysql_global_status_innodb_row_lock_waits{pod =~".*app.*"}[1m]) >10 | 2m | mysql实例({{$labels.pod}})锁等待数量异常(当前值{{printf "%.2f" $value}}) |
rocketmq集群broker busy压力过大 | 中间件监控 | rocketmq_brokeruntime_send_threadpoolqueue_headwait_timemills > 200 | 2m | rocketmq集群({{$labels.namespace}}/{{$labels.cluster}})broker busy压力过大 (当前值{{printf "%.2f" $value}}) |
rocketmq集群TPS过高 | 中间件监控 | sum(rocketmq_producer_tps) by (cluster, namespace) >= 100 | 2m | rocketmq集群({{$labels.namespace}}/{{$labels.cluster}})TPS过高(当前值{{printf "%.2f" $value}}) |
rocketmq集群消费组的消费延时时间过高 | 中间件监控 | rocketmq_group_get_latency_by_storetime/1000 > 5 and rate(rocketmq_group_get_latency_by_storetime[5m]) >0 | 2m | rocketmq集群({{$labels.namespace}}/{{$labels.cluster}})消费组的消费延时时间过高,Topic:({{$labels.topic}})关联Group:({{$labels.group}})(当前值{{printf "%.2f" $value}}) |
rocketmq集群name service节点故障 | 中间件监控 | sum(kube_pod_container_status_ready{ job="kubernetes-service-endpoints",pod=~".*mq.*",pod!~".*(console|operator|exporter).*", container=~".*(name-service).*"}) by (namespace) < 2 | 1m | rocketmq集群({{$labels.namespace}}) name service节点故障。 |
rocketmq集群broker节点故障 | 中间件监控 | sum(kube_pod_container_status_ready{ job="kubernetes-service-endpoints",pod=~".*mq.*",pod!~".*(console|operator|exporter).*", container=~".*(broker).*",namespace!="devops"}) by (namespace) < 2 | 1m | rocketmq集群({{$labels.namespace}}) broker节点故障。 |
| | | | |
| | | | |
| | | | |