(见底部的更新…)
我已经为Cacti编写了一个数据input方法脚本(在Ruby中从beanstalkd收集统计信息),它在作为cacti用户帐户运行时从命令行(返回一个简单的整数, 如文中所述 )工作, 但是 Cacti工具本身并没有收集任何数据,日志中也没有任何东西。
这里是数据input方法的设置: 仙人掌数据input法http://img.skitch.com/20091009-gh7g1kukn9yradj6y2iqrd5qm1.jpg
下面是结果图(在它被添加到主机的图表模板并运行足够长的时间来收集数据之后): Cacti Graph http://img.skitch.com/20091009-xq1kn3qxkteb5hb11wtx6tbs8m.jpg
更新#1 :看起来仙人掌可能会剥离环境:
sudo su - cacti -c'env -i / script / beanstat --host 10.11.12.13 --port 11300 --stat current-waiting'
/ script / beanstat:4:在`require':没有这样的文件加载 - rubygems(LoadError)
from / script / beanstat:4
如果是这样的话,我该如何解决呢?
更新#2 :在stackoverflow.com上的这个响应似乎已经解决了环境问题,但在图表中仍然没有数据。
更新#3 :感谢@希思的build议我碰到了轮询日志级别,并抓住了这一点:
警告:来自CMD的结果无效。 部分结果:U
没有任何运气Googlesearch“部分结果:U”的意思。 该脚本只打印一个整数值。
更新#4 :我终于得到这个工作。 核心问题是运行shell脚本时缺乏环境。 我必须通过在我的Ruby脚本前添加以下几行来解决这个问题:
#!/ bin / sh的 PATH =在/ usr / local / bin目录:$ PATH exec ruby -x“/ full / path / to / script /目录”$ 0“$ @” #!/ usr / bin / env ruby
第二个问题是数据input方法的正确configuration(我希望收集每个单独的度量,即使它们全部使用相同的脚本),这些数据input方法将馈送数据模板的数据源(反之亦然, m仍然不清楚),它提供的graphics模板需要分配给设备,然后添加到graphics树。 总之,对于文档来说这是一个重大的崩溃,我希望永远不要再这样做。
更新#5 :我已经在GitHub上分享了我的脚本http://github.com/trak3r/cacti-beanstalkd-script
当我试图debugging一个自定义脚本时,我发现脚本每次运行时都会向临时文件附加一些信息,这很有帮助; 这样我可以确保它被称为我期望的方式。 像cmd行参数,环境,以及它将返回什么样的值。 您也可能希望将stderrredirect到日志文件以捕获脚本的错误输出。
我看到你做了一个数据input法和一个图表模板; 你还做了一个数据模板?