web-dev-qa-db-ja.com

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

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

私を混乱させるのは、Cactiがどのように使用するかです。データを収集するためのPerlまたはpythonスクリプト?それではSNMPを使用しますか?もしそうなら、プロトコルはどのように機能しますか?

3
utlamn

Cactiを使用すると、SNMPクエリだけに限定されません。

データ入力方式として、独自のスクリプトを実行することを選択できます。 PerlPHPPythonBashなどです。スクリプト/コマンドの入力タイプを選択するだけです:

enter image description here

スクリプトは少なくとも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"

あなたはここでさらなる説明と例を見つけることができます:

3
krisFR