• ifconfig 查看 etcd 使用的 IP 是否存在


    在该节点上 ping 其他节点 IP,测试是否 ping 通。

    如果 ping 不通,执行步骤(1)(2),检查该节点网络、IP 配置、防火墙配置等。

    如果 ping 通,执行步骤(3)确认告警时间点网络是否断开。

    (1)检查 IP 是否正常:

    ifconfig 查看 etcd 使用的 IP 是否存在,如果不存在,排查 IP 配置丢失原因,常见原因是虚拟机重启后 IP 没有重新配置,导致丢失。

    (2)检查防火墙是否正常

    在 Ruby 用户下查看 etcd 的 IP 和端口: ps ux | grep etcd

    在 root 用户下 iptables -L 命令检查防火墙是否限制了 IP 和端口,如果有限制,去掉防火墙限制。

    (3) 查看 etcd 日志

    进入 Ruby 用户

    cd $GAUSSLOG/cm/etcd

    查看对应时间点的 etcd_xxx.log 日志,如果有如下日志,可能是 etcd 节点间网络断开,或者对端的 etcd 进程 down,导致本端 etcd 连接断开。

    排查网络原因或对端的 etcd 进程是否重启,网络原因可能是网络断开,网卡故障,也有可能是虚拟机故障。

    grpc: Server.processUnaryRPC failed to write status: connection error: desc = "transport is closing"

    rafthttp: lost the TCP streaming connection with peer c797ab3a61e2ea55 (stream MsgApp v2 reader)

    etcdserver: failed to reach the peerURL(https:// X.X.X.X:X) of member c797ab3a61e2ea55 (Get "https://X.X.X.X:X/version": dial tcp X.X.X.X:X: i/o timeout)

    rafthttp: health check for peer c797ab3a61e2ea55 could not connect: dial tcp X.X.X.X:X: i/o timeout (prober "ROUND_TRIPPER_RAFT_MESSAGE")

    处理步骤

    处理步骤同上,已说明。

    负载过重导致 ETCD 服务异常警告

    问题现象

    管控面上报 etcd 服务异常告警,磁盘 IO/CPU/ 内存 很高.

    问题分析及界定

    进入 Ruby 用户

    cd $GAUSSLOG/cm/etcd

    查看对应时间点的 etcd_xxx.log 日志,告警时间点有如下日志,说明 etcd 节点负载过重,磁盘 IO、CPU 等压力大。

    2021-04-09 10:57:40.112936 W | wal: sync duration of 2.00201804s, expected less than 1s === 通常这个表示磁盘 IO 压力大。

    2021-04-09 10:57:40.112993 W | etcdserver: failed to send out heartbeat on time (exceeded the 1s timeout for 2.124414ms, to c8eccd97bed22939)

    2021-04-09 10:57:40.112999 W | etcdserver: server is likely overloaded

    2021-04-09 10:57:43.126444 W | etcdserver: read-only range request "key:\"/Ruby/ignoreNodeNumKey\" " with result "error:context canceled" took too long (1.999877971s) to execute

    cd $GAUSSLOG/cm/cm_agent

    搜索对应时间点的 cm_agent-xxx.log, 如果有如下日志,表示当时磁盘 io 比较高, io util 100 表示磁盘 io 达到 100%

    2021-04-09 11:06:24.047 tid=15822 LOG: device vdb1, tot_ticks 889640579, cputime 1798651342, io util 100

  • 相关阅读:
    springboot集成minio,docker部署
    『C语言』题集 of ⑩
    彻底了解线程池的原理——40行从零开始自己写线程池
    计算机复习
    面试题:Web View如何做测试?
    Error: GlobalConfigUtils setMetaData Fail Cause:java.lang.NullPointerException
    1.2-断言
    基于ssm的美妆产品进销存管理系统的设计与开发-计算机毕业设计源码
    String 和 Char[ ] 作为方法参数的值传递问题
    JVM篇---第九篇
  • 原文地址:https://blog.csdn.net/feidododekefu/article/details/127921042