zabbix和mysql performance monitor模板实现mysql数据库的监控

from: 
http://www.fromdual.com/mpm-installation-guide
http://634871.blog.51cto.com/624871/1382835

1.安装mpm需要的相关依赖包:[保险起见,agent端也安装下面的依赖包]


  1. [root@client141 ~]# yum -y install perl-File-Which perl-libwww-perl perl-Digest-SHA1 perl-DBD-MySQL perl-Time-HiRes perl-Crypt-SSLeay
  2. # 上面perl-File-Which没有自带,需要自行下载安装(如果还提示perl包,根据需要安装相应perl版本,推荐使用yum安装,另一篇博客:http://blog.itpub.net/29096438/viewspace-1785734/)
  3. [root@client141 ~]# rpm -ivh perl-File-Which-1.09-5.1.noarch.rpm

  4. 还要安装这几个个包,不安装后面一定会报错
  5. [root@client141 ~]# rpm -ivh MySQL-devel-5.6.15-1.linux_glibc2.5.i386.rpm MySQL-shared-5.1.7-0.i386.rpm  perl-DBD-mysql

2.下载mpm并解压:[解压后会产生两个压缩包]
  1. [root@client141 ~]# tar -zxvf mysql_performance_monitor-latest.tar.gz
  2. mysql_performance_monitor_agent-0.9.1.tar.gz
  3. mysql_performance_monitor_templates-0.9.1.tar.gz

3.在zabbixe服务端或者是web端解压模板文件:
  1. [root@client141 ~]# tar -zxvf mysql_performance_monitor_templates-0.9.1.tar.gz
  2. mysql_performance_monitor_templates-0.9.1/
  3. mysql_performance_monitor_templates-0.9.1/CHANGELOG
  4. mysql_performance_monitor_templates-0.9.1/xml/
  5. mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.ndb.xml
  6. mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.security.xml
  7. mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.innodb.xml
  8. mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.mpm.xml
  9. mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.myisam.xml
  10. mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.mysql.xml
  11. mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.aria.xml
  12. mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.galera.xml
  13. mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.slave.xml
  14. mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.server.xml
  15. mysql_performance_monitor_templates-0.9.1/xml/clone_screen.txt
  16. mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.master.xml
  17. mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.drbd.xml
  18. mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.pbxt.xml
  19. mysql_performance_monitor_templates-0.9.1/xml/Template_FromDual.MySQL.process.xml

4.在zabbix server端或web导入相应模板文件:[加粗部分为需要导入的模板]
  1. [root@client141 ~]# cd mysql_performance_monitor_templates-0.9.1/xml/
  2. 在Zabbix Web UI导入监控所需的模板(“Configuration”->”Templates”->”Import”):
  3. 具体模板文件用途如下:
  4. Template_FromDual.MySQL.ndb.xml # 监控mysql cluster
  5. Template_FromDual.MySQL.security.xml
  6. Template_FromDual.MySQL.innodb.xml # 监控innodb存储引擎状态变量
  7. Template_FromDual.MySQL.mpm.xml # 监控mpm agent本身,这个必须导入
  8. Template_FromDual.MySQL.myisam.xml # 监控myisam存储引擎状态变量
  9. Template_FromDual.MySQL.mysql.xml # 监控mysql 常用状态变量
  10. Template_FromDual.MySQL.aria.xml # 监控aria存储引擎的状态变量
  11. Template_FromDual.MySQL.galera.xml # 监控 mysql galera cluster
  12. Template_FromDual.MySQL.slave.xml # 监控mysql主从复制中的slave的状态
  13. Template_FromDual.MySQL.server.xml # 监控linux系统跟数据库使用相关的附加项
  14. Template_FromDual.MySQL.master.xml # 监控mysql主从复制的master的状态
  15. Template_FromDual.MySQL.drbd.xml # 监控drbd 设备的状态信息
  16. Template_FromDual.MySQL.pbxt.xml # 监控pbxt存储引擎状态变量
  17. Template_FromDual.MySQL.process.xml # 监控各种linux进程(比如:mysqld,ndbd)

