[wgcloud-agent]2022/07/01 00:13:46 WgcloudAgent.go:287: 防篡改校验错误次数大于10次,不再上报数据: 32

简介: WGCLOUD监控平台在运行中,发现主机下线了,查看agent日志,发现以下错误日志

WGCLOUD监控平台在运行中,发现主机下线了,查看agent日志,发现以下错误日志

[wgcloud-agent]2022/07/01 00:12:46 WgcloudAgent.go:287: 防篡改校验错误次数大于10次,不再上报数据: 36
[wgcloud-agent]2022/07/01 00:13:46 WgcloudAgent.go:287: 防篡改校验错误次数大于10次,不再上报数据: 36
[wgcloud-agent]2022/07/01 00:14:46 WgcloudAgent.go:287: 防篡改校验错误次数大于10次,不再上报数据: 36
[wgcloud-agent]2022/07/01 00:15:46 WgcloudAgent.go:287: 防篡改校验错误次数大于10次,不再上报数据: 36
[wgcloud-agent]2022/07/01 00:16:46 WgcloudAgent.go:287: 防篡改校验错误次数大于10次,不再上报数据: 36
[wgcloud-agent]2022/07/01 00:17:20 WgcloudAgent.go:287: 防篡改校验错误次数大于10次,不再上报数据: 36
[wgcloud-agent]2022/07/01 00:17:46 WgcloudAgent.go:287: 防篡改校验错误次数大于10次,不再上报数据: 36
[wgcloud-agent]2022/07/01 00:17:46 WgcloudAgent.go:287: 防篡改校验错误次数大于10次,不再上报数据: 36
[wgcloud-agent]2022/07/01 00:18:46 WgcloudAgent.go:287: 防篡改校验错误次数大于10次,不再上报数据: 36

这个问题注意几点:

(1) server和agent的主机系统时间差不能大于15个小时,若时间差不超过15小时打印【防篡改校验错误】类似信息,忽略即可

(2) v3.3.5之前版本,server主机的9997端口(这是守护进程wgcloud-daemon-release的默认端口)要开放给agent主机,保证agent主机可以telnet通server的9997端口

v3.3.5或以后版本9997端口已经不需要开放给agent访问

(3) 若是v3.3.5或之后版本,查看server本机是否能正常访问http://localhost:9997获得返回值,如:2faa233a1400201bedc199fe1d8ab393,若server主机的localhost不能使用,可以在配置文件server/config/application.yml,将配置项daemonUrl: http://localhost:9997 中的localhost改成server主机ip

(4) wgcloud-server-release.jar不要编辑修改,若编辑过,还原回去原始安装包里的wgcloud-server-release.jar即可

(5) server和agent要保持同一个版本号

(6) server端的守护进程(wgcloud-daemon-release)不要关闭,特别是Windows注意不要关闭守护进程窗口。若是Linux,查看此进程是否存活(ps -ef | grep wgcloud)

还有一种可能是server部署在Windows,不小心左键点击守护进程的窗口,进入编辑模式了,右击恢复就好了

如果因为此原因的话,重启server(守护进程会随着server启动)后,1小时内所有agent会陆续恢复上线,也可以手动重启agent(立即上线)

(7) server如果运行在arm、龙芯等系统,需要将守护进程wgcloud-agent-release替换为对应的版本,点击下载

(8) 如果server长时间没有运行,那么当server重新启动后,agent会在1小时内陆续自动恢复上线,不用重启agent。也可以手动重启agent,会立刻恢复上线

