Cacti はスクリプトを使用してどのようにデータを収集しますか?

Cacti はスクリプトを使用してどのようにデータを収集しますか?

Cacti は SNMP を使用してクエリを実行し、データを収集することがわかっています。私の知る限り、SNMP マネージャーはオブジェクト ID (OID) を使用して特定のオブジェクトについてクエリを実行し、その OID に関する SNMP エージェントからの応答を取得します。

私が混乱しているのは、Cacti がデータを収集するためにどのように egperlまたはpythonスクリプトを使用するかということです。SNMP を使用するのでしょうか。使用する場合は、プロトコルはどのように機能しますか。

答え1

SNMP クエリだけCactiに限定されません。

データ入力方法として、独自のスクリプトを実行することもできます。PerlPHP、などPythonBash何でもかまいません。 スクリプト/コマンド入力タイプを選択するだけです。

ここに画像の説明を入力してください

スクリプトは少なくとも 1 つの値を出力する必要があります。この値は出力フィールドに添付されCacti、後で最終的なグラフを作成するために使用されます。

出力フィールドが 1 つだけ必要な場合は、値をそのまま (例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"

詳しい説明と例はこちらをご覧ください:

関連情報