Wie sammelt Cacti mithilfe von Skripten Daten?

Wie sammelt Cacti mithilfe von Skripten Daten?

Wir wissen, dass Cacti SNMP verwendet, um Daten abzufragen und zu sammeln. Soweit ich weiß, verwendet der SNMP-Manager die Objekt-ID (OID), um ein bestimmtes Objekt abzufragen und die Antwort von einem SNMP-Agenten bezüglich dieser OID zu erhalten.

Was mich verwirrt, ist, wie Cacti beispielsweise perloder pythonSkripte zum Sammeln von Daten verwendet. Verwendet es dann SNMP? Wenn ja, wie funktioniert das Protokoll dann?

Antwort1

Mit Cactisind Sie nicht nur auf SNMP-Abfragen beschränkt.

Sie können jedes beliebige Skript als Dateneingabemethode ausführen. Es kann Perl, PHP, Python, Bashoder was auch immer sein. Wählen Sie einfach den Eingabetyp Skript/Befehl :

Bildbeschreibung hier eingeben

Ihr Skript muss mindestens einen Wert ausgeben. Dieser Wert wird an ein Ausgabefeld innerhalb des Skripts angehängt Cactiund später zum Erstellen des endgültigen Diagramms verwendet.

Wenn Sie nur ein Ausgabefeld benötigen, drucken Sie den Wert einfach so wie er ist (z. B. 12), ohne alles andere (z . B. ms, %):

#!/bin/sh
ping -c1 host | grep rtt | cut -d"=" -f2 | cut -d"/" -f2

Falls Sie mehrere Werte abrufen müssen, muss das Ausgabeformat folgendes sein:

field1:value1 field2:value2 field3:value3

Dann wird jedem Feld ein Ausgabefeld zugeordnet.

#!/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"

Weitere Erläuterungen und Beispiele finden Sie hier:

verwandte Informationen