kube-promethues监控k8s集群外服务

目录

一. 概述

1.1 编写目的和使用场景

本文档的目的是编写一个通用的监控方案,方便以后监控大部分基于k8s搭建的服务时,能够快速实现监控服务重要指标的任务,保证服务能够正常稳定的运行,提高服务可用性指标。

1.2 监控工具的选用

传统企业的运维经过多年的积累,已沉淀下来了不少了监控工具,根据公司业务实际情况,这里主要选用promethues作为监控工具。

1.3 监控内容

本方案的监控内容基于 运维交付通用部署方案 中的应用,主要分为5块,包括宿主机监控,中间件监控,数据库监控,k8s基础组件监控,容器状态监控(pod, service)。

因为公司内网60网段的k8s测试环境已经部署相关服务,本文档所有内容都是直接使用测试环境中的prometheus监控其中的相关服务

二. prometheus监控介绍

公司使用的标准监控工具是kube-prometheus,可以认为是prometheus的集群加强版,是紧密结合k8s设计运行的。

2.1 prometheus架构图

image-20230714140144862

2.2 prometheus基础模块

名称 功能说明
prometheus server 收集和存储时间序列数据(TSDB)
Exporter 负责收集目标对象(host ,container...)的性能数据
可视化组件 Grafana 能够与 Prometheus 无缝集成,提供完美的数据展示能力
Alertmanager 用户可以定义基于监控数据的告警规则,规则会触发告警
Push Gateway 使用主动推送数据的方式, 文档中minio采用这种方式采集数据

2.3 prometheus中的metrics

2.3.1 宿主机的监控数据

数据由Node Exporter 工具提供,生产环境中常以 DaemonSet 的方式运行在宿主机上,主要负责抓取节点的负载(Load)、CPU、内存、磁盘以及网络这样的常规信息

2.3.2 k8s基础组件的数据

k8s各个组件的核心监控指标,包括controller-manager, etcd, kube-proxy, kube-scheduler, kubelet,

apiserver等

2.3.3 中间件和数据库监控数据

这些服务需要分别部署专有的exporter工具,比如mysql-exporter, redis-exporter等获取相关监控指标,然后配置prometheus拉取这些指标

2.3.4 容器状态监控

包括pod, service等运行状态,比如副本数,重启情况,资源使用情况等

2.4 prometheus工作流程

  • 定期从配置好的 jobs 或者 exporters 中拉取 metrics,或者接收来自 Pushgateway 发过来的metrics
  • Prometheus server 在本地存储收集到的 metrics
  • Alertmanager 根据配置文件,对接收到的警报进行处理,发出告警
  • 在图形界面grafana中,可视化采集数据

三. 监控指标

3.1 指标等级

监控指标按照重要程度划分等级如下,一般三级以上的指标都必须进行监控

级别 描述
一级 可选
二级 一般
三级 重要
四级 很重要
五级 必须

3.2 宿主机监控

宿主机的监控指标是通过node-exporter来获取的,部署prometheus时,默认会自动在每个宿主机节点上安装此客户端工具。

3.2.1 节点监控

监控指标 等级 说明
服务器是否可达 五级 服务器宕机或者agent失败监控会不可达
运行时长 三级 服务器自上次启动后正常运行的时间
主机名 三级 主机名在统计和排查故障时很重要

3.2.2 CPU监控

监控指标 等级 说明
CPU数量 五级 服务器能使用的CPU资源
CPU负载 五级 一段时间内占用CPU时间的进程和等待CPU时间的进程数之和
CPU使用率 五级 一段时间内CPU非空闲时间占比
用户CPU时间占比(us) 三级 用户CPU时间占比(%),高运算任务时会变高
系统CPU时间占比(sy) 三级 系统CPU时间占比,IO操作等系统调用时会变高
空闲CPU时间占比(id) 三级 空闲CPU时间占比,一般id+us+sy=100
等待I/O时间占比 三级 等待IO的cpu时间

3.2.3 磁盘监控

监控指标 等级 说明
磁盘空间 三级 宿主机能使用的磁盘空间有多少
目录使用空间占比 三级 目前还有多少空间能用
r/s 二级 每秒磁盘连续读次数
w/s 二级 每秒磁盘连续写次数
rkB/s 二级 每秒磁盘读取速度
wkB/s 二级 每秒磁盘写入速度
r_await 二级 读请求等待时间
w_await 二级 写请求等待时间
%utils 二级 表示磁盘利用率
avgqu-sz 二级 待处理的 I/O 请求的数目

