kamailio/opensips snmp/cacti/zabbixモニタリング

7902 ワード


 
kamailio/opensipsは現在比較的流行しているsip proxyであり、配置が柔軟で、性能が強く、各種RFCをサポートするなどの利点があり、人を殺して商品を越え、愛を語るには必須の佳品である.このような良いものが安定して運行することを保証するには、監視は欠かせない.国外の大牛はとっくにこの点を考えていたので、kamailioの運行状況を監視するためにsnmpstatsモジュールを作った.プログラム中の性能データを出力することができるなど、現在の事務数、登録用戸数、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行から:
[plain]
 
view plain
copy
#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 
[plain]
 
view plain
copy
# 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のカスタムグラフを探してそのまますればいいです.
 
リファレンスドキュメント
http://www.kamailio.org/dokuwiki/doku.php/utils:kamailio-and-snmp
http://kamailio.org/docs/modules/3.3.x/modules_k/snmpstats.html