免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2475 | 回复: 7
打印 上一主题 下一主题

[其他] 请问论坛兄弟们有熟悉cacti的PHP Script Server的Template的吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-07-12 17:52 |只看该作者 |倒序浏览
本帖最后由 满天星 于 2013-07-12 17:53 编辑

我这边使用cacti获取juniper设备的MIB信息,但是发现设备的index是四组数据,在cacti官方forum发了个帖子,好多天了都木有人回复:
http://forums.cacti.net/viewtopic.php?f=21&t=50423
有兄弟能帮忙研究下么?好多天了都没搞定,头都搞大了……
官网的manual、debug、howto都翻过了,没有发现太多php script server的具体debug或说明文档,因为设备不像普通的interface 计数,只有一个index来实现,需要针对多个index value进行处理。
不晓得具体的内容怎么搞了

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2013-07-14 11:57 |只看该作者
你的Data Source Debug是怎样显示的?

论坛徽章:
0
3 [报告]
发表于 2013-07-14 13:46 |只看该作者
感谢楼上的兄弟,我的Data Query Debug Information在官方forum的帖子里,有一个quote中列出来了。
最近实在迫于无奈了,折腾PHP sourcecode,自己添加debug信息,尼玛搞了好久,发现是在host.php文件中添加data query时写入mysql database时有error,具体问题是:
执行到host.php的form_save()这一步,接着跟踪:
/* recache snmp data */
                run_data_query($_POST["id"], $_POST["snmp_query_id"]);
进入到lib/data_query.php文件,在run_data_query()里的
/* update the sort cache */
        update_data_query_sort_cache($host_id, $snmp_query_id);
有问题,继续跟进这个函数(也在这个文件里):
然后其中的这一行就挂了:
/* get a list of valid data query types */
        $valid_index_types = get_ordered_index_type_list($host_id, $data_query_id);

跟进get_ordered_index_type_list()函数,也在当前文件中,

里面有个while循环:
/* list each of the input fields for this snmp query */
        while (list($field_name, $field_array) = each($raw_xml["fields"])) {

这一步取xml中的index_order项,执行完以后就返回一个空的array了,
后面没有跟踪下去了,实在太累,压根不清楚流程,纯属一行一行加调试信息跟踪的,求熟悉的高手指点!
尼玛看来可能是官方的sourcecode不能处理这中多个index的情况,可能需要想办法修改

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2013-07-14 17:04 |只看该作者
看了你官网的帖子,请问ss_juniper_kernel.php在哪里下载啊?会不会是这个脚本的问题? 你是不是按照官方文档操作php script server的?

论坛徽章:
0
5 [报告]
发表于 2013-07-15 10:33 |只看该作者
谢谢,ss_juniper_kernel.php是自己写的,完全修改官网的ss_host_cpu.php文件来的,而且所有的output均正常,官网论坛的帖子里面也get和index之类cmd的所有输出,木有问题哦

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2013-07-15 10:59 来自手机 |只看该作者
cacti的源码我前几个月调试过,不过是在windows平台下,我的理解大致是:cacti取到snmp或者自己写的脚本数据经过处理后,就会写入rrd文件,然后用php作图把rrd数据显示成图片。至于数据库如mysql里是不存储这类数据的。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2013-07-15 12:36 |只看该作者
试试把xml文件中如下的input换成output
  1. <jnxOperatingDescr>
  2. <name>jnxOperatingDescr</name>
  3. <direction>input</direction>
  4. <query_name>jnxOperatingDescr</query_name>
  5. </jnxOperatingDescr>
复制代码

论坛徽章:
0
8 [报告]
发表于 2013-07-17 00:26 |只看该作者
sohusina 发表于 2013-07-15 12:36
试试把xml文件中如下的input换成output

谢谢兄弟,这二天工作太忙,没顾上看论坛,我已经初步搞定了,官网论坛尼玛一直没人鸟,擦!
只需要在XML的index_order中加上jnxOperatingDescr就OK了,我debug的信息已经打印出来了,再官网论坛的回复里面,原因是jnxOperatingDescr这个index不在index_order中定义,所以if (in_array($index_order_array[$i], $xml_outputs)) 匹配为空,导致后面的一系列数据都是空的,无法生存rra文件……
这里有返回值后即可顺利生成rra,后续的读写数据就没问题了,非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP