etcd集群常见日志

1、节点失去领导者
{"level":"info","ts":"2024-05-07T01:54:04.948Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 9afce9447872453 lost leader 5ee9c643fc08f96b at term 52"}

这条日志表明节点 9afce9447872453 丢失了它的leader 5ee9c643fc08f96b,这通常发生在领导者无法响应其他节点的心跳或请求时。 

etcd可能在以下情况下失去leader:

  1. 网络分区:当etcd集群中的节点因为网络问题被分割成两个或多个分区,且其中一个分区没有包含多数节点时,这个分区中的leader会失去其领导地位,因为无法获得足够多的节点来达成共识。

  2. 磁盘性能问题:如果etcd节点的磁盘性能不足,导致fdatasync操作缓慢,超过etcd follower的选举超时时间(election timeout,默认1000ms),则其他节点会开始新一轮的leader选举。

  3. 节点故障:etcd集群中的leader节点如果发生故障,比如服务器崩溃或软件故障,那么集群会检测到该故障并开始新的leader选举。

  4. 心跳机制失效:Raft通过心跳机制来维持leader的地位。如果leader节点无法定期发送心跳给follower节点,follower节点在选举超时后会发起新的leader选举。

  5. 集群配置错误:集群配置错误,如节点间无法相互通信,也可能导致leader选举失败或leader丢失。

  6. 集群成员变更:在添加或移除集群成员时,如果操作不当,可能会导致leader失去其地位。

  7. 数据损坏:如果etcd的数据损坏,可能会导致集群无法正常工作,执行etcdctl命令失败,需要进行集群恢复操作。

  8. 大于n/2个节点故障:如果集群中超过一半的节点发生故障,那么集群将无法正常工作,leader也会失去其地位。

2、开始新的选举
{"level":"info","ts":"2024-05-07T01:54:04.948Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"9afce9447872453 is starting a new election at term 52"} 

由于丢失了领导者,节点 9afce9447872453 开始了一个新的选举过程。在 Raft 协议中,选举过程包括预投票(PreVote)和投票(Vote)阶段。

3、节点成为候选者
{"level":"info","ts":"2024-05-07T01:54:04.948Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"9afce9447872453 became pre-candidate at term 52"}

节点 9afce9447872453 成为了一个预候选者(pre-candidate),这是选举过程的第一步,节点会请求其他节点的预投票。

4、发送预投票请求
{"level":"info","ts":"2024-05-07T01:54:04.948Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"9afce9447872453 [logterm: 52, index: 456617084] sent MsgPreVote request to 2fa50bf947c1df3a at term 52"}

节点 9afce9447872453 向另一个节点 2fa50bf947c1df3a 发送了一个预投票请求。这是为了确认是否有其他节点已经在一个更高的任期(term)上。

5、接收预投票响应
{"level":"info","ts":"2024-05-07T01:54:04.948Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"9afce9447872453 received MsgPreVoteResp from 9afce9447872453 at term 52"}

节点 9afce9447872453 接收到了它自己的预投票响应,这是预投票过程的一部分。

6.选举超时
{"level":"warn","ts":"2024-05-07T01:54:17.333Z","caller":"etcdserver/v3_server.go:852","msg":"timed out waiting for read index response (local node might have slow network)","timeout":"7s"}

这个警告表明在尝试进行线性化读取时,节点在等待 ReadIndex 响应时超时了。这可能是由于网络问题导致的通信延迟,也可能是由于节点性能问题。

7.健康检查失败
{"level":"warn","ts":"2024-05-07T01:54:17.332Z","caller":"etcdhttp/metrics.go:173","msg":"serving /health false; no leader"} 

这条日志表明 etcd 集群的健康状况检查失败,原因是没有领导者。这通常意味着集群无法处理请求,直到新的领导者被选举出来。

8、快照丢失,数据损坏
recovering backend from snapshot error:database snapshot file path error:snap:snatshot file doesn't exists

从日志可以看出是etcd数据丢失导致节点etcd无法正常启动,基本就可以确定是snap文件损坏,或者遗失了,需要针对报错节点做数据恢复,参考:etcd常见运维事件-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

alden_ygq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值