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 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⽂件操作图解:
开启浏览器调试模式
显⽰如下控制台界⾯,切换到“⽹络”
操作复现问题前,建议先清理历史数据
操作复现问题,记录⽇志,导出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_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状态码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 |
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 服务工作状态二、未开启审计日志记录(配置中心开启日志记录) 三、 kafka offset偏移被调整,导致重复消费有重复数据四、审计日志产生有延迟 | 对应问题进行响应 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-api service服务工作中 | 对应问题进行响应 1.登陆服务器查看服务状态及日志 2.观察uptime, 关注日志时间点,服务是否hang住没有再继续工作,是否存在报错异常 | 验证方法 1、登陆终端服务启动/重启,状态启动后进行观察 2.查看相关日志,查看当前配置资源状态 3.尝试重启/Performance重建(评估服务降级时间 期间搜索受损) |
二、bi-sync-canal bi-sync-etl 无法生产消费 同步 ,中间件链路服务异常 | 排查kafka zookeeper clickhouse 工作状态 | 根据实际情况而定 | ||
三、管道服务存在延迟性 | 可能未同步完成 | 基于日志确认 | ||
四、数据检索缺失/不完整 | Performance热数据重建 | 确认当下是否可以处理,或反馈移交 |