Syslog

OpenNMS 系統日誌集成

  • September 25, 2017

我正在嘗試將 OpenNMS 配置為從 ASA 接收 Syslog 消息。我的 syslogd 配置文件如下所示:

<configuration
   syslog-port="514"
   new-suspect-on-message="false"
   parser="org.opennms.netmgt.syslogd.CustonSyslogParser"
   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,但它們是不確定的。好像這個正則表達式無法解析。當我在 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 文件的頂部添加一個額外的空間也會產生這個問題。編輯文件時要小心,我強烈建議創建備份。

我不確定為什麼原來的正則表達式嵌套了組,但是如果你刪除了外部 () 組,你需要減少主機和消息的組號(因為外部組是組 #1),所以

matching-group-host="1"
matching-group-message="2"

引用自:https://serverfault.com/questions/873708