Chinaunix首页 | 论坛 | 博客
  • 博客访问: 422651
  • 博文数量: 31
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 1622
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-09 10:07
文章分类

全部博文(31)

文章存档

2013年(1)

2012年(19)

2011年(2)

2010年(2)

2009年(3)

2008年(4)

分类: 系统运维

2009-08-04 14:02:39

 

现在行业内流行使用Cacti网络资源和相关服务性能进行监控。Cacti除了自身的模板套用外,还支持一些SNMP扩展的性能图实现。具体工作原理如下:

其实在zenoss环境中,也很容易实现Cacti的这一功能,我们尝试的监测数据库的用户连接情况。具体操作如下:

 

 

SNMP扩展功能

首先,我们先来分析一下这个需求,一般Linux环境查看Mysql端口情况的命令为:

netstat -an |grep 3306

在显示信息中,我们发现ESTABLISHED代表已经确认的连接。我们就以这些数据统计,具体命令为:

netstat -an |grep 3306 |grep ESTABLISHED |wc -l

通过这条命令,我们可以得到Mysql现行确认连接数。

现在,我们在Mysql服务器上,创建一个脚本,以便于让SNMP方便的调用。

vi mysqlconn.sh

脚本中键入如下信息:

#!/bin/sh

netstat -an|grep 3306|grep ESTABLISHED|wc -l

保存脚本后,我们可以直接运行该脚本进行测试

[root@monitor ~]# ./mysqlconn.sh

14

输出显示,现在有14ESTABLISHED的连接

 

然后,我们在编辑snmpd.conf文件,将这个脚本通过SNMP扩展功能加入到设备的MIB信息库中。

echo "exec .1.3.6.1.4.1.2021.18 mysqlconn /usr/local/mysqlconn.sh" >> /etc/snmp/snmpd.conf

配置完成之后重启SNMP服务

snmpd restart

 

 

我们通过Snmpwalk来查看OID.1.3.6.1.4.1.2021.18的信息值

root@monitor ~]# snmpwalk -c public -v1 192..168.0.3 .1.3.6.1.4.1.2021.18

UCD-SNMP-MIB::ucdavis.18.1.1 = INTEGER: 1

UCD-SNMP-MIB::ucdavis.18.2.1 = STRING: "mysqlconn"

UCD-SNMP-MIB::ucdavis.18.3.1 = STRING: "/usr/local/mysqlconn.sh"

UCD-SNMP-MIB::ucdavis.18.100.1 = INTEGER: 0

UCD-SNMP-MIB::ucdavis.18.101.1 = STRING: "14"

UCD-SNMP-MIB::ucdavis.18.102.1 = INTEGER: 0

UCD-SNMP-MIB::ucdavis.18.103.1 = ""

这里可以看到我们刚刚添加的有关信息,在第五行中显示STRING: "14",这个行就是我们运行脚本产品的Mysql连接数值,因此在zenoss中我们需要调整到这一行的数据,该行OID表示为:.1.3.6.1.4.1.2021.18.101.1

 

添加Zenoss模板

1.导航至/Devices/Server/Linux点击Templage模板

2.Available Performance Templates表菜单中选择Add Templates

3.Add Template对话框中建入模板名称,如:mysqlconn,点击OK保存模板。

4.点击mysqlconn连接,进入mysqlconn模板编辑界面

5.创建一个数据源,在Data Sources表菜单中选择Add Data Source。在Add Data Source对话框中建入数据源名称,如mysqlconnType类型中选择SNMP,点击OK保存。

6.进入数据源编辑界面,在OID栏中添加OID编号:.1.3.6.1.4.1.2021.18.101.1。点击Save保存添加。

7.测试数据源:在Test Against Device栏中输入已经配好SNMP连接Mysql服务器地址。点击后面的Test按钮,进行测试,输出结果如下:

Executing command against mysqlserver

UCD-SNMP-MIB::ucdavis.18.101.1 = STRING: "14"

DONE in 0 seconds

8.添加数据点,退回到mysqlconn数据源编辑界面,在DataPoints表菜单中选择Add DataPoint。在Add a New DataPoint对话框中,输入数据源名称,如ESTABLISHED。进入Data Point编辑界面,不用做任何调整,点击Save,保存数据源。

9.添加一个阀值,设定ESTABLISHED连接数超过30,触发Warning黄色报告。退回到mysqlconn模板编辑界面,在Thresholds表菜单中选择Add ThresholdAdd a New Threshold对话框中输入阀值名称,如connmore30Type默认选择MinMaxThreshold点击OK,保存阀值。进入阀值编辑界面,在Data Points栏中选mysqlcoon_ESTABLISHEDMax value栏中填写30,安全级别中默认为Warning,其它值不用修改,点击Save保存阀值修改。

10.添加图像:退回mysqlconn模板编辑界面,通过Graph Definitions表菜单中的Add Graph添加名叫mysql conn的图像。进入Graph Definition编辑界面,在Graph Points表菜单中选择Add DataPoint。在对话框中选择mysqlconn_ESTABLISHED数据点,点击OK。系统会自动添加与数据点有关的阀值。其它信息不用修改,点击Save,保存添加图像的定义。

11.绑定模板。导航到配置有SNMP扩展的Mysql服务器上,在设备状态界面菜单中选择More > Templates,在模板表菜单中选择Bind Templates,在Bind Performance Templates对话框中复选择Device[/Devices/Server]mysqlconn[/Devices/Server/Linux],点击OK完成模板绑定工作。

12.验证图像:在设备界面下点击Perf标签中,原性能数据图像下面,我们看到新添加的mysql conn图像。等待约10分钟后,可以看到性能图像输出数据。见下图

 

 

阅读(2624) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-07-06 08:51:24

哥建议你表达式要这样写才对: netstat -an |grep -w 3306 |grep ESTABLISHED |wc -l ==== 哥淡淡笑笑