问题现象
一线顾问反馈NC65在sysconfig中加上了友云音的jvm参数,参数格式、路径都没有任何问题,所加载的jar包也是最新从官网下载的,但是在启动NC65时却显示 pinpoint start failed。观察友云音官网发现server没有注册成功。
把正式代码拷贝到测试主机环境下又是可以启动成功。
在生产环境中还原了个nc单点的环境,发现加上参数后,探针依旧启动失败。
问题分析
- 观察启动错误日志
发现日志中频繁的报空指针异常的错误。
... ...
Caused by: java.lang.NullPointerException
at com.navercorp.pinpoint.bootstrap.util.NetworkUtils.getRepresentationHostIp(NetworkUtils.java:92)
at com.navercorp.pinpoint.profiler.context.provider.AgentInformationProvider.createAgentInformation(AgentInformationProvider.java:71)
at com.navercorp.pinpoint.profiler.context.provider.AgentInformationProvider.get(AgentInformationProvider.java:65)
at com.navercorp.pinpoint.profiler.context.provider.AgentInformationProvider.get(AgentInformationProvider.java:38)
... ...
与探针研发小伙伴沟通后,初步怀疑是与客户生产环境网卡名获取不到有关。
- 检查网卡信息
cmd -> systeminfo 找到了如下信息
网卡: 安装了 1 个 NIC。
[01]: XenServer PV Network Device
连接名:本地连接 2
启用 DHCP: 否
IP 地址
[01]: X.X.X.X
查看网卡的详细信息也未发现异常。
- 工具排查
使用NetworkUtils 测试工具测试一下。
工具下载地址:检测操作系统网卡等相关信息工具-mac.jar-WindowsServer文档类资源-CSDN下载
java -jar mac.jar 查看输出结果。发现出现异常。
查看代码发现
在获取displayname时并没有判断是否为空。
解决方案
于是和探针小伙伴沟通,出具补丁解决此问题。补丁可找工作人员申领。
把补丁替换同级jar包(\probes\boot\boot.jar)即可。重启server。