共用方式為


使用 Azure 監視器代理程式收集 SNMP 陷阱資料

簡單網路管理通訊協定 (SNMP) 是廣泛部署的管理通訊協定,可用於監視和設定 Linux 裝置和設備。 本文說明如何收集 SNMP 陷阱資料,並使用 Azure 監視器代理程式將其傳送至 Log Analytics 工作區。

您可以透過兩種方式收集 SNMP 資料:

  • 輪詢 - 管理系統會輪詢 SNMP 代理程式以收集特定屬性的值。 輪詢最常用於具狀態健康情況偵測和收集效能指標。
  • 陷阱 - SNMP 代理程式會將事件或通知轉送至管理系統。 陷阱最常用來作為事件通知。

Azure 監視器代理程式無法直接收集 SNMP 資料,但您可以將此資料傳送至 Azure 監視器代理程式可以收集的下列資料來源其中之一:

  • Syslog。 資料會與 Azure 監視器代理程式收集的其他 syslog 資料儲存在 Syslog 資料表中。
  • 文字檔。 資料會儲存在您建立的自訂資料表中。 您可以使用轉換來剖析資料,並以結構化格式儲存資料。

此圖顯示 SNMP 資料的收集,方法是將它傳送至 Syslog 或 Azure 監視器代理程式所收集的文字檔。

必要條件

  • 您至少擁有 Log Analytics 工作區的參與者權限

  • 您要監視之裝置的管理資訊基底 (MIB) 檔案。

    SNMP 會使用物件識別碼 (OID) 值來識別受監視的屬性,這些值會在廠商提供的 MIB 檔案中定義和描述。 裝置廠商通常會提供 MIB 檔案。 如果您沒有 MIB 檔案,您可以在第三方網站上找到許多廠商的檔案。 有些廠商會針對所有裝置維護單一 MIB,而其他廠商則有數百個 MIB 檔案。

    將每個傳送 SNMP 陷阱的裝置的所有 MIB 檔案放在 /usr/share/snmp/mibs 中,這是 MIB 檔案的預設目錄。 這可記錄具有有意義名稱而非 OID 的 SNMP 陷阱欄位。 若要正確載入 MIB 檔案,snmptrapd 必須載入所有相依 MIB。 請務必在載入 MIB 之後檢查 snmptrapd 記錄檔,以確保剖析 MIB 檔案中沒有遺漏的相依性。

  • 具有 SNMP 陷阱接收器的 Linux 伺服器。

    本文使用 snmptrapd,這是大多數 Linux 散發套件提供的 Net-SNMP 代理程式的 SNMP 陷阱接收器。 不過,您可以使用許多其他 SNMP 陷阱接收者服務。 請務必為環境載入 MIB 檔案的 SNMP 陷阱接收器,讓 SNMP 陷阱訊息中的屬性具有有意義的名稱,而不是 OID。

    Snmptrapd 組態程式可能會因 Linux 發行版而異。 如需 snmptrapd 設定的詳細資訊,包括設定 SNMP v3 驗證的指引,請參閱 Net-SNMP 文件

設定陷阱接收者記錄選項和格式

若要在 Red Hat Enterprise Linux 7 或 Oracle Linux 7 伺服器上設定 snmptrapd 陷阱接收器:

  1. 安裝並啟用 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
    
  2. 授權社群字串 (SNMP v1 和 v2 驗證字串),並定義寫入記錄檔的陷阱格式:

    1. 開啟 snmptrapd.conf

      sudo vi /etc/snmp/snmptrapd.conf  
      
    2. 將以下幾行新增至您的 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 的輸出行為組態:

  1. 開啟 /etc/snmp/snmptrapd.conf 檔案:

    sudo vi /etc/sysconfig/snmptrapd
    
  2. 設定輸出目的地,例如在下列範例組態中:

    # 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 檔案。

注意

如需如何設定輸出選項的詳細資訊,請參閱 Net-SNMP 文件,以及如何設定格式化選項

使用 Azure 監視器代理程式收集 SNMP 陷阱

根據您傳送 SNMP 事件的位置,使用下列其中一項指引,使用 Azure 監視器代理程式收集資料:

下一步

深入了解: