首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenNMS系统配置

OpenNMS系统配置
EN

Stack Overflow用户
提问于 2017-09-14 15:51:04
回答 2查看 1K关注 0票数 0

我正在尝试将OpenNMS配置为从ASA接收Syslog消息。我的syAdd.1-d配置文件如下所示:

代码语言:javascript
复制
<configuration
    syslog-port="514"
    new-suspect-on-message="false"
    parser="org.opennms.netmgt.syslogd.CustomSyslogParser"
    forwarding-regexp="((.+?) (.*))\r?\n?$"
    matching-group-host="2"
    matching-group-message="3"
    />

syslog消息以这种格式到达:

代码语言:javascript
复制
Sep 13 08:36:37 192.168.75.254 %ASA-4-106023: Deny tcp src outside:144.5.5.255/
56607 dst inside:192.168.75.102/23 by access-group "outside_access_in" [0x0, 0x0]

有了这个配置,我可以将syslog消息导入Opennms,但它们是indeterminate。这个正则表达式似乎无法解析。当我在像regex101.com这样的其他网站测试这个正则表达式时,它清楚地表示没有匹配。我已经创建了一个正则表达式,该正则表达式符合我的需要:

\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s*([\s\S]*)

但是,当我将它添加到配置中时,我将不再收到任何Syslog消息。

有没有人知道我是怎么让这一切发生的。我花了太多的时间在这件事上。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-19 15:00:14

好吧,看来我已经搞清楚了。我将尝试在这里发布一个完整的答案,希望它能帮助别人解决问题。医生在这方面不是最清楚的。

用于配置的引用是赛拉博德TechTarget

首先,您需要设置$OPENNMS_HOME/etc/syslogd-configuration.xml,使其具有以下内容:

代码语言:javascript
复制
<configuration
    syslog-port="10514"
    new-suspect-on-message="false"
    parser="org.opennms.netmgt.syslogd.CustomSyslogParser"
    forwarding-regexp="((.+?) (.*))\r?\n?$"
    matching-group-host="2"
    matching-group-message="3"
    />

<ueiList>
    <ueiMatch>
        <match type="regex" expression="YOUR REGEX HERE"/>
        <uei>uei.opennms.org/foo1/foo2/foo3</uei>
    </ueiMatch>
</ueiList>

ueiList元素是我的第一个问题。这就是您实际将syslog消息映射到自定义uei的位置。可以自定义uei以创建您希望拥有的任何唯一标识符。

第二个问题是如何将自定义uei映射为具有属性,例如警报级别。这是通过$OPENNMS_HOME/etc/eventconf.xml文件完成的。我在</global>标记下面插入了以下代码,以便为我的新的自定义uei配置属性。

代码语言:javascript
复制
<event>00-custom.conf
    <uei>uei.opennms.org/foo1/foo2/foo3</uei>
    <event-label>Event Label Here</event-label>
    <descr>
           An event description here
    </descr>
    <logmsg dest='logndisplay'>Here is the Log: %parm[all]%</logmsg>
    <severity>Critical</severity>
</event>

有了这些功能之后,syslog消息应该具有所需的属性。注意:在我的场景中,我使用的是非标准的syslog消息,这就是为什么我必须在我的parser="org.opennms.netmgt.syslogd.CustomSyslogParser"文件中使用syslogd-confguration.xml设置。如果您正在使用syslog或更好的格式化syslog,还有其他选项。

要帮助解决疑难问题,您可以转到$OPENNMS_HOME/etc$OPENNMS_HOME/bin并运行以下代码:opennms -v status,这将显示NMS的每个运行过程及其状态。

注意:在更改配置文件后,您必须运行service opennms restart (debian系统)才能重新加载新配置。如果您收到JVM错误或“无法连接到本地主机”错误,这很可能是因为您破坏了这两个信任中的一个。即使在xml文件的顶部增加一个额外的空间,也会造成这个问题。在编辑文件时要小心,我强烈建议您创建备份。

票数 1
EN

Stack Overflow用户

发布于 2017-09-15 08:04:44

正如我所看到的,解析器属性"CustonSyslogParser“和"CustomSyslogParser“。为了确保您在这里没有其他问题:)

否则,有两个组成部分发挥作用:

  • 事件定义,它是Syslog消息映射到OpenNMS事件中的结果。
  • Syslog解析规则,它标识Syslog消息并将其映射到给定的OpenNMS事件定义。

您应该看看OpenNMS附带的后缀Syslog实现。

例如,在文件$ OpenNMS _HOME/etc/ Syslog / contains .syAdd.1-.xml中,您将找到一条规则,它查看传入的Syslog消息,并选择包含“禁用TLS支持”的每个Syslog消息,并创建一个具有OpenNMS唯一事件标识符(UEI)的事件。

使用UEI uei.opennms.org/vendor/postfix/syslog/postfix/TLSDisabled定义事件的严重性在$OPENNMS_中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46223511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档