CactiがSNMPを使用してデータを照会および収集することはわかっています。私の知る限り、SNMPマネージャーはオブジェクトID(OID)を使用して特定のオブジェクトについて照会し、そのOIDに関するSNMPエージェントからの応答を取得します。
私を混乱させるのは、Cactiがどのように使用するかです。データを収集するためのPerl
またはpython
スクリプト?それではSNMPを使用しますか?もしそうなら、プロトコルはどのように機能しますか?
Cacti
を使用すると、SNMPクエリだけに限定されません。
データ入力方式として、独自のスクリプトを実行することを選択できます。 Perl
、PHP
、Python
、Bash
などです。スクリプト/コマンドの入力タイプを選択するだけです:
スクリプトは少なくとも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"
あなたはここでさらなる説明と例を見つけることができます: