請問論壇兄弟們有熟悉cacti的PHP Script Server的Template的嗎?

火星人 @ 2014-03-03 , reply:0


請問論壇兄弟們有熟悉cacti的PHP Script Server的Template的嗎?

 

我這邊使用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進行處理。
不曉得具體的內容怎麼搞了
《解決方案》

你的Data Source Debug是怎樣顯示的?
《解決方案》

感謝樓上的兄弟,我的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的情況,可能需要想辦法修改
《解決方案》

看了你官網的帖子,請問ss_juniper_kernel.php在哪裡下載啊?會不會是這個腳本的問題? 你是不是按照官方文檔操作php script server的?
《解決方案》

謝謝,ss_juniper_kernel.php是自己寫的,完全修改官網的ss_host_cpu.php文件來的,而且所有的output均正常,官網論壇的帖子裡面也get和index之類cmd的所有輸出,木有問題哦
《解決方案》

cacti的源碼我前幾個月調試過,不過是在windows平台下,我的理解大致是:cacti取到snmp或者自己寫的腳本數據經過處理后,就會寫入rrd文件,然後用php作圖把rrd數據顯示成圖片。至於資料庫如mysql里是不存儲這類數據的。
《解決方案》

試試把xml文件中如下的input換成output
jnxOperatingDescr
input
jnxOperatingDescr

《解決方案》

sohusina 發表於 2013-07-15 12:36 static/image/common/back.gif
試試把xml文件中如下的input換成output
謝謝兄弟,這二天工作太忙,沒顧上看論壇,我已經初步搞定了,官網論壇尼瑪一直沒人鳥,擦!
只需要在XML的index_order中加上jnxOperatingDescr就OK了,我debug的信息已經列印出來了,再官網論壇的回復裡面,原因是jnxOperatingDescr這個index不在index_order中定義,所以if (in_array($index_order_array[$i], $xml_outputs)) 匹配為空,導致後面的一系列數據都是空的,無法生存rra文件……
這裡有返回值后即可順利生成rra,後續的讀寫數據就沒問題了,非常感謝!




[火星人 via ] 請問論壇兄弟們有熟悉cacti的PHP Script Server的Template的嗎?已經有149次圍觀

http://www.coctec.com/docs/service/show-post-240.html