相关文章
|
人工智能 安全 Shell
Go并发编程避坑指南:从数据竞争到同步原语的解决方案
在高并发场景下,如钱包转账,数据一致性至关重要。本文通过实例演示了 Go 中如何利用 `sync.Mutex` 和 `sync.RWMutex` 解决数据竞争问题,帮助开发者掌握并发编程中的关键技能。
Go并发编程避坑指南:从数据竞争到同步原语的解决方案
|
12月前
|
存储 监控 算法
企业电脑监控系统中基于 Go 语言的跳表结构设备数据索引算法研究
本文介绍基于Go语言的跳表算法在企业电脑监控系统中的应用,通过多层索引结构将数据查询、插入、删除操作优化至O(log n),显著提升海量设备数据管理效率,解决传统链表查询延迟问题,实现高效设备状态定位与异常筛选。
265 3
Go语言同步原语与数据竞争:Mutex 与 RWMutex
在Go语言并发编程中,数据竞争是多个goroutine同时读写共享变量且未加控制导致的问题,可能引发程序崩溃或非确定性错误。为解决此问题,Go提供了`sync.Mutex`和`sync.RWMutex`两种同步机制。`Mutex`用于保护临界区,确保同一时间只有一个goroutine访问;`RWMutex`支持多读单写的细粒度控制,适合读多写少场景。使用时需避免死锁,并借助`-race`工具检测潜在的数据竞争,从而提升程序稳定性和性能。
369 51
|
测试技术 Go API
Go 切片导致 rand.Shuffle 产生重复数据的原因与解决方案
在 Go 语言开发中,使用切片时由于其底层数据共享特性,可能会引发意想不到的 Bug。本文分析了 `rand.Shuffle` 后切片数据重复的问题,指出原因在于切片是引用类型,直接赋值会导致底层数组共享,进而影响原始数据。解决方案是使用 `append` 进行数据拷贝,确保独立副本,避免 `rand.Shuffle` 影响原始数据。总结强调了切片作为引用类型的特性及正确处理方法,确保代码稳定性和正确性。
444 82
|
数据采集 网络协议 测试技术
使用Go Validator在Go应用中有效验证数据
使用Go Validator在Go应用中有效验证数据
|
开发框架 JSON 中间件
Go语言Web开发框架实践:路由、中间件、参数校验
Gin框架以其极简风格、强大路由管理、灵活中间件机制及参数绑定校验系统著称。本文详解其核心功能:1) 路由管理,支持分组与路径参数;2) 中间件机制,实现全局与局部控制;3) 参数绑定,涵盖多种来源;4) 结构体绑定与字段校验,确保数据合法性;5) 自定义校验器扩展功能;6) 统一错误处理提升用户体验。Gin以清晰模块化、流程可控及自动化校验等优势,成为开发者的优选工具。
|
编译器 测试技术 Go
Go语言同步原语与数据竞争:数据竞争的检测工具
本文介绍了 Go 语言中数据竞争(Data Race)的概念及其检测方法。数据竞争发生在多个 Goroutine 无同步访问共享变量且至少一个为写操作时,可能导致程序行为不稳定或偶发崩溃。Go 提供了内置的竞态检测器(Race Detector),通过 `-race` 参数可轻松检测潜在问题。文章还展示了如何使用锁或原子操作修复数据竞争,并总结了在开发和 CI 流程中启用 `-race` 的最佳实践,以提升程序稳定性和可靠性。
Go语言同步原语与数据竞争:WaitGroup
本文介绍了 Go 语言中 `sync.WaitGroup` 的使用方法和注意事项。作为同步原语,它通过计数器机制帮助等待多个 goroutine 完成任务。核心方法包括 `Add()`(设置等待数量)、`Done()`(减少计数)和 `Wait()`(阻塞直到计数归零)。文章详细讲解了其基本原理、典型用法(如等待 10 个 goroutine 执行完毕),并提供了代码示例。同时指出常见错误,例如 `Add()` 必须在 goroutine 启动前调用,以及 WaitGroup 不可重复使用。最后总结了适用场景和使用要点,强调避免竞态条件与变量捕获陷阱。
|
安全 Go 调度
Go同步原语与数据竞争:原子操作(atomic)
本文介绍了Go语言中`sync/atomic`包的使用,帮助避免多goroutine并发操作时的数据竞争问题。原子操作是一种不可中断的操作,确保变量读写的安全性。文章详细说明了常用函数如`Load`、`Store`、`Add`和`CompareAndSwap`的功能与应用场景,并通过并发计数器示例展示了其实现方式。此外,对比了原子操作与锁的优缺点,强调原子操作适用于简单变量的高效同步,而不适合复杂数据结构。最后提醒开发者注意使用场景限制,合理选择同步工具以优化性能。
|
存储 算法 Java
Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据
Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据