利用mysql-SNMP监控mysql
说明:mysql-snmp 为用PERL写的一个为snmp的一个代理,用于获取mysql信息,仅支持 innodb引擎
部署方法:
1) 配置 EPEL YUM源
由于这个玩意是用PERL写的,所以用了很多模块,庆幸的是EPEL提供了这些模块的RPM包,不然,真的很惨(以REDHAT6.4 X86_64 bit)
[EPEL]
name=epel
baseurl:http://dl.fedoraproject.org/pub/epel/6/x86_64/
enabled=1
gpgcheck=0
2)下载mysql-snmp
3)制作 mysql-snmp 的RPM包
shell> cd /usr/src/mysql-snmp-1.2/redhat
shell> rpmbuild -ba mysql-snmp.spec
会在对应的解压处生成相关目录如下:
shell> pwd
/root/rpmbuild <---我是将下载的文件先上传到/root,然后再解压到/usr/src/ 所以,生成的rpmbuild目录就会此处生成
在对应的RPMS目录中就会生成对应RPM包 mysql-snmp-1.2-1.el6.noarch.rpm 了
4) 安装对应的RPM包
shell> yum localinstall mysql-snmp -y <---若已配置好YUM源,不出意外,就会将所在依赖关系搞定了,反之,就只有手工解决。
安装好的相关文件如下:
shell> rpm -ql mysql-snmp-1.2-1.el6.noarch
/etc/rc.d/init.d/mysql-snmp
/etc/snmp/my.cnf
/etc/sysconfig/mysql-snmp
/usr/sbin/mysql-snmp
/usr/share/doc/mysql-snmp-1.2
/usr/share/doc/mysql-snmp-1.2/COPYING
/usr/share/doc/mysql-snmp-1.2/README
/usr/share/doc/mysql-snmp-1.2/mysql.datacollection-config.xml
/usr/share/doc/mysql-snmp-1.2/mysql.snmp-graph.properties
/usr/share/doc/mysql-snmp-1.2/tools
/usr/share/doc/mysql-snmp-1.2/tools/cacti2MIB.pl
/usr/share/doc/mysql-snmp-1.2/tools/cacti2opennms.pl
/usr/share/man/man1/mysql-snmp.1.gz
/usr/share/snmp/mibs/MYSQL-SERVER-MIB.txt
5)修改/etc/snmp/my.cnf 指定相关信息
[client]
host=localhost
#port=3306
user=monitor
password=secret
6)登陆mysql数据库, 添加 用户monitor及设置密码为secret,授权大小最好只具有本地查询权限
7)启动mysql-snmp服务,并设置成开机启动
shell> /etc/init.d/mysql-snmp start && chkconfig mysql-snmp on
8) 修改/etc/snmp/snmpd.conf 添加第三方MIB库信息,同时授权SNMP采集mysql-snmp信息(snmp已能正常采集系统信息),增加如下内容:
mibs +MYSQL-SERVER-MIB
master agentx
9) 重启snmpd 服务,并测试是否成功。
shell> /etc/init.d/snmpd restart
shell> snmpwalk -v 2c -c public 127.0.0.1 .1.3.6.1.4.1.20267.200.1.43
SNMPv2-SMI::enterprises.20267.200.1.43.0 = Counter32: 0
能返回正常信息即OK了
--------------- 配置完成 -------------------
说明:mysql-snmp 为用PERL写的一个为snmp的一个代理,用于获取mysql信息,仅支持 innodb引擎
部署方法:
1) 配置 EPEL YUM源
由于这个玩意是用PERL写的,所以用了很多模块,庆幸的是EPEL提供了这些模块的RPM包,不然,真的很惨(以REDHAT6.4 X86_64 bit)
[EPEL]
name=epel
baseurl:http://dl.fedoraproject.org/pub/epel/6/x86_64/
enabled=1
gpgcheck=0
2)下载mysql-snmp
下载地址;https://github.com/masterzen/mysql-snmp/releases
或 http://download.youkuaiyun.com/detail/nerissa/7070631
并解压至/usr/src3)制作 mysql-snmp 的RPM包
shell> cd /usr/src/mysql-snmp-1.2/redhat
shell> rpmbuild -ba mysql-snmp.spec
会在对应的解压处生成相关目录如下:
shell> pwd
/root/rpmbuild <---我是将下载的文件先上传到/root,然后再解压到/usr/src/ 所以,生成的rpmbuild目录就会此处生成
在对应的RPMS目录中就会生成对应RPM包 mysql-snmp-1.2-1.el6.noarch.rpm 了
4) 安装对应的RPM包
shell> yum localinstall mysql-snmp -y <---若已配置好YUM源,不出意外,就会将所在依赖关系搞定了,反之,就只有手工解决。
安装好的相关文件如下:
shell> rpm -ql mysql-snmp-1.2-1.el6.noarch
/etc/rc.d/init.d/mysql-snmp
/etc/snmp/my.cnf
/etc/sysconfig/mysql-snmp
/usr/sbin/mysql-snmp
/usr/share/doc/mysql-snmp-1.2
/usr/share/doc/mysql-snmp-1.2/COPYING
/usr/share/doc/mysql-snmp-1.2/README
/usr/share/doc/mysql-snmp-1.2/mysql.datacollection-config.xml
/usr/share/doc/mysql-snmp-1.2/mysql.snmp-graph.properties
/usr/share/doc/mysql-snmp-1.2/tools
/usr/share/doc/mysql-snmp-1.2/tools/cacti2MIB.pl
/usr/share/doc/mysql-snmp-1.2/tools/cacti2opennms.pl
/usr/share/man/man1/mysql-snmp.1.gz
/usr/share/snmp/mibs/MYSQL-SERVER-MIB.txt
5)修改/etc/snmp/my.cnf 指定相关信息
[client]
host=localhost
#port=3306
user=monitor
password=secret
6)登陆mysql数据库, 添加 用户monitor及设置密码为secret,授权大小最好只具有本地查询权限
7)启动mysql-snmp服务,并设置成开机启动
shell> /etc/init.d/mysql-snmp start && chkconfig mysql-snmp on
8) 修改/etc/snmp/snmpd.conf 添加第三方MIB库信息,同时授权SNMP采集mysql-snmp信息(snmp已能正常采集系统信息),增加如下内容:
mibs +MYSQL-SERVER-MIB
master agentx
9) 重启snmpd 服务,并测试是否成功。
shell> /etc/init.d/snmpd restart
shell> snmpwalk -v 2c -c public 127.0.0.1 .1.3.6.1.4.1.20267.200.1.43
SNMPv2-SMI::enterprises.20267.200.1.43.0 = Counter32: 0
能返回正常信息即OK了
--------------- 配置完成 -------------------
附: OID 列表
MYSQL检查项
|
OID
|
Key_read_requests | .1.3.6.1.4.1.20267.200.1.1 |
Key_reads | .1.3.6.1.4.1.20267.200.1.2 |
Key_write_requests | .1.3.6.1.4.1.20267.200.1.3 |
Key_writes | .1.3.6.1.4.1.20267.200.1.4 |
history_list | .1.3.6.1.4.1.20267.200.1.5 |
innodb_transactions | .1.3.6.1.4.1.20267.200.1.6 |
read_views | .1.3.6.1.4.1.20267.200.1.7 |
current_transactions | .1.3.6.1.4.1.20267.200.1.8 |
locked_transactions | .1.3.6.1.4.1.20267.200.1.9 |
active_transactions |