OpenNMS 系統日誌集成
我正在嘗試將 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 消息。
有誰知道我是如何做到這一點的。我已經花太多時間在這上面了。
好的,所以我似乎已經弄清楚了。我將嘗試在這裡發布一個完整的答案,希望它可以幫助某人。文件對此並不是最清楚的。
我用於配置的參考是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 或格式更好的 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"