3.2.4 内存监控

监控指标 等级 说明
MemTotal 三级 服务器内存总量
MemFree 三级 服务器目前可用内存量
Buffer 二级 对磁盘数据的缓存
Cache 二级 二级
SwapTotal 二级 虚拟内存可使用的大小

3.2.5 网络监控

监控指标 等级 说明
下载流量 二级 服务器接收的数据总量
上传流量 二级 服务器发送的数据总量
TCP连接数 二级 有多少个TCP连接到本服务器

3.2.6 grafana模板

添加node-exporter的grafana模板, ID为11074

image-20230717172343281

3.3 k8s基础组件监控

主要保证相关组件正常运行即可

监控指标 等级 说明
EtcdCluseterUnavailable 三级 etcd 集群健康检查
EtcdLeaderCheck 二级 etcd检查 leader是否正常
Etcdlived 三级 etcd 存活检测
KubeControllerManagerDown 三级 KubeControllerManager是否 失联
KubeSchedulerDown 三级 KubeScheduler 是否失联
apiserver_client_certificate_expiration_seconds_count 三级 kubelet证书有效期剩余时间
kubeletDown 三级 kubelet是否失联
apiserver_request_total 二级 APIServer 请求数
KubeAPIDown 三级 APIserver是否失联
KubeAPIErrorsHigh 二级 APIServer 请求错误率

3.4 中间件和数据库监控

这些数据都需要安装特定的exporter工具来采集这些服务的监控指标,然后prometheus在通过exporter拉取这些指标数据进行监控。

3.4.1 kafka监控

监控目标:10.255.60.141的kafka集群, 集群中只需要随便选择一个节点安装kafka-exporter即可,不需要所有节点都安装。如果kafka集群中有一个节点宕机,则kafka-exporter不可用

3.4.1.1 部署kafka-exporter

下载kafka-exporter及启动

https://github.com/danielqsj/kafka_exporter/releases/download/v1.4.2/kafka_exporter-1.4.2.linux-amd64.tar.gz

tar -zxvf kafka_exporter-1.4.2.linux-amd64.tar.gz  -C /opt/

前台启动,默认监听端口9308
./kafka_exporter --kafka.server=10.255.60.141:9092

后台启动
nohup ./kafka_exporter --kafka.server=10.255.60.141:9092 &

注意:

kafka-exporter和kafka的版本有对应关系,这里kafka的版本为2.1.1对应kafka-exporter的版本是1.4.2. 经测试使用版本为1.2.0的kafka-exporter启动失败

创建service服务

根据情况需要修改文件中的IP地址,文件路径

cat > /lib/systemd/system/kafka_exporter.service <<EOF
[Unit]
Description=kafka_exporter
After=local-fs.target network-online.target network.target
Wants=local-fs.target network-online.target network.target

[Service]
User=root
Group=root
ExecStart=/opt/kafka_exporter-1.4.2.linux-amd64/kafka_exporter --kafka.server=10.255.60.141:9092
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

启动服务并测试

systemctl daemon-reload
systemctl enable kafka_exporter
systemctl start kafka_exporter
systemctl status kafka_exporter

#测试
curl 10.253.60.141:9308/metrics

3.4.1.2 kube-prometheus中修改配置

添加prometheus-additional.yaml

prometheus的配置默认是不能修改的,目前可以通过新增prometheus-additional.yaml来添加新增配置,文件在10.255.60.127的/root/yaml/prometheus目录,如下

- job_name: kafka-exporter
  honor_timestamps: true
  metrics_path: /metrics
  scheme: http
  static_configs:
  - targets:
    - 10.253.60.141:9308

创建promethues的secret对象

kubectl create secret generic additional-configs --from-file=prometheus-additional.yaml -n monitoring

更新的话删除,再创建
kubectl delete secret additional-configs -n monitoring

资源对象Promtheus中添加additionalScrapeConfigs 字段

先使用kubectl –n monitoring get Prometheus查看资源名字

然后使用命令kubectl -n monitoring edit Prometheus k8s,其中命令中的k8s是Prometheus这个资源的名字,不同环境中的名字可能不同

...
spec:  
  additionalScrapeConfigs:
    name: additional-configs
    key: prometheus-additional.yaml
...

验证prometheus中是否能看到kafka

访问http://10.255.60.127:30090/targets

正常情况下,此时就可以再prometheus监控页面看到kafka-exporter这个监控项了

image-20230714171359263

3.4.1.3 kafka监控指标

监控指标 等级 说明
kafka_broker_count 三级 Kafka集群的Broker数量
kafka_topic_partition_count 三级 指定Kafka主题的分区数量
kafka_partition_leader 二级 指定Kafka分区的Leader副本ID
kafka_topic_log_size 二级 指定Kafka主题的消息生产情况
kafka_consumer_records_consumed 二级 指定Kafka消费者组的消费速率

3.4.1.4 添加grafana模板

添加kafka的grafana模板,https://grafana.com/grafana/dashboards/7589

image-20230717093546104

3.4.2 redis监控

监控目标:10.255.60.118的redis集群

集群中只需要随便选择一个节点安装redis-exporter即可,不需要所有节点都安装。

3.4.2.1 redis-exporter获取数据

下载redis-exporter及启动

wget https://github.com/oliver006/redis_exporter/releases/download/v1.50.0/redis_exporter-v1.50.0.linux-amd64.tar.gz

tar xzvf redis_exporter-v1.50.0.linux-amd64.tar.gz -C /opt

#直接启动,无密码
./redis_exporter redis//10.255.60.118:6379 &
./redis_exporter -redis.addr 10.255.60.118:6379 &
#有密码
./redis_exporter -redis.addr 10.255.60.118:6379 -redis.password Gioneco2021

编写service服务

#systemctl启动
vim /lib/systemd/system/redis_exporter.service

[Unit]
Description=redis_exporter
Documentation=https://github.com/oliver006/redis_exporter
After=network.target
[Service]
Type=simple
#User=prometheus
ExecStart=/opt/redis_exporter-v1.50.0.linux-amd64/redis_exporter -redis.addr 10.255.60.118:6379 -redis.password Gioneco2021
Restart=on-failure
[Install]
WantedBy=multi-user.target

#启动服务
systemctl daemon-reload
systemctl start redis_exporter
systemctl status redis_exporter
systemctl enable redis_exporter

验证

redis-exporter默认端口是9121,可以直接访问10.255.60.118:9121/metrics看是否有指标输出

3.4.2.2 kube-prometheus中修改配置

修改prometheus-additional.yaml

文件在10.255.60.127的/root/yaml/prometheus目录下

- job_name: redis-exporter
  honor_timestamps: true
  metrics_path: /metrics
  scheme: http
  static_configs:
  - targets:
    - 10.255.60.118:9121

更新secret对象

更新的话删除,再创建
kubectl delete secret additional-configs -n monitoring
kubectl create secret generic additional-configs --from-file=prometheus-additional.yaml -n monitoring

资源对象Promtheus中添加additionalScrapeConfigs 字段

如果配置好kafka-exporter后可省去这个步骤

...
spec:  
  additionalScrapeConfigs:
    name: additional-configs
    key: prometheus-additional.yaml
...

验证

访问http://10.255.60.127:30090/targets,正常情况下可看到redis-exporter监控项

image-20230711172752051

3.4.2.3 redis重要监控指标

监控指标 等级 说明
redis_up 五级 redis服务是否存活
connected_num 三级 redis的连接数
slave_num 三级 slave的数量
master_num 三级 master的个数

3.4.2.4 添加grafana模板

导入redis的grafana 模板ID 763

image-20230717094721130

3.4.3 mysql监控

3.4.3.1 部署mysql-exporter

下载安装包

官方地址:https://github.com/prometheus/mysqld_exporter/releases
#解压
tar -xvzf mysqld_exporter-0.14.0.linux-amd64.tar.gz
mv mysqld_exporter-0.14.0.linux-amd64 mysqld_exporter

mysql中创建用户

CREATE USER 'exporter'@'%' IDENTIFIED BY 'Yh9YKb7P';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';
flush privileges;

验证创建的用户
use mysql
select host,user from user;

创建配置文件

在mysql_exporter文件夹中创建.my.cnf
[client]
user = exporter
password = Yh9YKb7P
host = 10.255.60.121
port = 3306

创建service文件

cd /usr/lib/systemd/system
cat mysqld_exporter.service
[Unit]
Description=https://prometheus.io

[Service]
Restart=on-failure
ExecStart=/root/mysqld_exporter/mysqld_exporter --config.my-cnf=/root/mysqld_exporter/.my.cnf --web.listen-address=:9104

[Install]
WantedBy=multi-user.target

启动及测试

