JumpServer 生产环境高可用终极指南:一场半夜宕机教会我的四道防线
JumpServer 生产环境高可用终极指南一场半夜宕机教会我的四道防线【免费下载链接】jumpserverJumpServer is an open-source Privileged Access Management (PAM) platform that provides DevOps and IT teams with on-demand and secure access to SSH, RDP, Kubernetes, Database and RemoteApp endpoints through a web browser.项目地址: https://gitcode.com/GitHub_Trending/ju/jumpserver凌晨 2 点 17 分报警电话把你从睡梦中拽起。JumpServer 登录页白屏线上 300 多名工程师的 SSH 会话全部断开运维群瞬间炸锅——堡垒机单点故障让整个研发体系一夜瘫痪。这样的场景是否似曾相识单机部署的 JumpServer 像走钢丝一个进程挂了运维入口就没了。本文不灌鸡汤只交付一套可落地的方案一套数据层 接入层 服务层 观测层四道防线架构支撑 JumpServer 故障切换时间压到 30 秒内可用性目标 99.9%并给出每个环节可复制的命令与踩坑点。一、先复盘故障再设计架构那场事故的根因清单值得你逐条对照应用单点唯一 Web 进程崩溃全站失联状态不共享会话和缓存落在本机节点重启即丢无健康探针故障发现靠用户反馈恢复靠人工重启无灾备路径数据库没做主从备份文件陈旧 3 天从这次故障倒推能扛住它的集群必须满足四个条件数据可复制、请求可转移、节点可替换、故障可感知。下文逐条补齐。二、架构总览四道防线各司其职目标架构如下把原本耦合的单体拆成四层任何一层都不再是单点接入层负责流量分发与 VIP 漂移是用户唯一入口自身必须双活服务层跑 2 个对等 JumpServer 节点通过注册机制自动发现彼此互为主备数据层用 PostgreSQL 主从 Redis 集群承载全部持久化与中间态这是节点可替换的前提共享存储存放录像、密钥、临时文件保证任意节点接管后上下文一致。三、资源规划与前置准备节点规格可按下表起步后续按业务量横向扩展应用节点即可节点角色数量建议规格职责接入层KeepalivedNginx22C4GVIP 漂移、流量分发、健康检查应用节点24C8GJumpServer Core/Celery/Koko 等组件PostgreSQL 主从24C16G业务数据主从复制Redis 集群32C4G会话、缓存、Celery Broker共享存储1100G录像与配置文件持久化所有节点先统一环境# 安装 Docker 与 Compose 插件各节点执行 yum install -y yum-utils yum-config-manager --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin systemctl enable --now docker⚠️ 应用节点务必保持内核与 Docker 版本一致避免跨节点行为差异导致排查困难。四、第一道防线让数据可复制1. 启动 PostgreSQL 主从主库初始化docker run -d --name pg-master \ -e POSTGRES_USERjumpserver -e POSTGRES_PASSWORD强密码 \ -e POSTGRES_DBjumpserver \ -v /data/postgres/master:/var/lib/postgresql/data \ -p 5432:5432 postgres:13从库用pg_basebackup全量同步后配置primary_conninfo指向主库地址并设置hot_standby on。完成后验证复制状态SELECT client_addr, state, sync_state FROM pg_stat_replication;2. 搭建 Redis 3 节点集群JumpServer 依赖 Redis 承载用户会话、缓存与 Celery 调度单点 Redis 会拖垮整个集群# 创建 6 个 Redis 实例3主3从7000-7002 为主7003-7005 为从 for port in 7000 7001 7002 7003 7004 7005; do docker run -d --name redis-$port \ -p $port:$port \ redis:6 redis-server --port $port \ --cluster-enabled yes --cluster-config-file nodes-$port.conf done # 组建集群 docker exec redis-7000 redis-cli --cluster create \ 10.0.1.10:7000 10.0.1.10:7001 10.0.1.10:7002 \ 10.0.1.10:7003 10.0.1.10:7004 10.0.1.10:7005 \ --cluster-replicas 1配置 JumpServer 时在 config_example.yml 中声明数据库与 Redis 地址替换默认的DB_HOST: 127.0.0.1与REDIS_HOST: 127.0.0.1。参考配置见官方示例 config_example.yml。五、第二道防线服务节点可替换1. 共享存储先行录像与密钥文件必须落共享盘否则会话迁移后无法回放# 存储端导出 echo /data/share 10.0.1.0/24(rw,sync,no_root_squash) /etc/exports systemctl enable --now nfs-server # 每个应用节点挂载 mkdir -p /opt/jumpserver/data mount -t nfs 10.0.1.5:/data/share /opt/jumpserver/data2. 构建镜像并启动双节点镜像构建可直接复用官方脚本 utils/build_docker.shbash utils/build_docker.sh v3.10.0随后在两个节点分别启动容器环境变量一致共享同一套数据层docker run -d --name jumpserver \ -v /opt/jumpserver/data:/opt/jumpserver/data \ -e DB_HOST10.0.1.6 -e DB_PORT5432 \ -e REDIS_HOST10.0.1.7:7000,10.0.1.7:7001,10.0.1.7:7002 \ -p 8080:8080 jumpserver/jumpserver:v3.10.0启动后两个节点会通过心跳注册到同一张组件表日志里出现Terminal registration即代表彼此可见。此时停掉任意节点登录页依然可用——第二道防线成立。六、第三道防线请求可转移Nginx 侧用被动健康检查剔除故障节点Keepalived 保证接入层自身不挂upstream jms_backend { server 10.0.1.10:8080 max_fails3 fail_timeout10s; server 10.0.1.11:8080 max_fails3 fail_timeout10s; } server { listen 80; location / { proxy_pass http://jms_backend; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # JumpServer 内置健康检查接口200 即存活 location /health/ { proxy_pass http://jms_backend/health/; } }再结合官方心跳脚本 utils/check_celery.sh 定期探测异步任务是否卡死把判定标准从进程在升级为任务在推进# 20 秒内无新心跳即判定异常返回非 0 test $(($(date %s) - $(stat -c %Y /tmp/worker_heartbeat_celery))) -lt 20七、第四道防线故障可感知、数据可恢复1. 故障注入验证直接杀掉应用节点容器观察流量是否在 10 秒内切到另一节点docker stop jumpserver # 模拟节点宕机 curl -I http://VIP/health/ # 应持续返回 2002. 监控与告警JumpServer 自身提供了组件健康检查与告警框架 apps/ops/notifications.py磁盘、内存、CPU、组件在线状态均可配阈值并自动邮件通知。生产环境至少盯住以下指标指标阈值参考说明组件在线状态必须 100%任何组件离线即告警磁盘使用率 80%录像落盘最易爆盘CPU Load 5高峰期逼近上限需扩容PostgreSQL 复制延迟 5s延迟过大说明从库落后3. 备份与恢复演练数据库备份可直接参考官方脚本 utils/backup_db.sh 的思路用 cron 每天全量 每小时 WAL 归档并每季度做一次真实恢复演练——备份没恢复过就等于没有备份。八、写在最后给生产环境的 4 条建议应用节点起步 2 个按 CPU Load 与在线会话数横向扩容架构天然支持无感加节点升级用滚动方式先摘一个节点、升级、验证、挂回再处理另一个避免全量重启窗口把灾备演练写进季度日程故障注入不只是验证更是锻炼团队肌肉记忆录像与配置的备份单独留存一份冷备共享存储也不是永不损坏的。从单机到四道防线JumpServer 集群不再是一张 PPT而是你在下次深夜报警前就能亲手交付的工程。现在打开你的第一个节点把心跳接上。【免费下载链接】jumpserverJumpServer is an open-source Privileged Access Management (PAM) platform that provides DevOps and IT teams with on-demand and secure access to SSH, RDP, Kubernetes, Database and RemoteApp endpoints through a web browser.项目地址: https://gitcode.com/GitHub_Trending/ju/jumpserver创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

星露谷的一天只有15分钟:用StardewMods把农场打理省出一半时间

星露谷的一天只有15分钟:用StardewMods把农场打理省出一半时间

星露谷的一天只有15分钟:用StardewMods把农场打理省出一半时间 【免费下载链接】StardewMods Mods for Stardew Valley using SMAPI. 项目地址: https://gitcode.com/gh_mirrors/st/StardewMods 如果你刚开了一个新的星露谷存档,多半会有同一种体…

2026/8/20 20:58:38 阅读更多 →
线性优化求解器HiGHS上手指南:从手算到生产级求解的一次通关

线性优化求解器HiGHS上手指南:从手算到生产级求解的一次通关

线性优化求解器HiGHS上手指南:从手算到生产级求解的一次通关 【免费下载链接】HiGHS Linear optimization software 项目地址: https://gitcode.com/GitHub_Trending/hi/HiGHS 如果你正在处理"在约束条件下求最优解"的问题——比如排生产计划、算配…

2026/8/20 20:58:38 阅读更多 →
如何用代码重构工具批量改造整个项目:零基础自动化重构完整指南

如何用代码重构工具批量改造整个项目:零基础自动化重构完整指南

如何用代码重构工具批量改造整个项目:零基础自动化重构完整指南 【免费下载链接】rewrite Automated mass refactoring of source code. 项目地址: https://gitcode.com/gh_mirrors/re/rewrite 接手一个老项目时,你有没有想过一个问题&#xff1a…

