0

HttpMonitor Config 在 tomcat7 上运行良好,并且检测到 http 服务,但是因为我们已更新到 tomcat 8.5,除非我们将连接器属性设置为 sendReasonPhrase=true,否则不会发现 http 服务,与 tomcat7 相比,curl 响应的差异如下所示和 tomcat 8.5(不发送 Reson Phrase 参数集)

在此处输入图像描述

在此处输入图像描述

tomcat7 在其标题中给出了 ok 而 tomcat8.5 没有。

但是 sendreson 阶段的选项将被弃用并从 tomcat9 中删除,甚至此选项也不可用(https://tomcat.apache.org/tomcat-8.5-doc/config/http.html

我不确定为什么 openNms 中的 httpMonitor 无法检测到 http 服务,即使 snmpwalk 输出看到端口 80 可用(有和没有发送原因短语) 在此处输入图像描述

在 poller-configuration.xml 看起来像下面的 http

<service name="HTTP" interval="300000" user-defined="false" status="on">
 <parameter key="retry" value="1"/>
 <parameter key="timeout" value="3000"/>
 <parameter key="port" value="80"/>
 <parameter key="url" value="/"/>
 <parameter key="rrd-repository" value="/var/lib/opennms/rrd/response"/>
 <parameter key="rrd-base-name" value="http"/>
 <parameter key="ds-name" value="http"/>
 </service>

即使我们尝试设置

<parameter key="response-text" value="~\bOK\b"/>
and 

<parameter key="response" value="200"/> 

但是它没有帮助,我想一旦发现服务,上面的参数就会发挥作用,但是这里的问题是服务没有被发现(除非 SendReson 阶段打开)如果我们有 sendreson 阶段,它只会在 tomcat 8.5 中检测 http 服务在 server.xml 内的连接器定义中

请帮助在此处了解此行为以及可能的解决方案,而无需在客户端进行任何更改。

openNms 版本信息:

在此处输入图像描述

4

0 回答 0