#启动服务
systemctl daemon-reload
systemctl start mysqld_exporter.service
#查看运行状态
systemctl status mysqld_exporter.service
#设置开机启动
systemctl enable mysqld_exporter.service
#测试指标
curl localhost:9104/metrics

3.4.3.2 kube-prometheus中修改配置

修改prometheus-additional.yaml

#添加mysql-exporter项
- job_name: 'mysql-exporter'
  static_configs:
    - targets:
      - 10.255.60.122:9104
      - 10.255.60.123:9104

重建secret

kubectl delete secret additional-configs -n monitoring
kubectl create secret generic additional-configs --from-file=prometheus-additional.yaml -n monitoring

验证

访问http://10.255.60.127:30090/targets查看是否有mysql-exporter监控项

image-20230714110703114

3.4.3.3 添加grafana模板

grafana添加mysql模板:模板号为11323, 7362

image-20230717111512491

3.4.3.4 mysql重要监控指标

指标名 等级 说明
可用性 五级 数据库是否可以正常对外服务
慢查询 三级 耗时较长的查询情况
主从延迟 二级 主从延迟时间
主从状态 三级 主从链路是否正常
连接数 三级 连接到数据库会话的数量,默认1024

3.4.4 minio监控

监控目标:10.255.60.156-10.255.60.159的minio集群,VIP地址为10.255.60.155,我们这里直接监控VIP地址

3.4.4.1 minio配置Prometheus监控

MinIO默认情况下支持Prometheus作为监控,并提供了接口地址/minio/v2/metrics/cluster,用户只需要添加支持prometheus监控的配置即可

修改run.sh

修改/usr/local/minio/bin/run.sh
添加export MINIO_PROMETHEUS_AUTH_TYPE="public"

注意:必须在所有minio节点上修改,然后重启minio

安装mc

wget https://dl.min.io/client/mc/release/linux-amd64/mc -P /usr/local/bin/
chmod +x /usr/local/bin/mc #添加可执行权限

设置别名

mc alias set minio http://10.255.60.155:9000 Minio GionecoTest_2022

mc使用别名生成Prometheus配置

MinIO中的Prometheus端点默认需要身份验证,Prometheus支持使用承载令牌方法对Prometheus抓取请求进行身份验证,mc生成Prometheus配置抓取minio指标的命令如下

mc admin prometheus generate minio

生成的配置如下

- job_name: minio-job
  bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoiTWluaW8iLCJleHAiOjQ4NDI3NDE5NDR9.A4SX7K3vFMzOKVABLMf2n7YXkvK9hFIBmRXfxssaEkBAND1OkFLE-w5MvQ-CWTVJpBuh0zliu5DnZHGlyKTxmw
  metrics_path: /minio/v2/metrics/cluster
  scheme: http
  static_configs:
  - targets: ['10.255.60.155:9000']

3.4.4.2 kube-prometheus中修改配置

修改prometheus-additional.yaml

#添加mc生成的prometheus配置内容
- job_name: minio-job
  bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoiTWluaW8iLCJleHAiOjQ4NDI3NDE5NDR9.A4SX7K3vFMzOKVABLMf2n7YXkvK9hFIBmRXfxssaEkBAND1OkFLE-w5MvQ-CWTVJpBuh0zliu5DnZHGlyKTxmw
  metrics_path: /minio/v2/metrics/cluster
  scheme: http
  static_configs:
  - targets: ['10.255.60.155:9000']

创建secret对象

更新的话删除,再创建
kubectl delete secret additional-configs -n monitoring
kubectl create secret generic additional-configs --from-file=prometheus-additional.yaml -n monitoring

验证

curl 10.255.60.155:9000/minio/v2/metrics/cluster 验证下是否可获得指标
注意:
网页上直接访问会跳转到登录页面,不影响prometheus获取数据

3.4.4.3.添加grafana面板

在grafana页面导入面板id 13502,在scrape_jobs中选择minio-job标签

image-20230712154232968

3.4.4.4 minio重要监控指标

https://zhuanlan.zhihu.com/p/600159070

指标 等级 说明
桶对象计数 三级 现在共有多少个桶
节点运行数 三级 minio集群有多少个节点
可用存储量 三级 目前可用的存储空间

3.4.5 emq监控

监控目标: 10.255.60.146, 登录地址是http://10.255.60.146:18083 账户是admin 密码是public

3.4.5.1 配置emq允许prometheus监控

查看版本

cd /usr/local/emqx/bin
./emqx_ctl status
Node 'emqx@127.0.0.1' is started
emqx 4.0.4 is running

