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行开始:
[plain] view plaincopy

  1. #BUILDAGENTLIBS = $(shell net-snmp-config --netsnmp-agent-libs)
  2. BUILDAGENTLIBS =-L$(LOCALBASE)/lib -lnetsnmpmibs -lnetsnmpagent \
  3. -Wl,-E \
  4. -Wl,-rpath,/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE \
  5. -L/usr/local/lib -L/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/auto/DynaLoader -lDynaLoader \
  6. -L/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE \
  7. -lperl -lresolv -lnsl -ldl -lm -lcrypt -lutil \
  8. -lpthread -lc \
  9. -lwrap \
  10. -lsensors \
  11. -lrpmdb -lrpm \
  12. -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 plaincopy

  1. # snmpd command line options
  2. # OPTIONS="-Lsd -Lf /dev/null -p /var/run/snmpd.pid -a"
  3. 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 snmp/cacti/zabbix监控的更多相关文章

  1. zabbix企业应用:通过SNMP和iDRAC监控DELL服务器硬件

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://qicheng0211.blog.51cto.com/3958621/174998 ...

  2. Zabbix 监控 SNMP & JMX

    Zabbix 配置清华源 # 安装清华源 yum 仓库 [root@db01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabb ...

  3. Zabbix监控系统深度实践

    Zabbix监控系统深度实践(企业级分布式系统自动化运维必选利器,大规模Zabbix集群实战经验技巧总结,由浅入深全面讲解配置.设计.案例和内部原理) 姚仁捷 著  ISBN 978-7-121-24 ...

  4. Cacti+Nagios监控平台完美整合

    Cacti+Nagios监控平台完美整合 本博文出自51CTO博客吴光科博主,有任何问题请进入博主页面互动讨论!博文地址:http://wgkgood.blog.51cto.com/1192594/1 ...

  5. zabbix监控的基础概念、工作原理及架构

    一.什么是zabbix及优缺点(对比cacti和nagios) Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题.是一个基于WE ...

  6. zabbix监控实战<1>

    第一章 监控家族 1.1 为什么选择监控? 因为在一个IT集群中或者是一个大环境中,包括各种硬件设备.软件设备等系统的构成也是极其复杂的. 多种应用构成负载的IT业务系统,保证这些资源的正常运转,是一 ...

  7. zabbix监控-基本原理介绍

    一.Linux下开源监控系统简单介绍1)cacti:存储数据能力强,报警性能差2)nagios:报警性能差,存储数据仅有简单的一段可以判断是否在合理范围内的数据长度,储存在内存中.比如,连续采样数据存 ...

  8. 第一章 :zabbix监控

    1.1 为什么要监控 在需要的时刻,提前提醒我们服务器出问题了 当出问题之后,可以找到问题的根源   网站/服务器 的可用性 1.1.1 网站可用性 在软件系统的高可靠性(也称为可用性,英文描述为HA ...

  9. zabbix监控的基础概念、工作原理及架构(一)

    zabbix监控的基础概念.工作原理及架构 转载于网络 一.什么是zabbix及优缺点 Zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的 ...

随机推荐

  1. DNS 域名解析过程

    当用户在浏览器中输入域名并按下回车键后,DNS解析会有如下7个步骤 浏览器缓存 浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束.浏览器缓存域名也是有限制的, ...

  2. IDG | 四则运算表达式计算

    分析 首先将中缀表达式转换为后缀表达式(逆波兰式),然后使用栈进行计算. 没有考虑括号.小数. 代码 import java.util.LinkedList; import java.util.Lis ...

  3. ItelliJ IDEA开发工具使用—创建一个web项目

    转   http://blog.csdn.net/wangyang1354/article/details/50452806 最近想用IDEA编辑器开发,但是平时都用MyEclipse和eclipse ...

  4. chardet的使用

    http://blog.csdn.net/jy692405180/article/details/52496599

  5. 重温.NET下Assembly的加载过程 ASP.NET Core Web API下事件驱动型架构的实现(三):基于RabbitMQ的事件总线

    重温.NET下Assembly的加载过程   最近在工作中牵涉到了.NET下的一个古老的问题:Assembly的加载过程.虽然网上有很多文章介绍这部分内容,很多文章也是很久以前就已经出现了,但阅读之后 ...

  6. FALSE_IT

    本文讲一个实用的语法糖(suger),很不错,攻克了我实际工作中的问题. 如果你写了这样一个类: class Executor { int step1(); void step2(); int ste ...

  7. longestIncreasingSequence最长上升子序列问题

    package dp; /** * 最长上升子序列问题 */ public class LongestIncreasingSubsequence { /** * 原始dp * @param arr * ...

  8. poj 2888 Magic Bracelet <polya定理>

    题目:http://poj.org/problem?id=2888 题意:给定n(n <= 10^9)颗珠子,组成一串项链,每颗珠子可以用m种颜色中一种来涂色,如果两种涂色方法通过旋转项链可以得 ...

  9. c# winform中预防窗体重复打开

      当窗体以非模态形式打开的时候,有可能出现重复打开的情形,利用以下的代码可以预防重复打开! foreach (Form f in Application.OpenForms) { if (f.Nam ...

  10. 九度OJ 1105:字符串的反码 (翻译)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4929 解决:1529 题目描述: 一个二进制数,将其每一位取反,称之为这个数的反码.下面我们定义一个字符的反码.如果这是一个小写字符,则它 ...