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