跳到主要内容
版本:v3&v6

ONES常见场景故障处理

提示

本文介绍关于 ONES 常见场景故障处理及解决方案。

本文目录

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

诊断流程

Alt text

系统运维模块说明

提示

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

Alt text

流量示意图: Alt text

ONES常见日志链路说明

提示

我该查看关注哪个日志?

日志模块组件类别具体模块功能链路所属产品/应用相关
系统访问日志Nginx/Ingress apisix wiki-web/project-web..WebONES 服务访问日志网关路由(必经)
业务系统基础日志project-api rabbitmq redis mysqlProject 功能日志项目核心模块服务
协同编辑日志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 platform-hostboot project-api开放平台、插件相关功能日志插件相关服务
基础设施日志(容器/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⽂件操作图解:

开启浏览器调试模式 alt text

显⽰如下控制台界⾯,切换到“⽹络”

操作复现问题前,建议先清理历史数据

alt text

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

alt text

常见问题排查动作思路

1、第三方账户问题 企业微信 无法通过企业微信登陆Ones

问题可能场景可能原因排查步骤解决办法/思路
无法与企业微信(钉钉等)绑定或新建账号企业微信、钉钉、相关Account一、第三方账号绑定无法激活,未配置邮箱服务 无法接收邮件账号激活
二、客户网络无法与第三方互通
确认邮箱功能可用,可用于绑定相关第三方账户确认第三方相关资源网络可访问,可连公网环境1、配置邮箱发送功能第三方账号绑定时
2、发布公网地址 集成第三方
LDAP limit size报错LDAP limit size限制确认Account证书授权数量
钉钉管理员扫码绑定失败你的钉钉不是绑定的企业(钉钉有个主企业)钉钉开放平台的应用需要解除授权重新授权
无法用企业微信登陆ONES详见:第三方账户问题->已绑定企业微信->无法通过企业微信登陆Ones
问题可能原因排查步骤解决办法/思路
无法用企业微信登陆ONES1.企业微信可见范围没有将用户加入到可见范围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_user
2.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状态码50x1.安全组/防火墙拦截
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

5、消息通知问题 无法收到通知

问题可能场景可能原因排查步骤解决办法
1.无法收到站内通知
2.无法收到邮箱通知
3.无法收到..通知提醒功能异常
1.邀请团队成员无法接收到邮件信息
2.无法收到邮件提醒
3.无法收到站内通无法收到..提醒通知
一、自身的操作是不会给自己发送通知提醒通知对象,操作对象信息确认确认并验证测试
二、该项目未开启通知项确认项目中通知功能开启
三、未配置邮箱/飞书/钉钉/企微/有度等服务或相关account状态异常1.根据配置相关通知Account配置状态确认
2.出现异常需要确认配置是否需要更新
如果未配置需要先完成提醒功能配置account功能如果已配置情况未收到通知,需要确认account功能是否异常
三、其他原因/Bug 排查Project Api日志情况排查收集日志确认问题确认当下是否可以处理,或反馈移交

6、数据备份问题 备份未进行

问题可能场景可能原因排查步骤解决办法
备份未进行数据备份
灾难备份
定时备份等未工作
一、未开启备份服务根据情况确认开启备份服务
二、备份服务本身minio/s3 对象存储异常 服务启动异常 如: 磁盘空间不足等 (外部存储需要考虑互联互通问题)1.确认磁盘空间状态
2.查看是否有磁盘处未挂载状态 未配置开机自动挂载
3.确认清理磁盘或选择磁盘扩容
4.查看备份对象存储工作正常 存储桶名匹配
根据情况确认
三、自动化备份脚本异常/运行异常/计划未运行/运行退出确认xbackup 组件是否正常工作根据情况而定,建议反馈移交

7、第三方数据导入 文件上传问题->导入数据量过大

问题可能场景可能原因排查步骤解决办法
导入数据量过大Jira导入、Confluence导入
大附件文件上传
一、配置/网关限制了包上传大小对应问题进行响应,调整上传大小配置1、调整包上传大小限制
2、拆分批次导入
3、网关调整client_max_body_size 0;
二、service限制了包大小确认上传包大小,确认配置项
三、异常bug排查收集project-api日志确认当下是否可以处理,或反馈移交

8、操作系统类问题 修复参考

操作系统环境修复配置指南

9、审计日志问题 管道服务 无法工作/查看

问题可能场景可能原因排查步骤解决办法
1.审计日志没有任何数据
2.审计日志没有最新数据
3.审计日志重复
审计日志auditlog service 异常无法启动clickhouse kafka异常无法启动一、确认auditlog binlog-evnet kafka clickhouse服务工作状态
二、未开启审计日志记录(配置中心开启日志记录)
三、kafkaoffset偏移被调整,导致重复消费有重复数据
四、审计日志产生有延迟
对应问题进行响应
1.登陆服务器查看服务状态及日志
2.观察uptime, 关注日志时间点,服务是否hang住没有再继续工作,是否存在报错
3.确认服务器资源状态健康
4.如果延迟特别严重,还有加剧的趋势
验证方法
1、登陆终端服务启动/重启,状态启动后进行观察,如果一启一停,需要确认是否存在大量log写入,观察 内存 、io状态,存在脏数据需要反馈协同处理
2、服务无法启动需要排查中间件是否正常工作,如:数据造成了损耗 中间件之际通讯异常
3、数据消费异常 Bug等
4、Clickhouse里面查audit_log表内容
四、确认 binlog-event-sync ones-canal kafka clickhouse 服务工作状态1.登录服务器查看服务Service运行状态
2.关注service uptime,观察日志状态
确认服务正常工作,根据日志情况而定
其他原因 排查日志情况收集以上日志确认当下是否可以处理,或反馈移交

10、业务索引搜索 管道服务 索引中间件 全局搜索问题

问题可能场景可能原因排查步骤解决办法
1.新建的任务/工作项无法搜索到
2.搜索报错
3.旧内容无法搜索
4.搜索数据不全/缺失
5.成员无法检索
搜索功能全局搜索工作项关联相关一、确认kilob-sync管道生产消费服务工作状态对应问题进行响应
1.登陆服务器查看服务状态及日志
2.观察uptime, 关注日志时间点,服务是否hang住没有再继续工作,是否存在报错异常
验证方法
1、登陆终端服务启动/重启,状态启动后进行观察
2.查看相关日志,查看当前配置资源状态
3.尝试重启/索引中间件重建(评估服务降级时间 期间搜索受损)
二、kilob-sync无法消费 ,中间件链路服务异常排查tikv tidb-pd binlog-event-sync工作状态根据实际情况而定
三、kilob-sync mysqldump阶段异常等排查MySQL工作状态,连接/超时等参数发生情况较少
四、数据检索缺失/不完整重建索引中间件确认当下是否可以处理,或反馈移交

11、报表卡片等异常 管道服务 效能管理 Performance

问题可能场景可能原因排查步骤解决办法
1.效能管理卡片无法工作
2.项目概览异常
3.报表异常
报表/卡片 部分仪表盘异常 无法显示,数据不准确 停止更新一、确认performance-apiservice服务工作中对应问题进行响应
1.登陆服务器查看服务状态及日志
2.观察uptime, 关注日志时间点,服务是否hang住没有再继续工作,是否存在报错异常
验证方法
1、登陆终端服务启动/重启,状态启动后进行观察
2.查看相关日志,查看当前配置资源状态
3.尝试重启/Performance重建(评估服务降级时间 期间搜索受损)
二、bi-sync-canal bi-sync-etl无法生产消费 同步 ,中间件链路服务异常排查kafka zookeeper clickhouse工作状态根据实际情况而定
三、管道服务存在延迟性可能未同步完成基于日志确认
四、数据检索缺失/不完整Performance热数据重建确认当下是否可以处理,或反馈移交