OpenNMS实现脚本以获取任何服务的状态
我正在尝试实现脚本(sh,py…),如果我在节点上安装的应用是最新的,则该脚本将获得mi True(Up)或False(Down)状态 在此之前,我尝试实现在net()上找到的简单脚本,只是为了看看脚本是否有效 OpenNMS安装在Windows 10上。 这就是我目前所做的: 在poller-configuration.xml中OpenNMS实现脚本以获取任何服务的状态,opennms,Opennms,我正在尝试实现脚本(sh,py…),如果我在节点上安装的应用是最新的,则该脚本将获得mi True(Up)或False(Down)状态 在此之前,我尝试实现在net()上找到的简单脚本,只是为了看看脚本是否有效 OpenNMS安装在Windows 10上。 这就是我目前所做的: 在poller-configuration.xml中 `<service name="Test" interval="300000" user-defined="false" status="on">
`<service name="Test" interval="300000" user-defined="false" status="on">
<parameter key="script" value="/etc/scripts/test.sh"/>
<parameter key="banner" value="OK"/>
<parameter key="retry" value="3"/>
<parameter key="timeout" value="3000"/>
<parameter key="rrd-repository" value="/opt/opennms/share/rrd/response"/>
<parameter key="ds-name" value="test"/>
</service>`
<service name="MinGroovy" interval="300000" user-defined="true" status="on">
<parameter key="file-name" value="C:/OpenNMS/etc/scripts/MinimalGroovy.groovy"/>
<parameter key="bsf-engine" value="org.codehaus.groovy.bsf.GroovyEngine"/>
<parameter key="rrd-repository" value="/opt/opennms/share/rrd/response" />
</service>
`
`
及
``
在default-foreign-source.xml中
`<detector name="Test" class="org.opennms.netmgt.poller.monitors.SystemExecuteMonitor">
<parameter key="script" value="/etc/scripts/test.sh"/>
<parameter key="banner" value="OK"/>
<parameter key="retry" value="3"/>
<parameter key="timeout" value="3000"/>
<parameter key="rrd-repository" value="/opt/opennms/share/rrd/response"/>
<parameter key="ds-name" value="test"/>
</detector>`
`
`
这就是我缺少的:snmpd.conf
我在OpenNMS中没有这个文件,所以我的问题是,我应该在哪里调用要执行的脚本,以及我是否错过了使其工作的任何其他内容
Thnx 同时,我实现了如下groovy脚本: 在poller-configuration.xml中
`<service name="Test" interval="300000" user-defined="false" status="on">
<parameter key="script" value="/etc/scripts/test.sh"/>
<parameter key="banner" value="OK"/>
<parameter key="retry" value="3"/>
<parameter key="timeout" value="3000"/>
<parameter key="rrd-repository" value="/opt/opennms/share/rrd/response"/>
<parameter key="ds-name" value="test"/>
</service>`
<service name="MinGroovy" interval="300000" user-defined="true" status="on">
<parameter key="file-name" value="C:/OpenNMS/etc/scripts/MinimalGroovy.groovy"/>
<parameter key="bsf-engine" value="org.codehaus.groovy.bsf.GroovyEngine"/>
<parameter key="rrd-repository" value="/opt/opennms/share/rrd/response" />
</service>
在groovy-starter.conf中,我添加了:
enter #lib for opennms
load ${opennms.home}/lib/*.jar
若我在groovy控制台中运行脚本,它就可以正常工作了
这是我在OpenNMS的poller.log中得到的错误:
ERROR [pool-9-thread-27] o.o.n.p.m.BSFMonitor: Starting MinimalGroovy.groovy
有什么帮助吗?我觉得poller-configuration.xml中的服务定义可疑:
<service name="MinGroovy" interval="300000" user-defined="true" status="on">
<parameter key="file-name" value="C:/OpenNMS/etc/scripts/MinimalGroovy.groovy"/>
<parameter key="bsf-engine" value="org.codehaus.groovy.bsf.GroovyEngine"/>
<parameter key="rrd-repository" value="/opt/opennms/share/rrd/response" />
</service>
文件名位于“C:/…”上,而您的rrd存储库位于“/opt/opennms”中。您是否在Windows或Linux上安装了OpenNMS?服务定义中groovy脚本的路径是从OpenNMS进程的角度来看的。Hello!几天前我找到了一个解决办法。Lib是个问题,错误的版本:)现在一切都正常了。塔克斯!
<service name="MinGroovy" interval="300000" user-defined="true" status="on">
<parameter key="file-name" value="C:/OpenNMS/etc/scripts/MinimalGroovy.groovy"/>
<parameter key="bsf-engine" value="org.codehaus.groovy.bsf.GroovyEngine"/>
<parameter key="rrd-repository" value="/opt/opennms/share/rrd/response" />
</service>