对传感器进行故障诊断

本主题描述了 Ping 传感器发生的常见问题,并提供了这些问题的解决方案。

Ping 传感器发现结束,无法建立回送连接消息

问题
当发现范围较大时,由于超时错误,传感器会失败,并显示以下消息:
无法建立回送连接
查看日志文件以获取消息的详细描述,例如:
<log start>
java.io.IOException: Unable to establish loopback connection
at sun.nio.ch.PipeImpl$Initializer.run(PipeImpl.java:172)
at java.security.AccessController.doPrivileged(AccessController.java:246)
at sun.nio.ch.PipeImpl.<init>(PipeImpl.java:188)
at sun.nio.ch.SelectorProviderImpl.openPipe(SelectorProviderImpl.java:45)
at java.nio.channels.Pipe.open(Pipe.java:148)
at sun.nio.ch.WindowsSelectorImpl.<init>(WindowsSelectorImpl.java:192)
at sun.nio.ch.WindowsSelectorProvider.openSelector(WindowsSelectorProvider.java:53)
at java.nio.channels.Selector.open(Selector.java:224)
at com.collation.platform.session.Ping$Connector.<init>(Ping.java:303)
at com.collation.platform.session.Ping.pingArray(Ping.java:656)
at com.collation.platform.session.Ping.pingLoop(Ping.java:574)
at com.collation.platform.session.Ping.ping(Ping.java:557)
at com.ibm.cdb.discover.sensor.net.ping.PingSensor.do_ping(PingSensor.java:75)
at com.ibm.cdb.discover.sensor.net.ping.PingSensor.discover(PingSensor.java:92)
at com.collation.discover.engine.AgentRunner.run(AgentRunner.java:214)
at com.collation.discover.engine.DiscoverEngine.processWorkItem(DiscoverEngine.java:1184)
at com.collation.discover.engine.DiscoverEngine$DiscoverWorker.run(DiscoverEngine.java:867)
Caused by: java.nio.channels.ClosedByInterruptException
at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:216)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:543)
at java.nio.channels.SocketChannel.open(SocketChannel.java:161)
at sun.nio.ch.PipeImpl$Initializer.run(PipeImpl.java:120)
... 16 more
<log end>
解决方案
使用下列其中一种方法来解决问题:
  • 在较小的作用域上执行发现。
  • collation.properties 文件中,增大以下属性的较长发现时间的超时值:
    com.collation.discover.agent.PingSensor.timeout=600000 

Ping 传感器发现结束,发生错误 CTJTD0510E

问题
如果启用基于 UDP 的 ping 发现,那么在发现大型作用域时,传感器可能会因超出打开套接字的限制而结束,并产生以下错误:
CTJTD0510E ping 传感器中发生了以下错误: 打开的文件过多。
查看日志文件以获取消息的详细描述,例如:
<log start>
sensor.PingSensor - Exception in Ping Broadcast Agent
java.io.IOException: Too many open files
    at sun.nio.ch.IOUtil.makePipe(Native Method)
		at sun.nio.ch.EPollSelectorImpl.<init>(EPollSelectorImpl.java:77)
    at sun.nio.ch.EPollSelectorProvider.openSelector(EPollSelectorProvider.java:48)
    at java.nio.channels.Selector.open(Selector.java:238)
    at com.collation.platform.session.Ping$TcpConnector.<init>(Ping.java:354)
    at com.collation.platform.session.Ping$TcpConnector.<init>(Ping.java:349)
    at com.collation.platform.session.Ping.pingArray(Ping.java:926)
    at com.collation.platform.session.Ping.pingLoop(Ping.java:840)
    at com.collation.platform.session.Ping.ping(Ping.java:821)
    at com.ibm.cdb.discover.net.ping.sensor.PingSensor.do_ping(PingSensor.java:81)
    at com.ibm.cdb.discover.net.ping.sensor.PingSensor.discover(PingSensor.java:114)
    at com.collation.discover.engine.AgentRunner.doRegularDiscovery(AgentRunner.java:349)
    at com.collation.discover.engine.AgentRunner.run(AgentRunner.java:271)
    at com.collation.discover.engine.DiscoverEngine.processWorkItem(DiscoverEngine.java:736)
    at com.collation.discover.engine.worker.DiscoverWorker.processWorkItemWithMetrics(DiscoverWorker.java:100)
    at com.collation.discover.engine.worker.DiscoverWorker.run(DiscoverWorker.java:146)
2012-09-12 16:48:29,076 DiscoverManager [DiscoverWorker-5] 
PingSensor-9.156.46.6˜9.156.46.254 WARN engine.AgentRunner - 
[AgentRunner.W.1] AgentException thrown in agent
com.collation.discover.agent.AgentException: 
CTJTD0510E The following error occurred in the ping sensor: Too many open files .
<log end>
解决方案
使用下列其中一种方法来解决问题:
  • 在较小的作用域上执行发现。
  • 在 UNIX 系统上,增大发现服务器上的打开文件限制。 有关打开文件限制的更多信息,请参阅 TADDM 服务器软件需求

Ping 传感器由于超时错误而失败

问题
对于大型作用域,传感器由于超时错误而发生故障。
在 UI 中可视的 Ping 传感器的所有操作都按顺序运行。 collation.properties 文件中指定的超时值定义完成这些操作所需的总时间。
解决方案
使用下列其中一种方法来解决问题:
  • 在较小的作用域上执行发现。
  • collation.properties 文件中,增大以下属性的较长发现时间的超时值:
    com.collation.discover.agent.PingSensor.timeout=600000 

传感器不会通过 UDP 协议发现端点

问题
发现仅可通过 UDP 协议访问的端点时,其中一些端点缺失。
解决方案
您必须配置负责通过 UDP 协议进行发现的属性。 有关这些属性的更多信息,请参阅 配置 collation.properties 文件
为了检索有关打开的 UDP 端口的信息, Ping 传感器使用 SNMP 协议来查询发现端点。 确保在 TADDM 访问列表中提供了正确的 SNMP 或 SNMPv3 认证凭证。 您还可以验证防火墙是否通过 com.ibm.cdb.discover.pingUDPPorts 属性中指定的端口传递网络流量。