(Updates finden Sie unten ...)
Ich habe ein Dateneingabemethodenskript für Cacti geschrieben (in Ruby, um Statistiken von Beanstalkd zu sammeln) und es funktioniert über die Befehlszeile (Rückgabe einer einzelnen einfachen Ganzzahl, wie hier dokumentiert ), wenn es als Cacti- Benutzerkonto, aber als Cacti-Tool ausgeführt wird selbst sammelt keine Daten und es gibt nichts in den Protokollen.
Hier ist die Einrichtung der Dateneingabemethoden: Cacti-Dateneingabemethode http://img.skitch.com/20091009-gh7g1kukn9yradj6y2iqrd5qm1.jpg
Und hier ist das resultierende Diagramm (nachdem es zur Diagrammvorlage eines Hosts hinzugefügt und lange genug ausgeführt wurde, um Daten zu erfassen): Cacti-Diagramm http://img.skitch.com/20091009-xq1kn3qxkteb5hb11wtx6tbs8m.jpg
Update Nr. 1 : Es sieht so aus, als würde Cacti die Umgebung entkleiden:
sudo su - cacti -c 'env -i / script / beanstat --host 10.11.12.13 --port 11300 --stat current-wait' / script / beanstat: 4: in `require ': keine solche Datei zum Laden - rubygems (LoadError) von / script / beanstat: 4
Wenn dies der Fall ist, wie könnte ich das umgehen?
Update Nr. 2 : Diese Antwort auf stackoverflow.com scheint das Umgebungsproblem behoben zu haben, aber immer noch keine Daten im Diagramm.
Update Nr. 3 : Dank des Vorschlags von @ Heath habe ich die Poller-Protokollierungsstufe erhöht und Folgendes festgestellt:
WARNUNG: Ergebnis von CMD ungültig. Teilergebnis: U.
Ich hatte kein Glück, zu googeln, was "Teilergebnis: U" bedeutet. Das Skript gibt nur einen einzelnen ganzzahligen Wert aus.
Update Nr. 4 : Ich habe es endlich geschafft. Das Hauptproblem war der Mangel an Umgebung, wenn das Shell-Skript ausgeführt wird. Ich musste das beheben, indem ich meinem Ruby-Skript die folgenden Zeilen voranstellte:
#! / bin / sh PATH = / usr / local / bin: $ PATH exec ruby -x "/ full / path / to / script / directory" $ 0 "$ @" #! / usr / bin / env ruby
Das zweite Problem war die ordnungsgemäße Konfiguration der Dateneingabemethoden (eine für jede einzelne Metrik, die ich erfassen wollte, obwohl alle dasselbe Skript verwendeten), die die Datenquellen speist, die die Datenvorlagen speisen (oder umgekehrt, I '). Ich bin mir immer noch nicht sicher, was die Grafikvorlagen speist, die den Geräten zugewiesen und dann den Grafikbäumen hinzugefügt werden müssen. Zusammenfassend ist es ein großes Debakel mit Mist für die Dokumentation und ich hoffe, dass ich es nie wieder tun muss.
Update Nr. 5 : Ich habe mein Skript auf GitHub http://github.com/trak3r/cacti-beanstalkd-script geteilt