編寫網絡設備采集模板
在采集模板中點擊右上角“新增”即可新增自定義采集模板。
下面是 SNMP 設備的自定義采集配置示例和基本參數說明。
基礎參數說明
agents:配置收集信息的地址、端口和协议;
格式:agents = ["<scheme://><hostname>:<port>"]
scheme:协议类型,默认使用 UDP 协议。目前支持 udp、udp4、udp6、tcp、tcp4、tcp6。
hostname:收集的地址。
port:收集地址的端口号。
示例:
agents = ["udp://127.0.0.1:161"]
表示使用 UDP 协议,连接到本地 127.0.0.1 地址的端口 161。
agents = ["tcp://127.0.0.1:161"]
表示使用 TCP 协议,连接到本地 127.0.0.1 地址的端口 161。
如果使用网络设备进行采集
配置文件可以这样写,自动调用网络设备采集中的相应字段。
[[instances]]
agents = ["{{.Schema}}://{{.IP}}:{{.Port}}"]
interval_times = 1
timeout = "{{.Timeout}}s"
version = {{.Version}}
#retries = 3
max_repetitions=15
disable_up = true
{{.Auth}}
如下图所示,可以将配置中填写的字段进行映射,在采集时,自动调取变量对应的值。
{{.IP}} == IP
{{.Schema}} == SNMP 協議
{{.Port}} == SNMP 端口
{{.Timeout}} == 超時時間(秒)
{{.Version}} == SNMP 版本
{{.Auth}} == Community
community:從設備配置文件或管理界面獲取的參數,通常設置為 “public”。
agent_host_tag:用於標識設備 IP 的標籤名稱。
retries:SNMP 請求失敗時系統重試的次數。
max_repetitions:SNMP 一次請求中最多請求對象的數量。注意:此值越高,可能會減少請求次數,但也可能增加網絡負載。
獲取 Scalar 數據類型:這些數據點在 MIB 中由單個 OID 標識。
# 獲取 Scalar 數據
# CPU 系統態使用率
[[instances.field]]
oid = "1.3.6.1.4.1.2021.11.9.0"
name = "cpu_usage_sys"
# CPU 用戶態使用率
[[instances.field]]
oid = "1.3.6.1.4.1.2021.11.10.0"
name = "cpu_usage_user"
# 設備空閒記憶體
[[instances.field]]
oid = "1.3.6.1.4.1.2021.4.6.0"
name = "mem_free"
獲取 Table 類數據:包括多列數據和多個索引。Categraf 將自動檢索 Table 中的所有索引字段作為時序數據的標籤,並自動獲取所有數據列作為指標上報。
# 獲取 Table 類數據
[[instances.table]]
oid = "IF-MIB::ifTable"
name = "interface"
[[instances.table.field]]
oid = "IF-MIB::ifDescr"
name = "ifDescr"
# 有些列可能不是數值,比如 ifDescr 就是字符串,這個列無需作為指標上報,應該作為標籤上報更合適,所以有個 is_tag=true 的配置。
is_tag = true
OID:用於唯一標識網絡管理協議(如 SNMP)中每個管理對象的標識符。它是一種標準化的編號系統,用於識別管理信息庫(MIB)中的對象及其層次結構。
- 樹狀結構:OID 表示分層的命名系統,每個節點都是一個數字,代表樹的一個層次。
- 從根節點開始:所有 OID 都從根節點(0)開始,然後逐級向下。
例如,OID 1.3.6.1.2.1.1.3.0 可分解為:
- 1:ISO 標識符
- 3:組織編號
- 6:企業編號
- 1:管理編號
- 2:標準編號
- 1:MIB-II
- 1:系統組
- 3:系統運行時間
- 0:具體實例
如何解析 OID
我们使用标准的 MIB 库 RFC1213-MIB 举例(根据实际需求更换 MIB 库)。RFC1213-MIB 是默认的 MIB 库之一,它包含了各种设备状态、网络接口信息、系统资源等的管理和监控项。
使用 snmpwalk -v2c -c public 127.0.0.1
命令可以查看设备的所有 OID,您可以根据需要将 OID 填入配置文件中。
保存好模板后,就可以在实时查询中查看指标了。
保存模板後,可以在即時查詢中查看指標。
排錯分析:
如果配置完成後未能查看到相關指標,可以在網絡設備上執行以下相關命令確認是否有返回值。
正常網絡設備返回值:
網絡設備無返回值:
排錯方向:
- OID 路徑是否正確,不同設備和廠商可能會有不同的 OID 來表示相同的對象;
- SNMP 是否正確加載了相關的 MIB 模塊;
- 網絡設備是否使用私有 OID,這些 OID 可能需要配置特定的 MIB 模塊或特定的硬件或軟件支持;
- 檢查 SNMPD 配置文件中的字符串(public)權限和優先級順序問題。