记一次confluence故障的RCA

news/2024/11/30 0:49:27/

记一次confluence故障的RCA

  • Confluence故障RCA(Root Cause Analysis)
    • 问题
    • 问题原因(Root Cause)
      • 故障触发原因
      • 核实8091端口对应的服务进程
        • 关于Synchrony
      • 核实Synchrony服务进程的启动方式
      • 启动Synchrony服务并观察Confluence是否连上
      • Q&A

Confluence故障RCA(Root Cause Analysis)

本文记录我在去年给客户做的一次confluence故障原因排查,也希望借此机会与使用confluence的朋友交流一下。
本文内容均已脱敏。

问题

用户的监控系统报警confluence无法访问,主页无法打开。排查过程中我们工程师重启confluence(stop-confluence.sh/start-confluence.sh)并发现进程和端口并未能恢复正常。

问题原因(Root Cause)

故障触发原因

检查日志文件catalina.out,在07-Jul-2020 15:10:49.691处开始可见内存溢出(OOM),WebSocket Connection Manager因此停止,同时在下方日志出现“Exception in thread “synchronyProxyFilter-74905” java.lang.OutOfMemoryError: Java heap space”等多项Exception,由此判断提供8091端口的WebSocket服务的组件出现OOM。
在这里插入图片描述

核实8091端口对应的服务进程

根据上面得出的结果,我们判断需要恢复服务,就需要使8091端口的WebSocket重新工作,因此,需要核实该端口是由哪个应用提供服务。
通过命令netstat -tunlp | grep 8091可以获取端口的对应进程的PID,结果如下:
在这里插入图片描述
根据PID,可以通过命令ps -ed | grep java,我们可以得知以下四个信息:
1) PID 17511的进程为Synchrony
2) PID 17511的PPID(父进程)为16748
3) PPID 16748的进程为Confluence主程序
4) Synchrony进程的JVM配置了最大内存为1GB,Confluence的主进程JVM为8GB。
在这里插入图片描述

关于Synchrony

Synchrony是给Confluence提供协同编辑的引擎。它是一种允许实时同步任意数据模型的服务。
1)Synchrony的工作方式
在这里插入图片描述

  1. Confluence使用appId和appSecret与Synchrony服务通信。
  2. JSON Web Token(JWT)提供连接的详细信息给客户端。
  3. 在初始化Confluence编辑器时,会将Synchrony Javascript加载到浏览器中。
  4. Synchrony通过JWT和正在编辑页面的contentId打开一个WebSocket会话。
  5. WebSocket连接允许多个客户端保持同步。

所以,页面的内容数据将存储在Synchrony服务上,该服务将充当页面内容的真实来源。

核实Synchrony服务进程的启动方式

