应急预案:天基控制台无法打开或者显示异常的应急处理方法

应急预案:天基控制台无法打开或者显示异常的应急处理方法

更新时间:2020-06-09 10:23:29

1. 概述

本文主要介绍在专有云V3环境中,天基控制台无法打开或者显示异常的应急处理方法。

1.1. 适用范围

  • 专有云V3企业版,天基
    说明:适用于专有云V3.0.0~V3.11.0环境。

1.2. 用户告知

  • 适用平台:x86、ARM
  • 授权级别:L2(二线技术支持工程师)
  • 临时或固化方案:固化
  • 操作复杂度:低
  • 预估执行时长:30分钟
  • 业务影响:否
  • 风险等级:低
    说明:由于在问题修复之前环境就已经故障,方案中涉及的修复操作没有风险。

2. 问题描述

在专有云V3环境中,涉及到tianji的变更操作,或者在机房断电恢复的情况下,可能会导致访问天基控制台时报错或者显示异常。可能显示异常报错的现象如下:

  • 天基控制台无法登录,或无法正常显示。
  • 天基控制台上显示“当前API Server状态错误”错误信息。
  • 天基控制台显示异常,报“API Server is reseted”错误,左侧导航栏无信息。
  • 终态计算时间不一致。

3. 解决方案

3.1. 环境检查

登录天基控制台,确认存在问题描述中的其中一种现象。

3.2. 实施步骤

天基控制台无法登录

天基控制台无法登录,或无法正常显示的情况,具体的修复操作如下:

  1. 使用域名及OPS1的IP测试是否可以登录天基控制台。
    说明:无法登录天基控制台的常见情况为鉴权未关闭。
  2. 登录OPS1服务器,依次执行以下命令,检查鉴权服务是否关闭。
    说明:显示false表示未开启,true表示开启。
    /cloud/tool/tianji/tianji_clt authmode --get --config /cloud/data/bootstrap_controller/BootstrapController#/bootstrap_controller/tianji_dest.conf
    系统显示类似如下。
  3. 若是鉴权服务已经开启,则参见以下KB文档,关闭天基鉴权服务。若使用该方案无法成功关闭,可能是鉴权组件服务异常,请联系阿里云技术支持进行处理,先恢复鉴权组件。
    • KB 88411 通用方案:专有云V3环境启动和停止天基控制台的权限认证功能

天基控制台显示API Server相关报错

  1. 登录OPS1服务器,执行以下命令,批量检查OPS1~3服务器的磁盘使用情况是否异常。如有异常,需要先清理磁盘。
    tj_show -r tianji.APIServer# |xargs -i -n1 sh -c  'echo {}; ssh {} df -Th | awk "{if(\$6>91)print \$7,\$6}"|grep -v SSD;echo'
    系统显示类似如下。
  2. 登录OPS1服务器,依次执行以下命令,批量检查final_state_synchronizer进程是否正常运行。
    tj_show -r tianji.APIServer# |xargs -i -n1 sh -c 'echo {}; ssh {} ps -ef | grep -i final_state;echo'
    系统显示类似如下,确认运行正常。
  3. 执行以下命令,批量检查data_synchronizer进程是否正常运行。
    tj_show -r tianji.APIServer# |xargs -i -n1 sh -c 'echo {}; ssh {} ps -ef | grep data_synchronizer$;echo'
    系统显示类似如下,确认运行正常。
  4. 执行以下命令,批量检查cstore_manager进程是否正常运行。
    tj_show -r tianji.APIServer# |xargs -i -n1 sh -c 'echo {}; ssh {} ps -ef | grep cstore_manager;echo'
    系统显示类似如下,确认运行正常。
  5. 依次执行以下命令,检查pangulogtest是否存在问题。
    cd /apsara/cloud/app/tianji/ConfigStore#/config_store/current
    ./pangulogtest
    系统显示类似如下。
  6. 若批量检查发现进程正常运行,pangulogtest也正常,则执行以下命令,查看api_server主节点位置。
    curl 'localhost:7070/api/v3/column@mtime/m.id,m.sr.isPrimary?m.sr.id=tianji.APIServer%23'
    系统显示类似如下,返回结果中m.sr.isPrimary参数值为true的机器即为api_server主节点服务器。
  7. 登录api_server主节点的服务器,可以使用kill命令结束api_server进程。
    注意:不要使用-9参数强制结束进程。
    ps -ef |grep api_server
    kill [$API_Server]
    说明:[$API_Server]为api_server进程ID。
  8. 结束进程后,重新检查api_server进程是否拉起,天基控制台中APIServer相关报错是否消失。
  9. 若发现进程未启动或频繁重启,请联系阿里云技术支持,分析相应进程日志,具体日志文件路径如下:
    • /cloud/app/tianji/APIServer#/api_server/current/log目录下的api_server.FATAL.logapi_server.ERROR.logapi_server.INFO.log日志文件。
    • /cloud/app/tianji/ConfigStore#/config_store/current/log目录下的cstore_manager.INFO.logcstore_manager.ERROR.logcstore_manager.WARNING.log日志文件。
    • /cloud/app/tianji/TianjiDataSynchronizer#/data_synchronizer/current/log目录下的data_synchronizer.INFO.logdata_synchronizer.ERROR.log日志文件。
    • /cloud/app/tianji/TianjiDataSynchronizer#/final_state_synchronizer/current/log目录下的final_state_synchronizer.FATAL.logfinal_state_synchronizer.INFO.logfinal_state_synchronizer.ERROR.log日志文件。

天基控制台报错且TJDB同步时间和终态计算时间不一致

如果天基控制台报错,且TJDB同步时间和终态计算时间不一致,请重启data_synchronizer和final_state_synchronizer进程。

注意:优先结束m.sr.isPrimary参数值为true节点的相关进程。若无法解决时,需要结束另外2个节点的进程,在重启过程中确认该进程已经成功启动后,再结束第二个节点的进程。

  1. 登录OPS1服务器,执行以下命令,查看返回结果中m.sr.isPrimary参数值为true的服务器。
    curl 'localhost:7070/api/v3/column@mtime/m.id,m.sr.isPrimary?m.sr.id=tianji.TianjiDataSynchronizer%23'
    系统显示类似如下。
  2. 登录上一步获取的服务器,依次执行以下命令,查看进程。
    ps -ef | grep data_synchronizer
    ps -ef | grep final_state_synchronizer
    系统显示类似如下。
  3. 依次执行以下命令,结束进程。
    kill [$Data_Synchronizer]
    kill [$Final_State_Synchronizer]
    说明
    • [$Data_Synchronizer_ID]为data_synchronizer进程ID。
    • [$Final_State_Synchronizer_ID]为final_state_synchronizer进程ID。
  4. 确认data_synchronizer主节点被切换,成功启动新的data_synchronizer和final_state_synchronizer进程之后,检查控制台上时间不一致的报错是否消失。
  5. 若发现重新启动data_synchronizer和final_state_synchronizer进程后,问题还未修复,请联系阿里云技术支持分析相应进程日志,具体日志文件路径如下:
    • /cloud/app/tianji/TianjiDataSynchronizer#/data_synchronizer/current/log目录下的data_synchronizer.INFO.logdata_synchronizer.ERROR.log日志文件。
    • /cloud/app/tianji/TianjiDataSynchronizer#/final_state_synchronizer/current/log目录下的final_state_synchronizer.FATAL.logfinal_state_synchronizer.INFO.logfinal_state_synchronizer.ERROR.log日志文件。

3.3. 结果验证

通过关闭鉴权,重新启动data_synchronizer、final_state_synchronizer或者api_server进程等操作之后,天基控制台登录和显示恢复正常。

4. 回滚方案

无需回滚,操作前的情况已是非正常状态。