bk gse agent troubleshooting

服务运行状态及环境检查

  1. ps -ef | grep gse 有父子进程稳定运行
  2. netstat -npt | grep gse 与48668 有稳定链接
  3. ps -ef | grep gse_api 父子进程稳定运行
  4. ps -ef | grep gse_dba 父子进程稳定运行
  5. gse_dba、gse_task、gse_api 与 redis 通信正常
  6. netstat -npt | grep gse_task 检查 gse_task 与 gse_dba 链接是否稳定(注意心跳和任务要有不同的链接)
  7. gse_dba、gse_task、redis 机器负载,网络流量是否存在瓶颈

排查配置

  1. 确认任务结果和心跳是否分离部署

    • zk 中若存在 /gse/config/server/dbproxy/heartredis,则表示心跳与任务结果分离
  2. 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
  3. 若心跳和任务分离需要重点检查以下服务的配置:

    • 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"
  4. 若心跳和任务结果未分开存储 则不应包含上述第3点中 a,b,c ,e中说明的配置且任务的gse_dba应符合 d 的标准

  5. 若心跳和任务结果未分开存储 ,则 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 里查心跳数据

  1. 登陆存心跳的 redis:getbit agentalive_cloudid_{云区域id} {agent ip 的数值} ,0 表示离线,1表示存活。
  2. 登陆存心跳的 redis: get heart_{云区域id} 获取此区域下的 agent 最新心跳数据。

典型案例参考

job 可以看到 agent 状态正常,但是节点管理上看到不正常

  1. 安装完 gse agent 后 ,job 看到的 agent 状态是正常的且可以正常执行作业,但是节点管理看到的 agent 状态是异常的。

  2. 第1点的现象是因为节点管理会查询 GSEAgent 状态 周期是15分钟一次。

  3. 若遇到上述第1点的情况,可以首先通过 job 查看 agent 状态是否稳定,如果稳定可与节点管理了解最新的 agent 状态同步策略。

如果 gse_dba 监听端口更新后 zk 里的数据未刷新

  1. 删除(心跳)节点 :/gse/config/server/dbproxy/heartredis

  2. 删除(任务)节点 :/gse/config/server/dbproxy/newall

  3. 重启 gse_dba

  4. 注:以上如果仅修改 gse_dba(心跳、任务)其中一项,那么仅操作 对应的节点和信息即可。

作者

Sony Dog

发布于

2022-08-09

更新于

2023-12-26

许可协议

CC BY-NC-SA 4.0