2018年6月9日 星期六

關於cacti script_server 的使用方法 (How to program cacti script_server)

搞了幾天才搞好,來做個記錄:
我其實是在弄cacti批次讀取ASR的溫度並繪圖的功能一開始想要自己寫(去年已經寫過ERX版的了,記得難度不高)。程式不難寫,但建完index之後,沒有辦法query module name,試了一兩天都搞不定(再加上那幾天電話跟派案很多,根本沒有辦法好好測試)。後來有空了,再回頭去抄自己的程式,才發現問題在XML檔。之後就順利query了。
原以為順利query之後,就可以簡單get value,但又卡了兩天,原因又是我去年沒有仔細看教學跟說明,就直接抄別人的東西又運氣很好的做出來。今天仔細看了說明,才知道自己的問題在哪,之後就順利把圖弄出來了。問題還是在XML檔。剛好是跟query當時相反的設定。原因在於Cacti在scrips_server以及scrips_query定義的方式不同。但我一開始抄的時候沒有弄的太清楚就趕時間硬上,反而花了很多時間。
在解決問題之前,最好還是能把問題弄懂,可以省下很多時間。



如果要用script_server的方式來執行,





這兩行都一定要加,否則之後在polling時無法輸出 (都是U)
XML的格式很重要,不然script_server不吃,之後就沒有辦法輸出。


最後是測試方法:
[root@MARS /]# /usr/bin/php /usr/share/cacti/site/script_server.php
PHP Script Server has Started - Parent is cmd
/usr/share/cacti/site/scripts/iosxr_temperature.php iosxr_temp 1.1.1.1 4 2:161:500:1:10:public:::::: get temperature 52737404
PHP Parse error:  syntax error, unexpected '}' in /usr/share/cacti/site/scripts/iosxr_temperature.php on line 109


這樣就能debug了。





沒有留言:

張貼留言