kamailio/opensips snmp/cacti/zabbix監控

kamailio/opensips是現在比較流行的sip proxy,有配置靈活、性能強大、支持各種RFC等優點,是殺人越貨、談情說愛是必備佳品。要保證這麼好的東西穩定運行,監控是必不可少的,國外的大牛早就想到這點,所以已搞好了一個snmpstats模塊可用於監控kamailio運行情況,能夠輸出程序中的性能數據等,像當前事務數、註冊用戶數、socket未讀取數據字節數等,都是關乎系統性能的關鍵數據。
本文以國外大牛之模塊說明爲原型,再次梳理如何配置kamailio snmpstats模塊。雖然是以kamailio爲例,但只要將kamailio替換成opensips,基本是可用的。

一. 編譯snmpstats 模塊
1.依賴
內部依賴:使用snmpstats模塊,必須先加載usrloc模塊和dialog模塊。
外部依賴:必須安裝NETSNMP 5.3從上版本,CentOS/Redhat安裝方法
#yum install net-snmp-devel net-snmp net-snmp-libs net-snmp-utils
2.編譯
使用默認的makefile編譯出來的文件會提示bnetsnmpagent.so.10: undefined symbol: boot_DynaLoader 錯誤,我是上刀山下火海終於找到解決方案,參見以下對Makefile的修改
modules_k/snmpstats/Makefile從24行開始:
        #BUILDAGENTLIBS = $(shell net-snmp-config --netsnmp-agent-libs)
        BUILDAGENTLIBS =-L$(LOCALBASE)/lib -lnetsnmpmibs -lnetsnmpagent \
        -Wl,-E \
        -Wl,-rpath,/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE \
        -L/usr/local/lib -L/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/auto/DynaLoader -lDynaLoader \
        -L/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE \
        -lperl -lresolv -lnsl -ldl -lm -lcrypt -lutil \
        -lpthread -lc \
        -lwrap \
        -lsensors \
        -lrpmdb -lrpm \
        -lnetsnmphelpers -lnetsnmp

改完以上的問題就可以接着編譯了
#make modules modules=modules_k/snmpstats
完成編譯後把相應庫複製到kamailio對應的庫目錄下面。

二.配置 kamailio
#vi kamailio.cfg
在相應位置加上
loadmodule "snmpstats.so"
 
..
 
# ----- snmpstats params ----
modparam("snmpstats", "sipEntityType", "registrarServer")
modparam("snmpstats", "snmpgetPath", "/usr/bin/")
然後再檢測下配置是否正確
#kamailio -c

三.配置snmp
注意以下說的配置文件都是通過RPM包裝的路徑,如果你是源碼安裝且未指定prefix那通常都是在/usr/local/share這個下面。
1.到原來的kamailio源碼目錄下,把mibs文件都複製到/usr/share/snmp/mibs目錄,且將原文件加上.txt後綴,命令如下:
#cp modules_k/snmpstats/mibs/* /usr/share/snmp/mibs
改名不用說了吧,但別忘記了照做。
2. 配置snmpd.conf
#vi /etc/snmp/snmpd.conf  ; 添加以下配置項,不過組織名最好改一下,整一個自己的名稱,別讓別人知道了。
rocommunity public
master agentx
agentXSocket tcp:localhost:705
3.配置 snmp.conf
#vi /etc/snmp/snmp.conf  ;具體配置項的意思請google,這裏就不一一敷述。
defVersion       2c
defCommunity    public
mibdirs         /usr/share/snmp/mibs
mibs            +ALL
4.配置snmpstats.conf
#vi /etc/snmp/snmpstats.conf ; 這個配置文件是給snmpstats模塊用的,是告訴模塊agentx在哪裏,並且文件需要和snmpd.conf放在同一個目錄下,所以這裏是/etc/snmp。
 agentXSocket tcp:localhost:705

四.見證奇蹟吧
啓動snmpd
/etc/init.d/snmpd start
然後重啓動kamailio
如果啓動得看你如何配置的,我配置了服務,就這樣運行了
/etc/init.d/kamailio restart

好了,看看有沒有數據吧
 snmpwalk localhost openser
看到OPENSER -XXX 一大堆輸出了嗎?
:)*(&#(&#
沒有看到?太正常了,第一次都是把事情做對,那以後就沒事情可做了。如果輸出一堆錯誤或沒有輸出那就正確了,不折騰咋能學到東西呢?

五.出啥問題了
1.我們要檢測snmpd對沒對
先看下snmpd啓動沒有,如果啓動了檢測下我們要用的705端口是否正確監聽,同時一定要看日誌 /var/log/snmpd.log
如果沒日誌 默認net-snmpd輸出日誌到/var/log/messes,想輸出至一個獨立日誌文件,配置爲:
vi /etc/sysconfig/snmpd.options 
# snmpd command line options
# OPTIONS="-Lsd -Lf /dev/null -p /var/run/snmpd.pid -a"
OPTIONS="-Lsd -Lf  /var/log/snmpd.log -p /var/run/snmpd.pid -a"

2.然後我們看下kamailio有沒有幹活
重啓kamailio,kamailio會去連接705端口的,如果沒有,檢測下snmpstats.conf文件路徑及配置,kamailio配置等。

如果檢測完了還不行,那就再照着以上步驟做一次。

到這裏SNMP已經有數據輸出了,接下來就是去CACTI裏面創建模塊,然後自定義圖表,通過SNMP把數據畫上去,這方面的東西與kamailio無法了,直接去網上搜下cacti自定義圖表照做即可。

參考文檔


kamailio/opensips 技術交流QQ羣:118791050

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章