OpenNMS实现脚本以获取任何服务的状态

时间:2018-08-23 12:44:27

标签: opennms

我正在尝试实现脚本(sh,py ..),如果我在节点上安装的应用程序是最新的,则它将获得mi True(Up)为False(Down)状态。

在此之前,我试图实现在网络(https://wiki.opennms.org/wiki/SystemExecuteMonitor)上找到的简单脚本,只是为了查看脚本是否有效。

OpenNMS已安装在Windows 10上。 这是我到目前为止所做的:

在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>`

AND

`<monitor service="Test" class-name="org.opennms.netmgt.poller.monitors.SystemExecuteMonitor"/>`

在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!

2 个答案:

答案 0 :(得分:0)

同时,我已经实现了如下这样的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>

AND

<monitor service="MinGroovy" class-name="org.opennms.netmgt.poller.monitors.BSFMonitor"/>

这是我的常规脚本:

#!/usr/bin/env groovy\
bsf_monitor.log("ERROR", "Starting MinimalGroovy.groovy", null);

filePath = "//netpath/output/temp.txt"
file = new File(filePath)

if (file.exists()){
 return "OK";
  }else{
 return "NOK";
  }

在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

有帮助吗?

答案 1 :(得分:0)

您在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?从OpenNMS流程角度来看,服务定义中的groovy脚本路径。