【应用场景】
集群出现故障使用该工具诊断出集群故障点并给出集群修复方案,梳理指定时间点集群故障时间线。
【参数说明】
python gs_hastatuscheck.py [-s 6001] [-f 2021-12-12] [-t 2021-12-21] [–local]
-s 指定需要诊断的主实例号,可同时指定多对实例(比如 -s “6001|6003″),若不指定则诊断集群所有实例
-f 梳理集群故障点开始时间,指定格式为:年-月-日(2021-12-12),若不指定默认从现有最早日志开始梳理
-t 梳理集群故障点结束时间,指定格式为:年-月-日(2021-12-12),若 不指定默认梳理至最新日志
–local 在本地日志梳理集群故障时间线,若不指定则默认在主备从集群环境运行。该模式下有以下约束:
1、需要将日志收集到本地并按照以下方式进行命名(以6001为例):
dn_6001
6001实例日志
cma_6001
dn_6002
6002实例日志
cma_6002
dn_3002
3002实例日志
cma_3002
2、在当前路径生成stat_file,文件内容为需要梳理实例的拓扑,以6001为例:
1 h61 6001 /srv/BigData/mppdb/data1/master1 P Primary Normal | 2 h63 6002 /srv/BigData/mppdb/data1/slave1 S Down Manually stopped | 3 linux18065 3002 /srv/BigData/mppdb/data1/dummyslave1 R Secondary Normal
注:以上参数均可缺省,全部参数缺省情况下代表在集群模式下诊断所有实例日志,在实例所有日志范围内进行诊断并输出实例故障时间线。
【结果说明】
输出结果有两部分:
1、若指定实例有dn实例非normal状态,输出检测到故障日志与建议修复方案,若实例均normal则不会有该部分信息输出,以6001为例比如:
————————————–6001 error message start————————————————-
invalid argument xxx
————————————–6001 error message end————————————————
————————————-6001 fix message start —————————————————
check 6001 postgresql.conf
————————————–6001 fix message end————————————————–
2、在本地输出指定实例指定时间段故障信息,每个实例会产生一个日志结果文件以主实例编号-备实例编号.log命名,比如6001_6002.log,文件内容格式如下:
时间 模块 日志信息
2021-12-12 12:12:12.1234 dn_6001 xxxx switchover
2021-12-12 12:12:12.1234 cma_6001 xxxx switchover
2021-12-12 12:12:12.1234 dn_6002 xxxx switchover
注:模块命名规则如下:dn_实例编号、cma_实例编号代表对应实例日志以及对应实例的cma日志
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/316746.html