我們知道Cacti使用SNMP來查詢和收集資料。據我所知,SNMP 管理器使用對象 ID (OID) 來查詢某個對象,並從 SNMP 代理程式取得有關該 OID 的回應。
讓我困惑的是Cacti如何使用egperl
或python
腳本來收集資料?那麼它使用SNMP嗎?如果是的話,協議如何運作?
答案1
與Cacti
您一起,您不僅限於 SNMP 查詢。
您可以選擇執行您自己的任何腳本作為資料輸入方法。可以是、、、Perl
或其他。只需選擇腳本/命令輸入類型:PHP
Python
Bash
您的腳本必須輸出至少一個值。該值將附加到其中的輸出字段Cacti
,並在稍後用於建立最終圖表。
如果您只需要一個輸出字段,只需按原樣列印該值(例如12
),而不需要任何其他內容(例如ms
, %
):
#!/bin/sh
ping -c1 host | grep rtt | cut -d"=" -f2 | cut -d"/" -f2
如果您必須檢索多個值,則輸出格式必須為:
field1:value1 field2:value2 field3:value3
然後每個欄位將附加到一個輸出欄位。
#!/bin/sh
result=$(ping -c1 host | grep rtt | cut -d"=" -f2)
min=$(echo $result | cut -d"/" -f1)
avg=$(echo $result | cut -d"/" -f2)
max=$(echo $result | cut -d"/" -f3)
echo "min:$min avg:$avg max:$max"
您可以在這裡找到進一步的解釋和範例: