(Voir en bas pour les mises à jour ...)
J'ai écrit un script de méthode d'entrée de données pour Cacti (en Ruby, pour collecter les statistiques de beanstalkd) et cela fonctionne à partir de la ligne de commande (renvoyant un seul entier simple, comme documenté ici ) lorsqu'il est exécuté en tant que compte utilisateur cacti mais avec l'outil Cacti lui-même ne recueille aucune donnée et il n'y a rien dans les journaux.
Voici la configuration des méthodes de saisie de données: Méthode de saisie de données Cacti http://img.skitch.com/20091009-gh7g1kukn9yradj6y2iqrd5qm1.jpg
Et voici le graphique résultant (après qu'il a été ajouté au modèle de graphique d'un hôte et laissé à s'exécuter suffisamment longtemps pour collecter des données): Cacti Graph http://img.skitch.com/20091009-xq1kn3qxkteb5hb11wtx6tbs8m.jpg
Mise à jour # 1 : Il semblerait que Cacti dépouille l'environnement:
sudo su - cacti -c 'env -i / script / beanstat --host 10.11.12.13 --port 11300 --stat current-attendant' / script / beanstat: 4: dans `require ': aucun fichier à charger - rubygems (LoadError) de / script / beanstat: 4
Si tel est le cas, comment pourrais-je contourner ce problème?
Mise à jour # 2 : Cette réponse sur stackoverflow.com semble avoir résolu le problème d'environnement, mais toujours aucune donnée dans le graphique.
Mise à jour # 3 : Grâce à la suggestion de @ Heath, j'ai augmenté le niveau de journalisation du poller et j'ai détecté ceci:
AVERTISSEMENT: le résultat de CMD n'est pas valide. Résultat partiel: U
N'ont pas eu de chance Googler ce que signifie "Résultat partiel: U". Le script imprime simplement une valeur entière unique.
Mise à jour n ° 4 : j'ai finalement réussi à faire fonctionner cela. Le problème principal était le manque d'environnement lors de l'exécution du script shell. J'ai dû résoudre cela en préfixant mon script Ruby avec les lignes suivantes:
#! / bin / sh CHEMIN = / usr / local / bin: $ CHEMIN exec ruby -x "/ full / path / to / script / directory" $ 0 "$ @" #! / usr / bin / env rubis
Et le problème secondaire était la configuration correcte des méthodes d'entrée de données (une pour chaque métrique distincte que je voulais collecter, même si elles utilisaient toutes le même script) qui alimente les sources de données qui alimente les modèles de données (ou vice versa, je '' Je ne suis toujours pas clair à ce sujet) qui alimente les modèles de graphiques qui doivent être attribués aux périphériques puis ajoutés aux arbres de graphiques. En résumé, c'est une débâcle majeure avec de la merde pour la documentation et j'espère ne plus jamais avoir à le faire.
Mise à jour # 5 : j'ai partagé mon script sur GitHub http://github.com/trak3r/cacti-beanstalkd-script