5.在客户端[mysql 数据库服务器端] 安装mysql_performance_monitor_agent
  1. [root@client100 ~]# tar -zxvf mysql_performance_monitor_agent-0.9.1.tar.gz
  2. [root@client100 ~]# mv mysql_performance_monitor_agent-0.9.1 /usr/local/mysql_performance_monitor_agent
  3. [root@client100 ~]# cd /usr/local/mysql_performance_monitor_agent/
  4. # 修改 FromDualMySQLagent.pl 文件,指定zabbix_sender的位置
  5. [root@client100 mysql_performance_monitor_agent]# sed -i 's|/usr/local/bin|/usr/bin|g' FromDualMySQLagent.pl    ---填写自己的sender位置,注意

# 编辑配置文件
  1. [root@client100 mysql_performance_monitor_agent]# cd etc/
  2. [root@client100 etc]# cp FromDualMySQLagent.conf.template /etc/FromDualMySQLagent.conf
  3. [root@client100 etc]# vim /etc/FromDualMySQLagent.conf
  4. [default]
  5. Type = mysqld
  6. Debug = 2

  7. #执行日志文件路径,需要zabbix用户可写权限
  8. LogFile = /var/log/zabbix/FromDualMySQLagent.log
  9. CacheFileBase = /var/log/zabbix/cache/FromDualAgentCache

  10. #需要在本机的Mysql中进行授权(需要什么权限?process,replication client)
  11. Username = mpm
  12. Password = kongzhong
  13. MysqlHost = 127.0.0.1
  14. MysqlPort = 3306
  15. ZabbixServer = 192.168.1.141
  16. Disabled = false
  17. Modules = process mysql myisam innodb
  18. #ClusterLog = /var/lib/mysql-cluster/ndb_1_cluster.log
  19. # Mysql的PID文件,需要zabbix用户可读权限
  20. PidFile = /var/run/mysqld/mysqld.pid     ---mysql的pid文件,rpm安装的mysql就是/var/lib/mysql/**.pid文件

  21. # 下面这个不能注掉也不能改section名称,探测本机的mpm是否可用
  22. [db_server]
  23. Type = mysqld
  24. Modules = mpm server

  25. #下面的主机名需要跟Zabbix Server里面定义的主机名一致,名称随意起(就是zabbix_agented里面的那个hostname)
  26. [hostname1]
  27. Type = mysqld
  28. #这些模块必须在mysql数据库上已经实现了功能,如主从,如果没有配置主从,而添加了master模板,在执行过程中就会报错
  29. Modules = mpm server process mysql myisam innodb master
  30. PidFile = /var/run/mysqld/mysqld.pid


6.修改zabbix agent 配置文件:
# 这个参数配置文件,是自己新建的
[root@client100 ~]# vim /etc/zabbix/ zabbix_agentd.conf
# 添加如下参数:
  1. UserParameter=FromDual.MySQL.check,/usr/local/mysql_performance_monitor_agent/FromDualMySQLagent.pl /etc/FromDualMySQLagent.conf  --路径注意

7.登陆数据库,授权相应的mpm用户,权限
  1. mysql> grant process,replication client on *.* to 'mpm'@'127.0.0.1' identified by 'kongzhong';
  2. mysql> flush privileges

8.修改 FromDualMySQLagent.conf 配置文件相关目录的权限:
  1. # 创建相关日志存放目录:
  2. [root@client100 ~]# mkdir -p /var/log/zabbix/cache
  3. # 手动创建日志文件:
  4. [root@client100 ~]#touch /var/log/zabbix/FromDualMySQLagent.log
  5. # 修改目录权限:
  6. [root@client100 ~]#chown zabbix:zabbix /var/log/zabbix/ -R
  7. # 修改权限
  8. [root@client100 log]# chmod o+r /var/run/mysqld/mysqld.pid
  9. # zabbix-agent 重启
  10. [root@client100 etc]# /etc/init.d/zabbix-agent restart

9.上面配置完成后,就需要在zabbix web创建组和主机,关联相关模板,这里不演示了
10.简单测试:
  1. (1).检查MPM插件的工作情况:
  2. [root@client100 ~]# /usr/local/mysql_performance_monitor_agent/FromDualMySQLagent.pl /etc/FromDualMySQLagent.conf
  3. 1
  4. # 返回值为1:表示MPM插件正常,重启zabbix_agent,加载mpm插件
  5. (2).在实际中,如果怀疑是zabbix_agentd问题,使用如下测试方式:
  6. [root@client100 ~]# zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -t FromDual.MySQL.check
  7. FromDual.MySQL.check [t|1]
  8. [root@client100 ~]# zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -t system.uptime
  9. system.uptime [u|6518]
  10. # 以上能正常返回值,说明zabbix_agent是正常的
  11. (3). 如果有错误的话,请查看/var/log/zabbix下的相关日志,

  12. ################### 实现流程
  13. (crontab)FromDualMySQLagent.pl
  14. 先收集监控数据,保存到FromDualAgentCache.hostname.cache
  15. 在调用zabbix_sender,将FromDualAgentCache.hostname.cache中的内容发送到zabbix server



###################常见故障
### 权限问题
# zabbix 可以访问mysql的pid
usermod -G mysql zabbix
# zabbix 用户启动 FromDualMySQLagent.pl,使得zabbix_sender可以访问FromDualAgentCache.hostname.cache
su - zabbix -c "/usr/local/mysql_performance_monitor/FromDualMySQLagent.pl /usr/local/mysql_performance_monitor/etc/FromDualMySQLagent.conf"

### 无法连接zabbix server
其他zabbix服务端、客户端日志都正常,无报错
5279:2014-03-17 15:26:39.853 - INFO: FromDual Performance Monitor for MySQL (0.9.1) run started.
5279:2014-03-17 15:26:39.867 - WARN:       192.168.1.141, 10051,db_server
5279:2014-03-17 15:26:39.867 - WARN:       Connection to zabbix server failed (rc=1305)!
5279:2014-03-17 15:26:40.882 - WARN:       192.168.1.141, 10051,192.168.1.100
5279:2014-03-17 15:26:40.882 - WARN:       Connection to zabbix server failed (rc=1305)!
5279:2014-03-17 15:26:41.890 - WARN:       192.168.1.141, 10051, 192.168.1.100
可采取措施如下步骤:
  第一步:修改 FromDualMySQLagent.conf 配置文件,注释掉如下部分:[这些注释的部分,因为在zabbix web没有配置此主机]
# [db_server]
# Type         = mysqld
# Modules      = mpm server

  [hostname1]

 Type = mysqld

  Mysqlport=3306

  Modules = mpm server process mysql myisam innodb master

  PidFile      = /var/run/mysqld/mysqld.pid

  第二步: 注释掉模块里检查zabbix server 的语句:(推荐)
  [root@client100 ~]# vim /usr/local/mysql_performance_monitor_agent/lib/sendData.pm
# 注释掉的语句如下:
 #   $rc = &FromDualMySQLagent::checkConnectionToZabbixServer($main::gParameter{'ZabbixServer'}, $main::gParameter{'ZabbixServerPort'}, $main::gParameter{'Hostname'});

源码:FromDualMySQLagent.pm的checkConnectionToZabbixServer
# This tag does NOT exist in templates!!!
my $lKey    = 'FromDual.server.check';
my $lValue  = 1;

###  Load of cache file failed. rc=1301
12933:2014-03-22 06:52:06.005 - INFO: FromDual Performance Monitor for MySQL (0.9.1) run started.
12933:2014-03-22 06:52:06.019 - ERR :       Load of cache file failed. rc=1301
# 报此错了,上面的文件,也在不断变大,一般是上面文件有错,建议删掉文件,重新启动程序,让程序自己再重新创建个新文件(而不是清空文件)
(7).在zabbix web 端配置主机组时,主机组为 mysql database (可以设置为其他组,已经测试成功)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29096438/viewspace-1787568/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29096438/viewspace-1787568/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值