我正在尝试配置OpenNMS以从ASA接收Syslog消息。 我的syslogd配置文件如下所示:
<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"
/>
系统日志消息以这种格式到达:
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]
使用此配置,我可以将系统日志消息发送到Opennms,但它们以indeterminate
的形式出现。好像这个正则表达式无法解析。当我在regex101.com等其他网站上测试这个正则表达式时,它清楚地表明没有匹配。我创建了一个符合我需要的正则表达式:
\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s*([\s\S]*)
但是当我将其添加到配置中时,我根本不再收到任何Syslog消息。
有没有人知道我是如何实现这一目标的。我已经花了太多时间在这上面。
答案 0 :(得分:1)
好的,所以我似乎已经弄明白了。我将尝试在这里发布一个完整的答案,希望它可以帮助某人。文档并不是最清楚的。
我用于配置的引用是Syslogd和TechTarget
首先,您需要设置$OPENNMS_HOME/etc/syslogd-configuration.xml
以获得以下内容:
<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的属性。
<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>
有了这些,系统日志消息应包含所需的属性。注意:在我的场景中,我使用的是非标准的系统日志消息,这就是我必须在parser="org.opennms.netmgt.syslogd.CustomSyslogParser"
文件中使用syslogd-confguration.xml
设置的原因。如果您使用的是Syslog-NG或更好的格式化系统日志,则还有其他选项。
为了帮助您进行问题排查,您可以转到$OPENNMS_HOME/etc
或$OPENNMS_HOME/bin
并运行以下命令:opennms -v status
这应该会显示NMS的每个正在运行的进程及其状态。
注意:更改配置文件后,必须运行service opennms restart
(debian systems)以重新加载新配置。如果您收到JVM错误或“无法连接到本地主机”错误,很可能是因为您破坏了这两个配置中的一个。即使在xml文件的顶部添加额外的空间也会产生此问题。编辑文件时要小心,我强烈建议您创建备份。
答案 1 :(得分:0)
正是我立即看到的,解析器属性“CustonSyslogParser”与“CustomSyslogParser”中存在拼写错误。只是为了确保你在这里没有其他问题:)
否则,有两个组成部分发挥作用:
您应该查看OpenNMS附带的Postfix Syslog实现。
例如,在文件$ OPENNMS_HOME / etc / syslog / Postfix.syslog.xml中,您将找到一条规则,该规则查看传入的Syslog消息,并将选择包含“禁用TLS支持”的每条Syslog消息,并将创建一个具有OpenNMS唯一事件标识符(UEI)的事件uei.opennms.org/vendor/postfix/syslog/postfix/TLSDisabled。
UEI的事件uei.opennms.org/vendor/postfix/syslog/postfix/TLSDisabled的严重程度定义为$ OPENNMS _