(Ver abajo para actualizaciones ...)
He escrito un script de método de entrada de datos para Cacti (en Ruby, para recopilar estadísticas de beanstalkd) y funciona desde la línea de comando (devuelve un solo entero simple, como se documenta aquí ) cuando se ejecuta como la cuenta de usuario de Cacti pero la herramienta Cacti en sí no está cosechando ningún dato y no hay nada en los registros.
Aquí está la configuración de los métodos de entrada de datos: Método de entrada de datos de cactus http://img.skitch.com/20091009-gh7g1kukn9yradj6y2iqrd5qm1.jpg
Y aquí está el gráfico resultante (después de que se haya agregado a la plantilla de gráfico de un host y se haya dejado ejecutar lo suficiente como para recopilar datos): Cacti Graph http://img.skitch.com/20091009-xq1kn3qxkteb5hb11wtx6tbs8m.jpg
Actualización n. ° 1 : Parece que Cacti podría estar eliminando el medio ambiente:
sudo su - cacti -c 'env -i / script / beanstat --host 10.11.12.13 --port 11300 --stat current-waiting' / script / beanstat: 4: en `require ': no se carga ese archivo - rubygems (LoadError) desde / script / beanstat: 4
Si ese es el caso, ¿cómo podría solucionarlo?
Actualización n. ° 2 : esta respuesta en stackoverflow.com parece haber resuelto el problema del entorno, pero aún no hay datos en el gráfico.
Actualización n. ° 3 : Gracias a la sugerencia de @ Heath, aumenté el nivel de registro de la encuesta y capté esto:
ADVERTENCIA: El resultado de CMD no es válido. Resultado parcial: U
No he tenido suerte Buscando en Google lo que significa "Resultado parcial: U". El script solo imprime un único valor entero.
Actualización n. ° 4 : Finalmente conseguí que esto funcionara. El problema central era la falta de entorno cuando se ejecuta el script de shell. Tuve que resolver eso prefijando mi script Ruby con las siguientes líneas:
#! / bin / sh RUTA = / usr / local / bin: $ RUTA exec ruby -x "/ full / ruta / al / script / directorio" $ 0 "$ @" #! / usr / bin / env ruby
Y el problema secundario fue la configuración adecuada de los Métodos de entrada de datos (uno para cada métrica separada que quería recopilar, a pesar de que todos usaban el mismo script) que alimenta las Fuentes de datos que alimenta las Plantillas de datos (o viceversa, I ' m todavía no está claro en eso) que alimenta las plantillas de gráficos que deben asignarse a los dispositivos y luego se agregan a los árboles de gráficos. En resumen, es una gran debacle con basura para la documentación y espero no tener que volver a hacerlo nunca más.
Actualización n. ° 5 : he compartido mi script en GitHub http://github.com/trak3r/cacti-beanstalkd-script