问题现象
监控工具报错“采集中心不可达”,需要在发生监控中心不可达时查看 java 堆栈信
息(发生问题后先不要重启程序,重启会清空堆栈),命令如下:
1)查看端口占用:lsof -i:{采集中心端口号}; 2)如 1)命令无信息,则再采集中心目录 center.pid 文件中获取进程号;
3)使用如下命令抓取程序运行内存信息:
jmap -dump:format-b,file-[文件名][pid]
4)使用如下命令抓取堆栈信息:
jstack [pid] > gcmonitor.log
原因分析
通过分析程序日志,发现采集中心进程日志有内存溢出,目前判断此问题与 agent
开启 snmp 的配置有关。
解决方法
30.6.0 存在该问题,该版本可通过禁用 snmp 服务解决(修改配置文件:
gcmonitor_agent/conf/sys/snmp_udp_config.properties)。
需要注意的是这里提到的 snmp 是 agent端的采集服务,与采集中心的报警推送 snmp
没有关系,不影响与客户的报警集成功能。