为了使Synchrony再次运作,必须找到对应的启动脚本。我们使用以下命令查找:
使用命令grep -R Synchrony ./*在/data/atlassian/confluence/bin内查找对应的启动文件。
由此落实几点:
1)Synchrony由./synchrony/start-synchrony.sh启动,由./synchrony/stop-synchrony.sh关闭。
2)start-confluence.sh里面没有发现Synchrony的启动脚本。
3)catalina.sh里面没有发现Synchrony的启动脚本。
4)/etc/init.d/内有与/synchrony/start-synchrony.sh关联的启动脚本。
在这里插入图片描述

启动Synchrony服务并观察Confluence是否连上

1)未重启Synchrony之前,我们可以看到日志上大量connect failed:
在这里插入图片描述
2)重启Synchrony之后,我们可以看到日志上大量的successfully connected:
在这里插入图片描述
3)故障分析
总结,由于Synchrony的OOM,导致confluence前端出现访问问题。
同时也是由于Synchrony的启动脚本与confluence的启动脚本分离,导致debug工作前30分钟被在集中研究confluence的启动问题而忽略了问题的根本原因是出在8091端口的WebSocket上。

Q&A

Q: 为什么debug期间前端会出现提示页面:BootstrapException: Unable to bootstrap application: failed to find config at: /data/atlassian/application-data/confluence/confluence.cfg.xml ?
A: 这个问题是由于debug过程中使用错误的启动脚本启动过confluence,导致confluence.cfg.xml用户权限变成root,之后再使用正确的脚本重启confluence时,由于用户组权限低于root,所以会导致无法覆盖文件的问题。
例如/data/atlassian/confluence/bin/startup.sh这个启动脚本,里面没有调用用户环境变量设置文件user.sh,也没有设置CONF_USER,从而导致问题发生,但这个并非本此故障的root cause。
正确的执行启动confluence方式是:
systemctl start confluence
/etc/init.d/confluence start
cd /data/atlassian/confluence/bin/再执行start-confluence.sh

Q: 目前单一节点故障导致业务中断的问题,是否有高可用或集群部署的可行性?
A: 参考官方资料:https://confluence.atlassian.com/doc/set-up-a-synchrony-cluster-for-confluence-data-center-958779073.html


http://www.ppmy.cn/news/573057.html

相关文章

CEC和ARC介绍

CEC和ARC介绍众所周知,HDMI作为一个数字化视频音频的接收标准,是可以同时传输视频和音频的,当然随着HDMI版本的提升,它的功能也一直在增强。事实上当HDMI升级到1.3时,人们就发现了HDMI多了一个CEC功能。ARC就是在HDMI版…

c - ar 中的 “rcs“选项有什么作用?

c - ar 中的 "rcs"选项有什么作用? 我确实阅读了 man 文件,但它没有帮助。 rcs似乎是传递给 ar 的最流行的选项,但对我来说含义不是很清楚。 所以c意味着创建一个新的存档,但是为什么要使用 r ?这似乎代表“替换”&am…

安鸾之RCE系列

声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担! 本文转发于涂寐’s Blogs:https://0xtlu.github.io,转载请注明出处&…

rca接口_CIOKS: “ 为什么我们要用RCA接口和连线?”

中文字幕视频-《为什么我们要用RCA接口和连线?》 👇 为了让大家更清晰的阅读视频内容,下面附上中文字幕内容 👇 Hello!大家好, 我是来自CIOKS的Poul,在这个视频当中,我会为大家介绍我…

rca接口_常用的音频接口及焊接方法

1.TRS 小三芯/大三芯/大二芯等 实物图 TRS有三种尺寸: (1)6.3mm、(2)3.5mm(3)2.5mm 每个端点代表的意义: (1)TIP(尖端)=positive(正极) 热端,信号+,立体声时为左声道 (2)RING(环端)=negative(负极) 冷端,信号-,立体声时为右声道 (3)SLEEVE(套筒端)=shield或ground 屏蔽端…

RCS认证TC怎么申请

【RCS认证TC怎么申请】 GRS/RCS/GOTS/OCS/RWS/RDS申请TC提供的文件: 1)内销凭待/外销凭待(正本盖章) 上游卖家必须是您认证的单位之一(如果没有,请联系我们CU加单位并支付费用审核),并与单位一起审核),TC申请上的卖家信息一致 发票…

[转]什么是RCA接头

RCA 是Radio Corporation of American的缩写词,因为RCA接头由这家公司发明的。RCA俗称莲花插座,几乎所有的电视机、影碟机类产品都有这个接口。它并不是专门为哪一种接口设计,既可以用在音频,又可以用在普通的视频信号,也是DVD分量(YCrCb)的插座,只不过数量是三个。RCA接…

虹科新闻 | 虹科与RACOM正式建立合作伙伴关系

近日,虹科与RACOM正式建立合作伙伴关系,双方就工业应用自动化领域进行深入的交流与合作,未来将共同致力于为客户提供高效、可靠的工业通信解决方案,帮助客户布局工业信息系统。 虹科与RACOM都表示十分期待这次的合作。虹科CEO陈秋…