开启emqx_statsd插件

EMQ 3.0以后的版本提供 emqx_statsd插件,用于将系统的监控数据输出到第三方的监控系统中。

进入Emq Web端,左侧选项选择 MANAGEMENT > Plugins > emqx_statsd,点击后面的 Start 按钮开启插件
emqx_statsd 插件内部会启动一个定时器,使其每间隔一段时间便采集 EMQ X 中的监控数据。

修改插件配置文件

vim /etc/emqx/plugins/emqx_statsd.conf
statsd.push.gateway.server = http://192.168.6.***:9091    # Prometheus 的 PushGateway 地址
statsd.interval = 15000             # 推送间隔,单位:毫秒 必须大于0 ,默认 5000

安装pushgateway

下载地址:
https://github.com/prometheus/pushgateway/releases/download/v1.5.1/pushgateway-1.5.1.linux-amd64.tar.gz
解压到指定目录
tar xzvf pushgateway-1.5.1.linux-amd64.tar.gz
mv pushgateway-1.5.1.linux-amd64 /usr/local/pushgateway
后台运行
nohup ./pushgateway > run.log 2>&1 &

验证

curl localhost:9091/metrics   #访问 pushgateway-server:9091/metrics可以看到指标

3.4.5.2 kube-prometheus中修改配置

prometheus-additional.yaml中添加下面配置

job_name: 'pushgateway-emqx'
  scrape_interval: 5s
  honor_labels: true
  static_configs:
    # Pushgateway IP address and port
    - targets: ['10.255.60.146:9091']

更新secret对象

更新的话删除,再创建
kubectl delete secret additional-configs -n monitoring
kubectl create secret generic additional-configs --from-file=prometheus-additional.yaml -n monitoring

稍等一会儿访问http://10.255.60.127:30090/targets,正常情况下可看到pushgateway-emqx监控项

image-20230712175335980

3.4.5.3 添加grafana模板

在模板的import输入框中,直接添加https://grafana.com/grafana/dashboards/17446-emqx/ 即可

image-20230712175621548

3.4.5.4 emq重要监控指标

参考:https://docs.emqx.com/zh/cloud/latest/deployments/prometheus.html#指标详解

指标名 等级 说明
emqx_topics_count 三级 当前主题数
emqx_vm_process_messages_in_queues 三级 消息阻塞总数
emqx_vm_cpu_use 二级 CPU占用数
emqx_subscriptions_shared_count 二级 当前共享订阅数
emqx_subscribers_count 三级 当前订阅者数
emqx_connections_count 三级 当前连接数

3.5 容器状态监控

3.5.1 pod指标

指标名 等级 说明
kube_pod_container_status_restarts_total 三级 pod重启状态
kube_pod_status_phase 三级 pod状态
kube_pod_container_status_waiting_reason 三级 值为0表示在等待状态的容器

3.5.2 deployment指标

指标名 等级 说明
kube_deployment_status_observed_generation 三级 Deployment 生成资源数
kube_deployment_metadata_generation 三级 Deployment 定义资源数
kube_deployment_spec_replicas 资源定义副本数 三级 deployment定义副本数
kube_deployment_status_replicas_available 三级 deployment正在运行副本数
kube_deployment_status_replicas_updated 三级 deployment更新的副本数

3.5.3 statefulset指标

指标名 等级 说明
kube_statefulset_status_replicas_ready 三级 statefulset就绪副本数
kube_statefulset_status_replicas 三级 statefulset当前副本数
kube_statefulset_status_replicas_updated 三级 statefulset更新的副本数
kube_statefulset_replicas 三级 StatefulSet 所需的副本数

3.5.4 daemonset指标

指标名 等级 说明
kube_daemonset_status_number_ready 三级 就绪的 DaemonSet
kube_daemonset_status_desired_number_scheduled 三级 应该调度的 DaemonSet 数量
kube_daemonset_status_number_misscheduled 三级 运行在不该运行的节点状态

3.5.5 添加grafana模板

grafana中添加模板ID: 13105

image-20230717172811020

四. 报警指标

报警级别从高到低依次如下

Disaster > High > Average > Warning > Information > Not classafied

4.1 宿主机资源报警指标

指标名 等级 说明
node down Disaster 节点宕机
HostHighCpuLoad High CPU load is > 80%
HostOomKill High OOM kill detected
Low free space High 某个挂载点剩余空间太少
HostOutOfMemory High 主机内存少于10%报警
HostUnusualNetworkThroughputIn High 网络接收数据库异常
HostUnusualNetworkThroughputOut High 网络发送数据量异常
HostOutOfInodes High 文件句柄数剩余10%报警

