热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

实例解读丨关于GaussDBETCD服务异常

摘要:本文通过对ETCD服务异常问题分析,代码展示解决方案。本文分享自华为云社区《【实例状态】GaussDBETCD服务异常》,作者:酷哥。首先确认是否是虚拟机、网络故障虚

实例解读丨关于GaussDB ETCD服务异常

摘要:本文通过对ETCD服务异常问题分析,代码展示解决方案。

本文分享自华为云社区《【实例状态】GaussDB ETCD服务异常》,作者:酷哥。

首先确认是否是虚拟机、网络故障

虚拟机故障导致ETCD服务异常告警

问题现象

管控面上报etcd服务异常告警,虚拟机发生重启,热迁移、冷迁移,HA等动作。

问题分析及界定

在告警信息中找到实例ID、节点ID、虚拟机ID,在管控面查看虚拟机状态是否正常,能否正常登录,

如果虚拟机异常无法登录,联系IaaS技术支持修复虚拟机。

检查虚拟机是否发生过重启,热迁移、冷迁移、HA等动作,例如内存、网卡等问题引起热迁移。

处理步骤

联系IaaS技术支持修复虚拟机,确认虚拟机故障原因,例如内存、网卡等问题引起热迁移。

网络故障导致ETCD服务异常告警

问题现象

管控面上报etcd服务异常告警,虚拟机无法登录或ping通其他节点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 ":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

处理步骤

1、在管控面查看该节点当时磁盘IO、CPU、内存监控指标是否很高,

示例1:数据盘写延时在16:00左右升高,影响etcd状态。

示例2: etcd故障时刻,cpu、内存、磁盘写延时都有增长,尤其是磁盘写延时很明显,需要分析磁盘写延时升高的原因。

2、如果故障现场还在: iostat -mx 1 查看磁盘IO状态,top和free命令查看cpu、内存使用情况, 分析磁盘IO高、CPU高,内存高的原因。

3、root用户查看该节点的系统日志, cd /var/log, 查看该时间点message日志是否有异常记录。例如:节点内存耗尽了,分析占用内存的原因,是否内存泄漏等。

如果仍无法确认原因,联系华为工程师。

etcd进程故障导致ETCD服务异常告警

问题现象

etcd进程down、重启,管控面上报etcd服务异常告警

问题分析及界定

登陆故障etcd节点, 进入Ruby用户,执行命令ps ux | grep etcd, 查看etcd进程是否在运行。

如果进程在,查看etcd进程启动时间,告警时是否重启过,联系华为工程师确认重启原因。

如果进程不在,查看etcd无法启动原因:

(1)cd $GAUSSLOG/bin, 查看目录下是否有cluster_manual_start 和 etcd_manual_start 两个文件,

如果有表示集群被停止,确认停止集群的原因,之后启动集群,定位结束。

(2)cd $GAUSSHOME/bin 查看目录下是否存在etcd这个文件,文件权限是否正确,确认文件不存在或权限不正确的原因。

(3)检查etcd的数据目录所在磁盘是否满了或者故障,etcd目录如下:cm_ctl query -Cvipd查看

检查etcd的数据目录所在磁盘是否满了或者目录权限不正确(正确是700)或者故障,

如果磁盘满,检查占用磁盘的文件并清除或者转存到其他盘,如果是etcd本身的文件占满,联系华为工程师分析原因。

如果目录权限不正确,修改为正确的目录权限。如果是磁盘故障,联系IaaS技术支持分析定位。

处理步骤

参照上述处理,如果不是以上原因,请联系华为工程师

OM接口无法正确返回结果导致ETCD服务异常告警

问题现象

管控面上报etcd服务异常告警, 管控无法获取集群状态

问题分析及界定

查看管控面是否获取集群状态成功,是否获取空消息,联系华为工程师分析定位。

cd $GAUSSLOG/om/

查看gs_om-xxx.log,是否有如下异常日志

例如: The status file does not exist. Path: /usr/local/temp/local_status_1611355718.58.dat.

处理步骤

参照上面描述步骤。

 

点击关注,第一时间了解华为云新鲜技术~


推荐阅读
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Redis API
    安装启动最简启动命令行输入验证动态参数启动配置文件启动常用配置通用命令keysbdsize计算key的总数exists判断是否存在delkeyvalue删除指定的keyvalue成 ... [详细]
  • 进入配置文件目录:[rootlinuxidcresin-4.0.]#cdusrlocalresinconf查看都有哪些配置文件:[rootlinuxid ... [详细]
  • 我创建了一个新的AWSSSO(使用内部IDP作为身份源,因此不使用ActiveDirectory)。我能够登录AWSCLI、AWSGUI,但 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
author-avatar
lrz76597
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有