logo NodeSeekbeta

探针 Agent 同时上报多个 Server,是个不错的思路

如果一个 Agent 能同时向多个 Server 上报,两台主控分别使用独立数据库,那么其中一台主控连同数据库一起故障,另一台仍能继续接收和展示监控数据,可以降低对单个主控可靠性的依赖。

目前了解到 NodeGet 已经支持,不确定还有哪些探针项目支持类似功能。不过我个人更喜欢 Go,主要是不懂 Rust,后续想自己修改功能或排查问题,Go 项目会更容易上手。NodeGet 的功能也比我的实际需求多一些,我更希望有一个轻量的方案。

当然,多端上报也有额外开销,配置维护、告警去重和历史数据同步都需要考虑。但如果主要需求是“一台主控挂了,另一台还能看”,感觉这个思路挺实用。

大家还知道哪些支持多 Server 上报的探针?最好是 Go 写的

  • 不如cf

  • 我这个可以,但是项目不可见了 xhj011

  • @astom #2 我也是没精力(token)去搞探针了

  • @kevinhwang #3 我还在找能 分布式 多主控的 探针,nodeget感觉有点麻烦 xhj007

  • @astom #4 这个复杂了,感觉没必要。多server单纯是oneman有些机器性能很强,但是不稳定,可最大化压榨server的性能

  • @UPSTREAM互联网服务 #6
    看起来可以,你是作者?

    可以满足你现在的核心需求:Go 编写,一个 Agent 向两套主控上报,其中一台主控连同数据库故障后,另一台仍能查看监控。 不过,它的主控部署依赖比 SQLite 探针多一些。

    我看了中文 README 和 Agent 源码,具体情况如下:

    你的要求 Ithiltir 的情况
    Go 编写,方便自己修改 主控和 Agent 都是 Go
    一个 Agent 上报多个 Server 支持配置多个上报目标,每轮并行发送
    一台主控+数据库故障,另一台继续使用 两套主控使用独立数据库、提前同时接收数据,可以实现
    网页入口故障后自动切换 未查到现成的自动切换方案,可分别访问两套面板
    数据库、历史和配置自动同步 这需要另外解决,多目标上报本身不提供复制能力

    依据:主控说明 (https://github.com/Ithildur/Ithiltir/blob/main/README_CN.md)、Agent 上报文档 (https://github.com/Ithildur/Ithiltir-node/blob/main/docs/reporting_apis_CN.md)。

    部署时,在两台机器上分别安装 Dash 和数据库,在两边分别创建节点,再把两个上报目标加入同一个 Agent。README 中的“单实例”限制,是指不能让多个 Dash 进程同时写同一套状态,不妨碍这种独立部署方式。

    有两点比较影响你的选择:

    按你“一台挂了,另一台还能看”的目标,它值得试用。 建议重点验证主控无响应时另一端的上报间隔,以及恢复后的历史缺口。本次结论来自文档和源码核查,尚未做双机故障实测。

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有73049位seeker

🎉欢迎新用户🎉