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

13 天前
 skyrim61

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

2437 次点击
所在节点    程序员
45 条回复
267263
12 天前
监控其实好解决,让项目上的服务器主动推送到你们的服务器就行。如果只是 ssh 远程的话,内网穿透+密钥登录+fail2ban 就能解决。批量管理不好弄,每个项目上的网络环境都不同,批量运行命令很容易报错,公司最好开发一个管理的平台,或者说优化一下更新的功能。
KB12312
12 天前
tr069
sunzhenyucn
12 天前
tailscale
liuliancao
12 天前
这个主要是技术债吧,你们没有一套完善的新服务的流程
1. 监控可以考虑下 zabbix 用 root 起 这样可以通过 zabbix 下发命令
2. 配置同步有很多方案你可以外部写个轮询脚本,也可以用 iac 工具,我目前是 puppet
3. 最好还是有个地方维护这些服务器,比如 cmdb
4. 用 frp 或者其他组网也可以这样你就可以通过 jumpserver 或者 ssh 终端去管理了
实在不行 你们后续要求云就可以了 zzz
xueling
8 天前
一、配置文件如何更新,首先配置文件要有版本标识,系统版本和配置文件版本互相关联,防止出现系统版本和配置文件版本出现兼容性问题。配置文件尽可能考虑向下兼容设计。采用客户端定时拉取的方式进行升级。
客户端拉取后将配置文件和升级程序存放在单独目录,验证升级包数据完整后,定时执行系统更新。系统增加故障恢复机制,升级失败后可以回退到原版本。所以建议要将:配置文件目录、系统安装目录、数据库数据目录、升级或回退程序目录、临时升级包存放目录要区分清楚,目录混在一起就非常容易出问题。

二、监控数据上报如何实现,由于客户网络状况较为复杂,建议采用定时上报心跳包的形式,系统将心跳包日志数据首先写入到暂存目录。然后打包线程根据数据量和时间生成日志文件,比如每 5 分钟生成一个日志包文件。使用异步上报线程将暂存目录的日志包数据上报到远程服务器。上报正常则清除客户端的缓存数据,否则等待下一次异步线程轮询处理。

三、系统监控和业务监控如何实现,我理解你说的系统监控是指系统运行状态监控,包括:磁盘、cpu 、内存、负载和系统运行状态等指标, 业务监控是指根据你们自身业务逻辑层面的监控,比如像订单量、你说的 OCR 识别次数、OCR 异常率等此类你们需要的所有的业务类指标,

我看到楼上推荐的技术方案,其实并不符合你们的场景,这些千篇一律的服务器运行状态监控,提供的都是一些相对固定的数据指标,实现自定义扩展很难。而且接入也比较麻烦,也不能实现业务层面的指标监控。

我向你推荐我的开源项目: https://github.com/xl-xueling/xl-lighthouse ,可以灵活的自定义设置各种监控指标,灵活的设置分钟级、小时级、天级粒度的统计监控,支持自定义设置统计维度,一键部署、支持数据备份、有完善的 API 接口,,支持 rpc 接口和 http 接口接入,非常方便,也可以通过 api 查询统计指标、有完善的指标可视化功能和权限管理机制、你们只有 100 台服务器,感觉用单机版就可以了,最低配置只需要一台 4 核 8g 的服务器。

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

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

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

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

© 2021 V2EX