INFO-中台故障排查

适用模块
全平台
具体说明
当客户环境服务出现故障时,如无法直接定位故障原因,应优先恢复服务,保障客户业务连续性,但同时也需要保留故障现场供研发进行故障原因分析;
紧急恢复
1 当客户反馈服务异常后,应登陆异常服务所在主机,确认服务是否确实已经不存在;
2 如服务进程已不存在,则通过easyops启动该服务;
3 如服务进程仍然存在,且根据日志无法快速定位原因,则打印jstak和jmap信息后,通过后台手动kill该进程,并删除服务目录下pid文件;然后通过easyops启动服务
4. 根据进程关键字,通过ps -ef|grep "xxx"查找出服务对应进程编号,然后执行以下脚本即可;
5. 导出文件默认为当前路径,执行脚本前需注意当前磁盘剩余空间是否足够
# dump_stack.sh 
# 拷贝本段代码至主机保存为sh脚本,使用root用户执行即可;
#!/bin/bash
set -e
if [[ $#==0 ]];then
  echo "Usage: $@ pid_number!"
  exit 0
fi;
## 获取用户名
if ps -p $1 >/dev/null; then
  user=`ps -o user= -p $1`
else
  echo ${1}" process is not running!"
  exit 1
fi
su -c "/usr/easyops/jdk8/bin/jstack -l ${1} >jstack_${1}.log"  $user
su -c "/usr/easyops/jdk8/bin/jmap -dump:format=b,file=heapdump_${1}.bin ${1}" $user
echo "jstack and jmap already dump,please kill process by command: kill -9 ${1} and del the pid file in pid folder"

作者:Semon