2026/8/20 20:58:38 阅读更多 →

最新新闻

Ray 环境下 POLARIS 调试指南:用 breakpoint() 高效定位 RL 训练问题

Ray 环境下 POLARIS 调试指南:用 breakpoint() 高效定位 RL 训练问题

Ray 环境下 POLARIS 调试指南:用 breakpoint() 高效定位 RL 训练问题 【免费下载链接】POLARIS Scaling RL on advanced reasoning models 项目地址: https://gitcode.com/gh_mirrors/polaris34/POLARIS POLARIS 是一个通过强化学习(RL&#xff0…

2026/8/20 21:45:03 阅读更多 →
上班第一天,同事丢来一块 NTFS 移动硬盘:我用免费方案让 Mac 读写自如

上班第一天,同事丢来一块 NTFS 移动硬盘:我用免费方案让 Mac 读写自如

上班第一天,同事丢来一块 NTFS 移动硬盘:我用免费方案让 Mac 读写自如 【免费下载链接】Free-NTFS-for-Mac Nigate: An open-source NTFS utility for Mac. It supports all Mac models (Intel and Apple Silicon), providing full read-write access, m…

2026/8/20 21:45:03 阅读更多 →
【C语言】数据类型和变量

【C语言】数据类型和变量

ASCII 转义写法\141 八进制 141 → 十进制 97 → ASCII a\x30 十六进制 30 → 十进制 48 → ASCII 0printf("%c\n", \141); //8进制,转十进制 为97 对应a printf("%c\n", \x30); // 16进制,转十进制,为48 对应0转义字符…

2026/8/20 21:45:03 阅读更多 →
一个框架吃透五大平台:MediaCrawler-new 多平台爬虫框架数据采集全流程指南

一个框架吃透五大平台:MediaCrawler-new 多平台爬虫框架数据采集全流程指南

一个框架吃透五大平台:MediaCrawler-new 多平台爬虫框架数据采集全流程指南 【免费下载链接】MediaCrawler-new 项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new 做内容运营的周哥,第一次听说"社交媒体数据采集"这…

2026/8/20 21:44:03 阅读更多 →
greuler高亮动画实战:用highlight系列API让节点与边瞬间聚焦

greuler高亮动画实战:用highlight系列API让节点与边瞬间聚焦

greuler高亮动画实战:用highlight系列API让节点与边瞬间聚焦 【免费下载链接】greuler Graph theory visualizations 项目地址: https://gitcode.com/gh_mirrors/gr/greuler greuler 是一款基于 d3 与 WebCola 的图论可视化工具,它把复杂的图结构…

2026/8/20 21:44:03 阅读更多 →
谁是卧底 C++三人版

谁是卧底 C++三人版

好像很久没有发博文了,这次来搞一把。谁是卧底三人版闪亮登场一、简介谁是卧底这个游戏很多人应该都是玩过的。游戏的规则就是选一个卧底词和N-1(N=玩家数量)个平民词(两个平民词需要一样,卧底词和平民词则…

2026/8/20 21:44:03 阅读更多 →

日新闻

Framework笔记本BIOS更新变砖,“可维修”承诺遭遇芯片级维修考验!

Framework笔记本BIOS更新变砖,“可维修”承诺遭遇芯片级维修考验!

Framework笔记本BIOS更新引“变砖”危机2026年7月7日,Framework向用户quantum5发送邮件,建议其安装BIOS 3.20更新。然而,更新后电脑出现严重问题,屏幕显示三角形和随机像素图案,风扇狂转,系统完全挂起。qua…

2026/8/20 0:00:46 阅读更多 →
2026还在担忧建站平台哪家好?手把手带你搭建自家网站!

2026还在担忧建站平台哪家好?手把手带你搭建自家网站!

2026还在担忧建站平台哪家好?手把手带你搭建自家网站!据艾瑞咨询发布的《2026年中国企业数字化服务市场研究报告》,2025年国内网站建设市场规模已达896亿元,同比增长18.7%。中国互联网络信息中心数据显示,截至2025年底…

2026/8/20 0:00:46 阅读更多 →
2026高端网站建设公司哪家好?怎么选才能不花冤枉钱?

2026高端网站建设公司哪家好?怎么选才能不花冤枉钱?

2026高端网站建设公司哪家好?怎么选才能不花冤枉钱?据艾瑞咨询《2026年中国企业数字化服务市场研究报告》,2025年国内网站建设市场规模已达896亿元,其中高端定制网站服务占比突破42%。更值得关注的是,91%的规模以上企业…

2026/8/20 0:00:46 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/19 11:55:18 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/19 9:46:27 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/19 11:55:16 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/20 6:11:08 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/19 7:42:22 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/19 11:55:13 阅读更多 →