跳到主要内容

ONES系统后端服务Checklist

0. 文档目标

10~20 分钟快速判断“后端是否整体正常、哪条链路异常、是否需要升级到日志深挖”。

1 进入环境与确认版本

# 进入运维容器
ones-ai-k8s.sh

# 查看版本(任选)
head config/public.yaml
# 或前端接口: https://<baseurl>/project/api/project/version

2 全局存活检查(第一层)

# 1. 看节点和命名空间
kubectl get node
kubectl get ns

# 2. 看 ones 命名空间 pod
kubectl -n ones get po

# 3. 快速筛异常 pod(非 Running/Completed)
kubectl -n ones get po | grep -viE "Running|Completed"
# 或全局看异常
kubectl get po -A | grep -viE "Running|Completed"

判定:

  • Running/Completed 为主:进入下一步链路检查
  • 出现 Pending / CrashLoopBackOff / ImagePullBackOff / OOMKilled / Evicted:先查该 Pod 的 events+logs(见第 4 步)

3 入口链路检查(网关 -> 核心服务)

# 从集群看网关组件
kubectl -n ones get po | grep -Ei "ingress|apisix|project-web|project-api"

如果可以在服务器本地 curl(有域名/hosts):

curl -I https://<baseurl>
curl -s https://<baseurl>/project/api/project/version

判定:

  • 网关 pod 正常 + version 接口可返回:入口链路基本通
  • 若 50x / 超时:重点看 ingress/apisix/project-web/project-api 日志

4 业务链路关键模块检查(第二层)

按文档里的“模块链路”重点看这些:

# 项目核心
kubectl -n ones get po | grep -Ei "project-api|project-web|rabbitmq|redis|mysql"

# Wiki 协同
kubectl -n ones get po | grep -Ei "wiki-api|wiz"

# 搜索链路
kubectl -n ones get po | grep -Ei "kilob-sync|tikv|tidb|binlog-event-sync"

# 审计链路
kubectl -n ones get po | grep -Ei "audit-log|ones-canal|kafka|clickhouse|binlog-event-sync"

# Performance 链路
kubectl -n ones get po | grep -Ei "performance|ones-bi-sync"

# 插件/开放平台(如启用)
kubectl -n ones get po | grep -Ei "ones-platform-api|plugin-runtime|plugin-service-proxy"

判定:

  • 每条已启用链路核心组件均 Running 且无频繁重启(RESTARTS 不持续增长)= 后端基本健康
  • 某条链路缺组件/异常重启 = 对应功能(搜索、审计、报表等)高风险

5 异常 Pod 标准排查动作(第三层)

对异常 Pod 按固定三板斧:

# 1) 事件(最先看)
kubectl get event -A
kubectl -n <ns> describe po <pod>

# 2) 当前日志
kubectl -n <ns> logs <pod> --tail=200

# 3) 上一次崩溃前日志
kubectl -n <ns> logs <pod> --previous --timestamps --tail=200

# 多容器时
kubectl -n <ns> logs <pod> -c <container> --tail=200
kubectl -n <ns> logs <pod> -c <container> --previous --timestamps --tail=200

# Pod 级 events(按对象过滤)
kubectl -n <ns> get events \
--field-selector involvedObject.kind=Pod,involvedObject.name=<pod> \
--sort-by=.lastTimestamp

常见状态直连处理方向:

  • Pending:资源不足 / PVC / 调度约束
  • ImagePullBackOff:镜像名、仓库连通、凭证
  • CrashLoopBackOff:应用配置、依赖服务、健康探针
  • OOMKilled:内存限额/节点资源

6 资源与可观测补充检查

# 节点资源
kubectl top node

# Pod 资源(集群支持 metrics-server 时)
kubectl -n ones top po

如果你们开启了日志/可观测组件,再补:

kubectl get pod -n ones-telemetry
# 或旧版
kubectl get po -A | grep -E "ones-logging-statefulset|fluent-bit"

7 需要交付给 ONES 支持时的日志打包(第四层)

最实用是按模块先抓运行日志:

# 示例:project-api
kubectl logs -n ones -l app=project-api -c project-api > /tmp/project-api.log
kubectl logs -n ones -l app=project-api -c project-api --previous --timestamps > /tmp/project-api-previous.log

按组件目录打包(/var/log/pods):

cd /var/log/pods
ls | grep -e project-api -e rabbitmq -e redis | xargs tar -czvf /tmp/project-log.tar.gz

最终“正常”判定标准(建议)

满足以下 5 条即可判“后端运行正常”:

  1. ones 命名空间无持续异常 Pod(允许极少量 Completed job)
  2. 入口链路(ingress/apisix/project-web/project-api)连通,version 接口可返回
  3. 核心链路(project-api + mysql + redis + rabbitmq)正常
  4. 已启用的扩展链路(wiki / search / audit / performance / plugin)对应组件 Running
  5. 日志无持续致命错误(重启风暴、连接拒绝、超时雪崩、OOM 连发)

附件1:自动化脚本

如需自动执行以上检查,可使用:

curl -O https://res.ones.pro/script/skills/ones-backend-healthcheck-cli/scripts/ones_backend_healthcheck.sh
bash ones_backend_healthcheck.sh
或者:
BASEURL="http://172.16.80.61:30011" bash ones_backend_healthcheck.sh

附件2:ONES巡检工具

也可采用ONES巡检工具进入更深入的检查

# 工具下载
ARM64 bf13c2ba04557a2a03bb6ae73795bcf1 https://res.ones.pro/script/oinspect-arm64-v1.0.0.tar.gz
AMD64 (X86) d724337eb8aab435bb296837b597eb82 https://res.ones.pro/script/oinspect-amd64-v1.0.0.tar.gz
# 使用说明
curl -O https://res.ones.pro/script/oinspect-amd64-v1.0.0.tar.gz
tar zxvf oinspect-amd64-v1.0.0.tar.gz
chmod a+x oinspect-amd64-v1.0.0
./oinspect-amd64-v1.0.0 audit