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 版本信息: