ONES故障处理
提示
本文介绍关于 ONES 常见场景故障处理及解决方案。
本文目录
| 类别 | 内容 |
|---|---|
| 诊断流程 | 诊断流程 |
| 系统运维模块说明 | 系统模块说明 |
| ONES常见日志链路说明 | ONES常见日志链路说明 |
| ONES前端录制Har包说明 | ONES前端录制Har包说明 |
| 常见排查方法 | Node故障分析处理 Pod故障分析处理 检查pod的容器日志 检查pod的事件 检查Pod的监控 |
| 常见问题及解决方案 | 常见问题排查动作思路 |
诊断流程

系统运维模块说明
提示
服务架构关系图: 系统模块组件/ONES工作链路图 业务服务模块异常重点关注 ONES Core Service服务

** 流量示意图: **

ONES常见日志链路说明
提示
我该查看关注哪个日志?
| 日志模块组件类别 | 具体模块 | 功能链路 | 所属产品/应用相关 |
|---|---|---|---|
| 系统访问日志 | Nginx/Ingress apisix wiki-web/project-web..Web | ONES 服务访问日志 | 网关路由(必经) |
| 业务系统基础日志 | project-api rabbitmq redis mysql | Project 功能日志 | 项目核心模块服务 |
| 协同编辑日志 | wiki-api wiz-editor-gateway wiz-editor wiz-convert wiz-plantuml | 协同编辑相关功能日志 | Wiki文档编辑 |
| Task 日志 | task | 任务协同相关功能日志 | Task |
| Audit Log (审计)日志 | audit-log binlog-event-sync ones-canal kafka clickhouse | 审计日志相关功能日志 | 审计日志服务 |
| Performance 日志 | ones-bi-sync-canal ones-bi-sync-etl binlog-event-sync kafka clickhouse | 报表相关功能日志 | Performance报表服务 |
| Automation 日志 | camunda-bpm | 自动化相关功能日志 | Automation服务 |
| Devops 日志 | devops-api | 流水线相关功能日志 | Pipeline、code、Devops服务 |
| 索引中间件日志 | tikv kilob-sync tidb-pd binlog-event-sync | 成员检索、全局搜索相关功能日志 | 业务搜索服务 |
| 开放平台日志 | ones-platform-api plugin-runtime-manager plugin-runtime-*(插件运行时) plugin-service-proxy | 开放平台、插件相关功能日志 | 插件相关服务 |
| 基础设施日志(容器/K3s/K8s部署) | supervisord or k3s/kubelet Operator etcd | 容器及服务运行状态日志/集群及服务运行状态日志(视部署方式而定) | 基座运行时日志 |
| 基础设施日志(K3s/K8s部署) | k3s/kubelet、Operator、etcd | 集群及服务运行状态日志 | 基础设施基座 |
| 数据库日志 | mysql-slow/mysql-error、mysql/dm数据库 | 数据库相关日志 | MySQL中间件 |
| 升级过程日志 | migration | 升级过程日志 | 升级数据迁移产生 |
Tip: 创建工作项/项目/上传文件等 异常服务不可用场景(先关注项目核心模块日志)
开启运维工具箱可以参见工具箱获取日志:工具箱问题排查
原生方式:查询该业务模块日志:Project
# k3s/k8s部署为例
# 如果pod已经运行(无论状态是正常还是失败),可以查看容器日志
kubectl -n ones get pod |grep -i project # 过滤相关PodName,获取Pod全称
kubectl -n ones logs $PodName -f # 跟踪最新日志,建议尝试再次复现问题 关注最新日志
# 如果pod没有运行(pending,init等等),看pod的k8s event
kubectl -n ones describe pod $PodName # 查看该pod的事件
# 常见日志查询 参见如下用法
kubectl -n $namespace logs $PodName
kubectl -n $namespace logs $PodName -c $ContainerName # 如果 Pod 中有多个容器,使用此选项指定容器名,以查看特定容器的日志。
kubectl -n $namespace logs $PodName --tail=20 # 查看最新20行日志
kubectl -n $namespace logs $PodName -f # 实时跟踪 Pod 的日志
kubectl -n $namespace logs --previous $PodName # 查看 Pod 上一个容器实例的日志,例:崩溃前容器日志
kubectl -n $namespace logs $PodName > /tmp/PodName.log # 保存该Pod生命周期日志信息
ONES前端录制Har包说明
提示
我该如何录制Har请求包?
** 前端相关问题 先尝试清理浏览器缓存,无痕模式再复现,排除缓存插件干扰,确认浏览器类型复现 同时保留Har **
- 录制har前期准备事项:
- ⼀、准备浏览器环境(chrome,safari,firefox)
- ⼆、准备复现的账号、项⽬、⼯作项等等
- 三、准备复现步骤
- 四、开启浏览器调试模式
- 五、操作复现步骤
- 六、最后导出保存HAR⽂件,具体参加图文(个别浏览器差异 建议Chrome)
浏览器录制HAR⽂件操作图解:
开启浏览器调试模式

显⽰如下控制台界⾯,切换到“⽹络”
操作复现问题前,建议先清理历史数据

操作复现问题,记录⽇志,导出har⽂件
