0

我正在尝试实现脚本(sh,py..),如果我在节点上安装的应用程序是最新的,它将获得 mi True(Up) of 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>`

`<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 中没有那个文件,所以我的问题是我应该在哪里调用该脚本来执行,我是否想念其他任何东西来让它工作?

谢谢!

4

2 回答 2

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>

<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

有什么帮助吗?

于 2018-08-27T09:07:22.923 回答
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-repository 位于“/opt/opennms”。您是否在 Windows 或 Linux 上安装了 OpenNMS?服务定义中 groovy 脚本的路径来自 OpenNMS 进程的角度。

于 2018-09-06T03:30:59.937 回答