bk gse agent troubleshooting
服务运行状态及环境检查
- ps -ef | grep gse 有父子进程稳定运行
- netstat -npt | grep gse 与48668 有稳定链接
- ps -ef | grep gse_api 父子进程稳定运行
- ps -ef | grep gse_dba 父子进程稳定运行
- gse_dba、gse_task、gse_api 与 redis 通信正常
- netstat -npt | grep gse_task 检查 gse_task 与 gse_dba 链接是否稳定(注意心跳和任务要有不同的链接)
- gse_dba、gse_task、redis 机器负载,网络流量是否存在瓶颈
排查配置
确认任务结果和心跳是否分离部署
- zk 中若存在 /gse/config/server/dbproxy/heartredis,则表示心跳与任务结果分离
zk 中的配置检查
- 独立的心跳 /gse/config/server/dbproxy/heartredis 节点存在,且包含有效的子节点
- get /gse/config/server/dbproxy/heartredis 可以获取到有效的心跳 gse_dba 监听的 端口数据
- get /gse/config/server/dbproxy/heartredis/{child node} 可以读取到心跳gse_dba 的服务 ip
- /gse/config/server/dbproxy/newall 节点存在,且包含有效的子节点
- get /gse/config/server/dbproxy/newall 获取有效的任务结果 gse_dba 监听的端口数据
- /gse/config/server/dbproxy/newall/{child node} 可以获取到任务结果 gse_dba 的服务 ip
若心跳和任务分离需要重点检查以下服务的配置:
- gse_task 本地配置文件包含以下配置内容:
1
2"heartRedis":true,
"dbproxynodeinzk":"heartredis", - gse_dba 心跳,本地配置文件包含以下配置内容:
1
2"dbproxyport":58860,
"dbproxynodeinzk":"heartredis", - gse_api 的本地配置文件包含以下配置内容:
1
2"heartrediszkpath":"/gse/config/server/dbproxy/heartredis",
"dbproxynodeinzk":"heartredis", - gse_dba 任务的本地配置文件中不应包含以下配置
1
"dbproxynodeinzk":"heartredis",
- gse_alarm 本地配置文件包含以下配置内容(若无会影响agent状态告警):
1
2"heartrediszkpath":"/gse/config/server/dbproxy/heartredis",
"dbproxynodeinzk":"heartredis"
- gse_task 本地配置文件包含以下配置内容:
若心跳和任务结果未分开存储 则不应包含上述第3点中 a,b,c ,e中说明的配置且任务的gse_dba应符合 d 的标准
若心跳和任务结果未分开存储 ,则 gse_task, gse_api 仅通过 /gse/config/server/dbproxy/newall 节点发现任务和心跳的 gse_dba 及redis 地址
gse_task debug级别日志
这个日志查 task 链接的任务结果的 dba 和 reids:connect db proxy server
这个日志查 task 链接的心跳数据的 dba 和 reids:connect heart db proxy server
redis 里查心跳数据
- 登陆存心跳的 redis:getbit agentalive_cloudid_{云区域id} {agent ip 的数值} ,0 表示离线,1表示存活。
- 登陆存心跳的 redis: get heart_{云区域id} 获取此区域下的 agent 最新心跳数据。
典型案例参考
job 可以看到 agent 状态正常,但是节点管理上看到不正常
安装完 gse agent 后 ,job 看到的 agent 状态是正常的且可以正常执行作业,但是节点管理看到的 agent 状态是异常的。
第1点的现象是因为节点管理会查询 GSEAgent 状态 周期是15分钟一次。
若遇到上述第1点的情况,可以首先通过 job 查看 agent 状态是否稳定,如果稳定可与节点管理了解最新的 agent 状态同步策略。
如果 gse_dba 监听端口更新后 zk 里的数据未刷新
删除(心跳)节点 :/gse/config/server/dbproxy/heartredis
删除(任务)节点 :/gse/config/server/dbproxy/newall
重启 gse_dba
注:以上如果仅修改 gse_dba(心跳、任务)其中一项,那么仅操作 对应的节点和信息即可。
bk gse agent troubleshooting