如果agent日志文件中,出现如上标红的错误提示,我们耐心按照下面顺序依次排查下,一般就如下这几个原因,挺简单的
1、 可能是网络不通,agent主机ping不通server主机,或者访问不到server端口
agent日志文件(在agent/log目录下)如果出现如下错误信息,表示agent主机ping不通server主机,网络不通
我们可以在agent主机使用命令 ping [server主机IP] 来测试网络连通性
agent日志文件如果出现如下错误信息,表示agent主机连不通server的端口,网络连接超时,可能是防火墙没开放server的端口
我们可以在agent主机使用命令 telnet [server主机IP] 9999 来测试端口的连通性
agent主机没有安装telnet工具怎么办?
如果是在Linux部署的agent程序,可以在agent主机这样测试下 curl http://[server主机IP]:9999/login/toLogin ,看能否返回登录页面的html内容,如果不能返回,说明端口不通。如果能返回,说明端口可以连通
如果是在Windows部署的agent程序,可以在agent主机这样测试下,直接在浏览器打开链接 http://[server主机IP]:9999/login/toLogin ,看能否能打开登录页面,如果不能打开页面,说明端口不通。如果能打开页面,说明端口可以连通
2、 检查下agent配置文件(config/application.properties)的serverUrl是否正确
可能是其中的字符格式有问题,比如逗号和冒号写成了中文字符,也可能是IP或者端口书写错误
3、 server和agent的主机系统时间差不能大于16个小时
如果agent主机系统时间和server主机系统时间相差超过16小时,那么agent会显示下线,我们只要把agent主机的系统时间修改为和server主机一样就可以了,然后重启下agent程序
如果时间差不超过16小时打印【防篡改校验错误】类似信息,忽略即可,不会有影响
4、 是不是agent的进程wgcloud-agent被kill掉了,或者agent主机重启或断电,导致agent程序没有运行
我们再把agent启动就可以了
5、 wgcloud-server-release.jar不要编辑修改
也不要改文件名称,若编辑过,请还原到安装包里的原始wgcloud-server-release.jar即可
6、 agent和server要保持同一个版本号
如果agent和server版本不一致,agent运行一段时间后就会显示agent下线,如何查看server和agent的版本号
7、 agent安装包和主机操作系统的CPU架构类型不匹配
比如主机操作系统是ARM64的,但是下载了AMD64或者x86-64的agent,所以agent启动不了,查看说明第3条
8、server端的守护进程(wgcloud-daemon-release)不要关闭,如果关闭它,那么过一段时间后所有主机会显示下线
特别是Windows不要关闭守护进程的运行窗口(如果把server注册为系统服务了,那么就不需要运行窗口了)。如果是Linux部署的server程序,守护进程可能是被kill了,查看守护进程是否还存活(ps -ef | grep wgcloud)
还有一种可能是server或者agent部署在Windows,不小心鼠标左击了程序运行的黑窗口,进入了【选择】模式导致程序停止运行了,这时候只要鼠标右击恢复就好了,如下图

如果是此原因导致的话,重启server程序即可 (守护进程会随着server启动),1小时内所有被控端agent会陆续恢复上线,也可以手动重启agent(立即上线)
9、 修改了守护进程wgcloud-daemon-release的默认端口导致的,但是没有在server配置文件中同步修改守护进程端口
10、在server主机上访问这个URL:http://localhost:9997,看看有没有返回值,有返回值的话就没问题
返回值如:2faa233a1400201bedc199fe1d8ab393,如果server主机的localhost不能使用(一般用localhost就行,不用改)
也可以在配置文件server/config/application.yml,将如下配置项中的localhost改成server主机ip
提示:一般不要修改这个配置项,保持默认即可,就用localhost就行,用localhost有个好处,那就是server主机防火墙不用另外再开放端口9997,因为守护进程只有server主程序访问,其他程序不会访问
注意,如果改成IP后,在server主机上访问URL:http://修改后的IP:9997,看有没有返回值,有返回值的话就没问题
如果server的日志中出现下面这个错误提示,可能是防火墙没有开放9997端口导致的
11、在server日志看看,是不是server连不上数据库了
如果是这种情况的话,处理好并重启server程序后,所有agent就会在1小时内陆续恢复上线,也可以重启agent会立即上线
12、server如果运行在ARM等CPU架构的系统,注意需要将守护进程wgcloud-daemon-release替换为对应的版本,不然守护进程启动不起来,agent也会显示下线
13、如果server程序或守护进程(wgcloud-daemon-release)长时间没有启动运行
那么当server重新启动后,所有agent主机会在1小时内陆续自动恢复上线,不用重启agent。也可以手动重启agent ,下线主机会立刻恢复上线
14、检查是不是有安全软件,设置了一些过滤规则,导致agent无法将数据上报给server
有的防火墙设置了规则很奇怪,agent可以从server请求获取数据,但是无法给server提交上报数据
15、如果是在docker部署的server程序
我们检查下是否把config/application.yml中的守护进程url中的localhost改为宿主机ip了,如下
一般需要改下,除非是docker容器内可以访问http://localhost:9997的话,那就可以不改
16、是不是被控主机的IP变化了,所以旧的IP显示下线了
一般agent如果没有设置bindIp,那么会自动获取被控主机IP,如果IP变化了,那么旧的主机IP在主机列表会显示下线
我们可以手动设置下agent的bindIp,那么agent就不会自动获取被控主机IP了,查看如何设置说明
一般就如上这些原因