本文主要是介绍Prometheus 告警Promesql整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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节点故障。
这篇关于Prometheus 告警Promesql整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!