重点监控指标

指标分类

  • 衰弱状态
  • USE 办法(零碎)

    • 使用率
    • 饱和度
    • 谬误
  • RED 办法(利用)

    • 申请速率
    • 错误率
    • 提早
指标分类指标释义
衰弱状态实例衰弱状态etcd是一个分布式系统,由多个成员节点组成。监控etcd成员节点的状态能够帮忙你理解集群中节点的健康状况,发现掉线或者异样节点。
衰弱状态主从状态
衰弱状态etcd leader切换统计频繁的领导者变更会重大影响 etcd 的性能。这也意味着领导者不稳固,可能是因为网络连接问题或对 etcd 集群施加的过载负荷导致的。
衰弱状态心跳etcd集群中的节点通过发送心跳来放弃彼此之间的连贯。监控失落的心跳能够帮忙你发现etcd节点之间的通信问题或者网络提早。
RED 办法QPS
RED 办法申请错误率监控etcd的错误率能够帮忙你发现etcd操作中的潜在问题。高错误率可能表明集群遇到了故障或其余异常情况。
RED 办法申请提早监控etcd的申请提早能够帮忙你理解API申请的解决工夫。较高的提早可能表明etcd正面临负载压力或性能问题。
RED 办法磁盘同步(WAL/DB fsync)耗时高磁盘操作提早(wal_fsync_duration_seconds或backend_commit_duration_seconds)通常示意磁盘问题。它可能会导致高申请提早或使群集不稳固。
RED 办法同步提早如果集群失常运行,已提交的提案应该随着工夫的推移而减少。重要的是要在集群的所有成员中监控这个指标;如果单个成员与其领导节点之间存在继续较大的滞后,这表明该成员运行迟缓或存在异样。
RED 办法提案失败次数失败的提案通常与两个问题相干:与领导选举相干的暂时性故障或因为集群丢失法定人数而导致的较长时间的停机。
RED 办法快照解决工夫etcd定期创立快照以备份数据。监控快照解决工夫能够帮忙你理解etcd备份的性能,确保备份工作可能及时实现。
RED 办法watcher 数量监控etcd集群以后连贯到etcd的客户端数量。如果连接数过高,可能须要调整etcd的配置或者减少集群的容量。
USE 办法CPU 使用率
USE 办法内存使用量
USE 办法关上文件数
USE 办法存储空间使用率监控etcd存储空间的使用率能够帮忙你确保etcd有足够的空间存储配置数据。如果使用率靠近或达到下限,可能须要思考扩大存储容量或者清理无用的数据。

应用 kube-prometheus 收集 etcd 指标

http 模式(举荐)

批改--listen-metrics-urls

    #- --listen-metrics-urls=http://127.0.0.1:2381    - --listen-metrics-urls=http://127.0.0.1:2381,http://ip:2381

部署

helm install monitoring -n cattle-prometheus --set kubeEtcd.service.port=2381 --set kubeEtcd.service.targetPort=2381 --set prometheusOperator.admissionWebhooks.patch.image.sha=null ./

https 模式

新增 etcd secret

kubectl create secret generic etcd-certs -n cattle-prometheus --from-file=/etc/kubernetes/pki/etcd/ca.crt --from-file=/etc/kubernetes/pki/etcd/healthcheck-client.crt --from-file=/etc/kubernetes/pki/etcd/healthcheck-client.key

部署

helm install monitoring -n cattle-prometheus  --set kubeEtcd.serviceMonitor.scheme=https --set kubeEtcd.serviceMonitor.caFile=/etc/prometheus/secrets/etcd-certs/ca.crt --set kubeEtcd.serviceMonitor.certFile=/etc/prometheus/secrets/etcd-certs/healthcheck-client.crt --set kubeEtcd.serviceMonitor.keyFile=/etc/prometheus/secrets/etcd-certs/healthcheck-client.key --set prometheus.prometheusSpec.secrets={etcd-certs} --set prometheusOperator.admissionWebhooks.patch.image.sha=null ./

大盘展现

Grafana 大盘: https://github.com/clay-wangzhi/grafana-dashboard/blob/master/etcd/etcd-dash.json
导入即可

<img src="https://clay-blog.oss-cn-shanghai.aliyuncs.com/img/image-20230616180204033.png" alt="image-20230616180204033" style="zoom:67%;" />

<img src="https://clay-blog.oss-cn-shanghai.aliyuncs.com/img/image-20230616180334752.png" alt="image-20230616180334752" >

巡检

实现集群部署、理解成员治理、构建好监控及告警体系并增加好定时备份策略后,这时终于能够释怀给业务应用了。然而在后续业务应用过程中,你可能会遇到各类问题,而这些问题很可能是metrics监控无奈发现的,比方如下:

  • etcd集群因重启过程、节点等呈现数据不统一;
  • 业务写入大 key-value 导致 etcd 性能骤降;
  • 业务异样写入大量key数,稳定性存在隐患;

这时就须要巡检。

参考ServiceMonitor和EtcdBackup机制,同样能够通过CRD的形式形容此巡检工作,而后通过相应的Operator实现此巡检工作。

参考链接:

datadog etcd 指标

etcd 实战课 | 极客工夫 唐聪