ubuntu - OpenNMS Syslogd 配置

标签 ubuntu syslog opennms asa

我正在尝试将 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]

使用此配置,我可以将 syslog 消息输入 Opennms,但它们以 indeterminate 的形式出现。 .好像这个正则表达式无法解析。当我在 regex101.com 等其他网站上测试这个正则表达式时,它清楚地表明不匹配。我创建了一个符合我需要的正则表达式:
\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s*([\s\S]*)
但是当我将它添加到配置中时,我根本不再收到任何 Syslog 消息。

有谁知道我是如何做到这一点的。我已经花太多时间在这上面了。

最佳答案

好的,所以我似乎已经弄清楚了。我将尝试在这里发布一个完整的答案,希望它可以帮助某人。文档对此并不是最清楚的。

我用于配置的引用是 SyslogdTechTarget

首先你需要设置$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 或格式更好的 syslog,还有其他选项。

要帮助进行故障排除,您可以访问 $OPENNMS_HOME/etc$OPENNMS_HOME/bin并运行以下命令:opennms -v status这应该向您显示 NMS 的每个运行进程及其状态。

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

关于ubuntu - OpenNMS Syslogd 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46223511/

相关文章:

php - 安装 `libxerces27-dev` php 编译器时无法安装包 `phc`

python - Cloud9 Python : getting Flask module not found on Run action

Python 脚本不能在 Ubuntu 上运行

qt - 如何在 Linux 上运行 qtcreator?安装了2个版本

boost - 使用 boost syslog 和 cpp-netlib 时出现段错误

linux - 除了 syslog 之外,Linux 服务/守护程序文件日志记录最佳实践是什么?

c++ - 如何说服控制台上的系统日志输出包含时间戳?

java - 构建开放式NMS时出错

snmp - 使用pySNMP编写SNMP代理(适用于OpenNMS)