4.2 k8s nfs存储相关

指标名 等级 说明
KubernetesPersistentvolumeclaimPending High pvc申请失败
KubernetesVolumeOutOfDiskSpace High nfs存储空间不足
KubernetesVolumeFullInFourDays High nfs存储空间4天内占满
KubernetesPersistentvolumeError High PV申请失败

4.3 k8s 容器状态相关

指标名 等级 说明
KubernetesStatefulsetDown High statefulset服务失败
KubernetesContainerOomKiller High pod 资源不足oom了
KubernetesPodNotHealthy High pod监控检查失败
KubernetesPodCrashLooping Warning pod状态一直crash looping
ContainerKilled Warning 容器丢失超过60秒
ContainerCpuUsage High 容器CPU使用率超过预分配的300%
ContainerMemoryUsage Warning 容器内存使用率超过预分配的90%
ContainerVolumeUsage High 容器存储使用率超过预分配的80%
KubernetesDaemonsetMisscheduled High Daemonset类型pod运行在了污点标签节点上

4.4 k8s基础组件相关指标

指标名 等级 说明
EtcdDown Hight etcd组件失败
KubeSchedulerDown High KubeScheduler组件失败
KubeControllerManagerDown High controllerManager组件失败
KubernetesApiServerErrors High APIserver请求失败率过高
KubernetesApiServerLatency High APIserver请求延迟值过大
KubernetesClientCertificateExpiresNextWeek High Client证书下周过期
KubernetesClientCertificateExpiresSoon High Client证书24小时内过期

4.5 mysql相关指标

指标名 等级 说明
MysqlDown Disaster mysql宕机
MysqlTooManyConnections warning 连接数超过最大值的80%
MysqlSlaveSqlThreadNotRunning Disaster slave服务器没运行
MysqlSlaveReplicationLag warning 主从复制延迟较大
MysqlSlowQueries warning 存在慢查询,影响性能
MysqlRestarted information mysql重启了

4.6 redis相关指标

指标名 等级 说明
RedisDown Disaster redis宕机
RedisMissingMaster Disaster 失去master角色
RedisTooManyMasters Disaster 存在多个master角色
RedisDisconnectedSlaves High 存在未同步复制的slave角色
RedisReplicationBroken High redis丢失了一个slave角色
RedisMissingBackup High redis备份失败
RedisOutOfConfiguredMaxmemory warning redis超过配置的最大内存
RedisTooManyConnections Warning redis连接数过多
RedisRejectedConnections High redis拒绝连接

4.7 emqx服务相关

指标名 等级 说明
subscribersTooMany High 订阅数超过阈值
ConnectTooMany High 连接数过多
emqDown Disaster emqtt服务宕机

4.8 minio相关指标

指标名 等级 说明
minio_cluster_nodes_offline_total High 存在脱机的 MinIO 节点
minio_cluster_disk_offline_total High 存在脱机的磁盘
minioDown Disaster minio服务宕机

4.9 kafka相关指标

指标名 等级 说明
Broker数量预警 High 当Broker数量达到阈值【❤️】时进行预警
消费延迟预警 High 当积压的消息数量达到阈值【>1000】时进行预警
kafkaDown Disaster kafka服务宕机

添加告警配置示例

创建myrule.yaml

apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  name: myrule
  namespace: monitoring
  labels:
    app: prometheus-operator
    heritage: Tiller
    release: prometheus-operator
spec:
  groups:
  - name: my-node-time
    rules:
    - alert: myClockSkewDetected
      annotations:
        message: myClock skew detected on node-exporter {{`{{ $labels.namespace }}`}}/{{`{{ $labels.pod }}`}}. Ensure NTP is configured correctly on this host.
      expr: abs(node_timex_offset_seconds{job="node-exporter"}) > 0.03
      for: 2m
      labels:
        severity: warning

参考:

https://www.cnblogs.com/putaoo/p/17446151.html

alertmanager: prometheus-kube-prometheus-alertmanager
app.kubernetes.io/instance: prometheus-kube-prometheus-alertmanager
app.kubernetes.io/managed-by: prometheus-operator
app.kubernetes.io/name: alertmanager
app.kubernetes.io/version: 0.24.0

posted @ 2023-10-26 10:01  坚强的小蚂蚁  阅读(622)  评论(0编辑  收藏  举报