Linux

Cacti 如何使用腳本收集數據?

  • June 11, 2018

我們知道 Cacti 使用 SNMP 來查詢和收集數據。據我所知,SNMP 管理器使用對象 ID (OID) 來查詢某個對象並從 SNMP 代理獲取有關該 OID 的響應。

讓我困惑的是 Cacti 如何使用 egperlpython腳本來收集數據?那麼它使用SNMP嗎?如果是這樣,那麼協議如何工作?

Cacti您一起不僅限於 SNMP 查詢。

您可以選擇執行您自己的任何腳本作為數據輸入法。它可以是Perl, PHP,PythonBash其他。只需選擇腳本/命令輸入類型:

在此處輸入圖像描述

您的腳本必須至少輸出一個值。該值將附加到其中的輸出欄位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"

您可以在此處找到進一步的解釋和範例:

引用自:https://serverfault.com/questions/692387