HttpMonitor Config在tomcat7上运行正常,并且已检测到http服务,但是由于我们已经更新到tomcat 8.5,因此除非发现连接器属性设置为sendReasonPhrase = true,否则不会发现http服务,curl响应中的差异如下所示与tomcat7和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 pharse),它只会在tomcat 8.5中检测到http服务sendreson阶段在server.xml内的连接器定义中打开
请在不更改客户端的情况下,帮助您了解此行为以及可能的解决方案。
openNms版本信息: