使用 Azure 監視器代理程式收集 SNMP 陷阱資料
警告
這篇文章參考 CentOS,這是接近生命週期結束 (EOL) 狀態的 Linux 發行版本。 請據以考慮您的使用方式和規劃。 如需詳細資訊,請參閱 CentOS 生命週期結束指引。
簡單網路管理通訊協定 (SNMP) 是廣泛部署的管理通訊協定,可用於監視和設定 Linux 裝置和設備。
您可以透過兩種方式收集 SNMP 資料:
- 輪詢 - 管理系統會輪詢 SNMP 代理程式以收集特定屬性的值。
- 陷阱 - SNMP 代理程式會將事件或通知轉送至管理系統。
陷阱最常用作事件通知,而輪詢更適合用於具狀態健康情況偵測和收集效能計量。
您可以使用 Azure 監視器代理程式收集 SNMP 陷阱作為 syslog 事件或記錄在文字檔中的事件。
在本教學課程中,您會了解如何:
- 設定陷阱接收者記錄選項和格式
- 設定陷阱接收者將陷阱傳送至 syslog 或文字檔
- 使用 Azure 監視器代理程式收集 SNMP 陷阱
必要條件
若要完成本教學課程,您需要:
您至少擁有 Log Analytics 工作區的參與者權限。
您要監視之裝置的管理資訊基底 (MIB) 檔案。
SNMP 會使用物件識別碼 (OID) 值來識別受監視的屬性,這些值會在廠商提供的 MIB 檔案中定義和描述。
裝置廠商通常會提供 MIB 檔案。 如果您沒有 MIB 檔案,您可以在第三方網站上找到許多廠商的檔案。
將每個傳送 SNMP 陷阱的裝置的所有 MIB 檔案放在
/usr/share/snmp/mibs
中,這是 MIB 檔案的預設目錄。 這可記錄具有有意義名稱而非 OID 的 SNMP 陷阱欄位。有些廠商會針對所有裝置維護單一 MIB,而其他廠商則有數百個 MIB 檔案。 若要正確載入 MIB 檔案,snmptrapd 必須載入所有相依 MIB。 請務必在載入 MIB 之後檢查 snmptrapd 記錄檔,以確保剖析 MIB 檔案中沒有遺漏的相依性。
具有 SNMP 陷阱接收器的 Linux 伺服器。
在本文中,我們會使用 snmptrapd,這是來自大部分 Linux 發行版 Net-SNMP 代理程式的 SNMP 陷阱接收器。 不過,您可以使用許多其他 SNMP 陷阱接收者服務。
Snmptrapd 組態程式可能會因 Linux 發行版而異。 如需 snmptrapd 設定的詳細資訊,包括設定 SNMP v3 驗證的指引,請參閱 Net-SNMP 文件。
請務必為環境載入 MIB 檔案的 SNMP 陷阱接收器,讓 SNMP 陷阱訊息中的屬性具有有意義的名稱,而不是 OID。
設定陷阱接收者記錄選項和格式
若要在 CentOS 7、Red Hat Enterprise Linux 7、Oracle Linux 7 伺服器上設定 snmptrapd 陷阱接收器:
安裝並啟用 snmptrapd:
#Install the SNMP agent sudo yum install net-snmp #Enable the service sudo systemctl enable snmptrapd #Allow UDP 162 through the firewall sudo firewall-cmd --zone=public --add-port=162/udp --permanent
授權社群字串 (SNMP v1 和 v2 驗證字串),並定義寫入記錄檔的陷阱格式:
開啟
snmptrapd.conf
:sudo vi /etc/snmp/snmptrapd.conf
將以下幾行新增至您的
snmptrapd.conf
檔案:# Allow all traps for all OIDs, from all sources, with a community string of public authCommunity log,execute,net public # Format logs for collection by Azure Monitor Agent format2 snmptrap %a %B %y/%m/%l %h:%j:%k %N %W %q %T %W %v \n
注意
snmptrapd 將陷阱和精靈訊息 (例如,服務停止和啟動) 記錄到相同的記錄檔。 在上述範例中,我們已定義以「snmptrap」字組開頭的記錄格式,以便稍後輕鬆地從記錄檔篩選 snmptrap。
設定陷阱接收者將陷阱資料傳送至 syslog 或文字檔
snmptrapd 有兩種方式可以將 SNMP 陷阱傳送至 Azure 監視器代理程式:
將傳入陷阱轉接至 syslog,您可以將其設定為 Azure 監視器代理程式的資料來源。
將 syslog 訊息寫入檔案,Azure 監視器代理程式可以進行結尾和剖析。 此選項可讓您以新的資料類型傳送 SNMP 陷阱,而不是傳送為 syslog 事件。
若要編輯 snmptrapd 的輸出行為組態:
開啟
/etc/snmp/snmptrapd.conf
檔案:sudo vi /etc/sysconfig/snmptrapd
設定輸出目的地。
以下是範例組態:
# snmptrapd command line options # '-f' is implicitly added by snmptrapd systemd unit file # OPTIONS="-Lsd" OPTIONS="-m ALL -Ls2 -Lf /var/log/snmptrapd"
此範例組態中的選項如下:
-m ALL
- 載入預設目錄中的所有 MIB 檔案。-Ls2
- 輸出陷阱至 syslog、Local2 設施。-Lf /var/log/snmptrapd
- 將陷阱記錄到/var/log/snmptrapd
檔案。
使用 Azure 監視器代理程式收集 SNMP 陷阱
如果您設定 snmptrapd 將事件傳送至 syslog,請遵循使用 Azure 監視器代理程式收集事件和性能計數器中所述的步驟。 當您定義 Azure 監視器代理程式的資料收集規則時,請務必選取 Linux syslog 作為資料來源。
如果您設定 snmptrapd 將事件寫入至檔案,請遵循使用 Azure 監視器代理程式收集文字記錄所述的步驟。
下一步
深入了解: