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⽂件

常见问题排查动作思路
1、第三方账户问题 企业微信 无法通过企业微信登陆Ones
| 问题 | 可能场景 | 可能原因 | 排查步骤 | 解决办法/思路 |
|---|---|---|---|---|
| 无法与企业微信(钉钉等)绑定或新建账号 | 企业微信、钉钉、相关Account | 一、第三方账号绑定无法激活,未配置邮箱服务 无法接收邮件账号激活 二、客户网络无法与第三方互通 | 确认邮箱功能可用,可用于绑定相关第三方账户确认第三方相关资源网络可访问,可连公网环境 | 1、配置邮箱发送功能第三方账号绑定时 2、发布公网地址 集成第三方 |
| LDAP limit size报错 | LDAP limit size限制 | 确认Account证书授权数量 | ||
| 钉钉管理员扫码绑定失败 | 你的钉钉不是绑定的企业(钉钉有个主企业)钉钉开放平台的应用需要解除授权重新授权 | |||
| 无法用企业微信登陆ONES | 详见:第三方账户问题->已绑定企业微信->无法通过企业微信登陆Ones |
| 问题 | 可能原因 | 排查步骤 | 解决办法/思路 |
|---|---|---|---|
| 无法用企业微信登陆ONES | 1.企业微信可见范围没有将用户加入到可见范围 | 1.企业微信管理员登陆企业微信管理后台 2.查看ONES应用的可见范围 3.确认没有将用户加入到可见范围内 | 企业微信管理员将用户加入到可见范围 |
| 2.企业微信已经将用户加入可见范围,但是没有 在ONES点击同步 | 确认: 1.「团队配置中心」->「团队成员」->「未激活成员」中确定不存在用户 2.用户在企业微信的可见范围 | 「团队配置中心」->「绑定第三方账号」->点击「同步」 | |
| 3.企业微信成员账号没有绑定ONES账号 | 确认:1.「团队配置中心」->「团队成员」->「已激活成员」中确定不存在该用户 2.「未激活成员」中确定存在该用户 | 企业微信成员自行绑定自己的ONES账号 | |
| 4.ONES是开通了组织 | 确认:1.组织管理」->「团队管理」->「编辑团队」中「已选成员列表」是否存在指定部门或成员 | 将需要加入团队可见范围的部门或成员添加进来并点击「确定」 |
2、邮箱问题 SMTP邮件发送异常
| 问题 | 可能场景 | 可能原因 | 排查步骤 | 解决办法/思路 |
|---|---|---|---|---|
SMTP无法发送无法收到邮箱邮箱提醒无效 | 1.无法邀请团队成员注册 无法接收验证码 2.无法接收到邮件信息、 3.无法收到邮件提醒 4.邮件能力无法工作 | 一、未配置、参数配置问题无法兼容、 1. 邮箱配置 SMTP未配置2.邮箱配置 SMTP参数有误(协议兼容性需要验证测试) 网络连通性测试3.邮箱用户密码有误(第三方授权码) 4.邮箱发送白名单限制 5.收件用户垃圾箱限制 | 对应问题进行响应 1.参数有误 ->调整参数(服务器地址、账户、 密码、端口、 TLS、兼容参数)进行发件/网络连通性测试2.尝试更换发件 SMTP账号测试,判断当下问题点3.根据发件 SMTP服务器返回状态码确认失败原因 | ONES 验证方法 1.使用 mars email检测(内网需要指定邮箱)--to_email_user2. mars emailSuggest动态识别参数验证测试3.在线邮箱配置页面进行配置验证 |
| 二、Mail客户端与服务器网络连通/限制/防火墙问题 | 1.确认ping通服务器 2.确认ping通服务器端口服务 3.确认服务器可用邮箱服务器连通性-排除链路防火墙频率等限制 4.数据抓包分析(尽可能完成一次SMTP客户端及服务器抓包) | 确认服务器可连通/服务正常工作 | ||
| 三、其他原因 排查project-api日志情况 | 在线邮箱配置页面进行配置验证,关注日志收集日志表现 | 确认当下是否可以处理,或反馈移交 |
3、无法登陆 无法访问ONES
| 问题 | 可能场景 | 可能原因 | 排查步骤 | 解决办法/思路 |
|---|---|---|---|---|
| 无法访问,无法登陆 白页 服务不可用 | ONES上游Service不可用 | 一、服务后端状态异常,服务不可用 | 对应问题进行响应,判断故障影响范围 局部问题还是通用问题 1.前端访问优先network接口观察状态,完成基础ping tcping联通性测试 2.确认服务器状态, 查看服务状态确保网络可用 3.确认Ingress project-web 链路日志,确保流量正常流入 4.确认project api等service接口服务状态,查看该日志确保流量触达 5.服务器本地尝试将域名指向本地IP(修改Hosts)文件进行本地访问测试 | 服务器验证方法 1.查看端口监听状态 2.查看服务状态 排查日志 3.定位问题进行响应修复服务状态不可用(重启无效)/需扭转排查日志信息 4.本地联调测试 5.排查防火墙/安全组策略(先完成本地访问测试) |
| Http状态码50x | 1.安全组/防火墙拦截 2.网络互联问题 | 二、客户端与服务器网络连通/限制/防火墙问题 | 1.确认ping通服务器 2.确认ping通服务器端口服务 3.外网curl服务发布地址 4.容器本地curl服务发布入口 5.确认服务器服务可用确认网络连通问题/确认防火墙acl等限制存在 | 验证方法 1.客户端ping通服务器 2.客户端curl请求发布地址 3.客户端tcping端口服务 4.服务器本地curl请求发布地址 5.客户端路由跟踪,排查其他节点限制存在网络连通/限制/防火墙需要与客户沟通确认解决 |
| 证书警告 证书错误 证书无法验证 | 1.Tls/Https证书过期 2.域名备案掉白 3.负载均衡SLB/反向代理配置有误(关注Header参数) | 三、架构环境存在反向代理/SLB负载均衡/限制问题/超时问题/证书问题 | 1.确认服务求架构环境 2.确认反向代理转发服务3.证书错误/超时等问题确认 4.代理节点curl上游发布地址测试 | 验证方法 1.curl查看重定向返回状态 2.根据http状态码/证书状态进行判断存在反向代理需确认是否有异常参数 重定向状态是否正常,节点-上游地址是否可连通服务可用 3.本地修改hosts绕过负载均衡/代理 指向上游ONES地址 |
| 四、域名/备案/白名单问题/通用访问问题/个别访问问题/服务器本地时间异常 | 排查完以上问题,确认域名是否正常可用,从客户端到服务端、日志各节点逐步判断 | 验证方法 1.域名备案查询 2.空域名访问返回状态判断存在域名未备案(掉备案)白名单问题需要与客户确认沟通 3.服务器本地访问,确认域名本地可用 |
4、license授权问题 无法授权 授权异常 esn机器码变更
| 问题 | 可能场景 | 可能原因 | 排查步骤 | 解决办法 |
|---|---|---|---|---|
| 授权异常无法授权 | 安装授权 服务器进行了迁移授权 证书平台账号无法登录 | esn申请有误esn机器码发生了变更esn机器码无法识别 | n | 联系ONES业务人员确认,提供最新机器码重新申请授权 |
| 服务器进行迁移/集群增加节点 | esn机器码变更 | n | ||
| 服务器操作系统/内核变更 | esn机器码变更 | n |