请教下, 全国各地地方的服务器如何集中管理, 大概 100 多台,详细如下

11 天前
 skyrim61

请教下 v2 的大佬们, 我们有套产品 开发架构是基于传统的 LNMP 架构(ubuntu20 系统上), 需要在客户电脑上部署这套系统, 另外带上 OCR 识别 python 程序 此类客户分布在全国各地到处, 目前大概有 100 多台(每台都分散在各个地方), 由于客户电脑都是在厂地, 是不可能每个电脑都有公网 IP 地址的 如何集中管理? 如何做配置文件更新? 代码更新? 各个服务器系统监控, 业务监控如何展开? 每个厂地的服务器情况不可控制, 随意开关机, 每次关机, 推送的更新无法及时收到, 导致开机运行报错.等等等

2413 次点击
所在节点    程序员
45 条回复
phx1
11 天前
786375312123
11 天前
远程控制软件都能做吧,向日葵,anydesk 什么的。
feather12315
11 天前
自建 rustdesk server ,上 rustdesk
Jirajine
11 天前
为什么需要你去“推送更新”,不是客户端定期检查更新从你的服务器上拉取?
你要是需要对那些服务器完全管理,也就是远程任意代码执行,那随便加个 timer 定时任务`curl https://mydomain.com/update.sh | bash`这样的,linux 一般没有乱七八糟的杀毒软件给你报毒。
xiebaiyuan
11 天前
膜拜一下上面的大佬们..
nuk
11 天前
LNMP 为啥不放虚拟机里面,宿主机系统只要不折腾啥事没有,随便开关机,集中管理搞个 wireguard 或者 openvpn 也够了,vpn 建不起来的搞其他的也没用。
sampeng
11 天前
从需求来看,这就不是一个远程控制的需求,而是管理。这就要在机器/产品/程序里面有专门的代码。标准 cs 架构。定时请求云端,然后做你要做的事。

就拿文件更新来说,这就是 标准逻辑,定时请求更新接口,有更新,更新文件。吧啦吧啦吧。

远程控制? 200 台你手动做一个试试。。。
sampeng
11 天前
监控逻辑一样,定时心跳往云端发。可以自己开发接口,也可以标准 promethus 。丰简由君。现成的?不可能有。
当然,你的需求只是远程去“手动”的一台一台去维护,那楼上的解决方法都是 ok 的。真正做产品这么做就是脑子进水了。这么干出完全漏洞。200 台机器就全部变成肉鸡。
sampeng
11 天前
今年 200 台。明年 2000 台。。。再然后 1 万台。。。然后一台一台人肉去维护。我想这绝对不是你们产品/业务/售后希望的模式。。。你得招多少人。
ik
11 天前
哥,趁 ssh 老哥还没来,更新维护的活包给我吧😆
nomytwins
11 天前
架构有问题吧,这种不应该 saas 模式更好
evilangel
11 天前
我记得二十年前上高中那会有个软件叫 “灰鸽子” 支持内网反弹自动上线。。。。。
cnlnlhb
11 天前
我现在维护了十几个地方的服务器,我主要的架构是这样的:
1.首先能访问异地机器,肯定要组网,所有地方主路由用的是爱快,通过 vpn 组网,星形网络,全部组到一个节点下,然后在外面远程连到这个节点就可以访问所有地方的机器,并且是走内网的
2.所有地方都有一个备用的蒲公英 4G 路由,这个主要用于备用链接/主接入宽带断线备用链接,如果通过正常方式进不去了就通过备用进
3.节点多了之后不可避免会遇到掉线问题,有时候掉线还不能被及时发现。所以买了个阿里云的 99 机器,做拨测,每隔 1min 播一下所有节点是否在线,连续三次掉线推告警到企业微信。这个主要是拨测网络入口,就是爱快的 wan ,主要拨测公网 v4 和公网 v6
4.还有一台机器在星型网络的中心,就是能连通所有节点的那个中心节点下,然后这台机器负责拨测所有内网设备,比如 ping ,http 地址,tcp 端口是否开放
以上基本能满足远程运维,拨测监控需求,并且费用比较低,成本可控,对于一些常见故障比如掉线后重新上线需要的一些脚本,可以联动,减少了手动处理的次数
gaobh
11 天前
前端网页做个更新包上传可不可以,程序写好脚本上传完更新一把嗦。
Ackvincent
11 天前
向日葵
jason56
10 天前
写个 socket 服务,终端实时连接+心跳包,服务端推送指令,终端执行指令
skyrim61
10 天前
@cnlnlhb 客户厂地的网络, 我们无法更改, 可惜
skyrim61
10 天前
随着服务器越来越多, 管理越发的难了, 现在最怕的就是要变更, 比如配置更新, 表结构修改
photon006
10 天前
frp 的 stcp 模式或 wireguard ,也可以多种方案同时部署
InDom
10 天前
首先必须要上的,主动更新能力,说白了就是启动时先检查更新,运行中每隔多久启动一次检查更新。

其次,如果你有远程回连的需求,则在定时检查更新时添加一个判断,如果本机需要被远程,则启动 frpc 之类的工具,可以通过你们服务器将 ssh 端口暴露到服务器内,你们就可以通过 ssh 连接目标服务器了,结束后关闭 frpc 穿透。

这个需求只需要你们自己有一个固定公网服务器即可,甚至检查更新都不需要服务器,纯静态文件 CDN 就可以解决。

一个文件记录最新的版本号,一个文件记录版本号历史,然后每个版本号对应一个升级包。

需要主动开启远控就再加一个文件,将等待被控的设备 ID 记录在内(以及分配 ssh 临时端口号)

最后,一定一定要做的,就是以上这些文件(升级包,远控配置等)都必须经过签名,客户机必须严格验证签名来源通过才行。

然后公司保护好私钥,对升级包以及远控命令都进行签名。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1051228

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX