如何实施zabbix对mysql全面监控

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实施zabbix对mysql全面监控相关的知识,希望对你有一定的参考价值。

参考技术A 一、从网上下载相应脚本与XML定义文件。
  下载地址:http://www.zabbix.com/wiki/doku.php?id=extensive_mysql_monitoring_including_replication
1.                            Template_MySQL_Server.xml
2.                            Template_MySQL_Replication_Master.xml
3.                            Template_MySQL_Replication_Slave.xml
  和执行脚本:mysql.php
  二、把mysql.php上传至配置文件目录/etc/zabbix/
1.                            chmod 755 mysql.php
  三、修改mysql.php文件
  根据本机环境。
  第一行加入:#!/usr/bin/php
  在最后一行加入:?>
  关闭调试:define('DEBUG',true); 为 define('DEBUG',False);
  修改日志、数据文件路径:
1.                            define('LOG',"/tmp/zabbix_".SYSTEM.".log");
2.                            define('DAT',"/tmp/zabbix_".SYSTEM.".dat");
3.                            define('UTIME',"/tmp/.zabbix_".SYSTEM.".utime");
4.                            define('DTIME',"/tmp/.zabbix_".SYSTEM.".dtime");
  修改:define('SYSTEM','mysql'.(DEBUG ? "-debug" : ""));为:define('SYSTEM','mysql');
  打开系统日志功能
  > ".LOG); 为
  > ".LOG);
  在$cmd = "zabbix_sender -z $server -p 10051 -s $host -k ".SYSTEM.".$var -o $val";
  下面增加一行:exec($cmd);
  四、在zabbix_agentd.conf配置文件中加入
  UserParameter=mysql.daily,php /etc/zabbix/mysql.php daily 用户名密码
  UserParameter=mysql.live,php /etc/zabbix/mysql.php live 用户名 密码
  daily:每天执行一次。
  live:按指定时间执行一次。
  php :执行php文件
  /etc/zabbix/mysql.php:mysql.php文件所在的文件路径
  用户名 密码:登录mysql数据库的账户与密码
  重启zabbix_agentd
  五、在zabbix web管理界面导入xml文件
  配置-导入/导出-浏览
  六、在主机内增加指定模板
  配置-主机-具体主机名-Link with Template-新增-刚导入的模板。
  模板分为三种:
  template MYSQL_server:监控项最全
  template MYSQL_Replication_Master:只监控主要参数,监控功能相对最少
  template MYSQL_Replication_Slave:主要针对性能方面的监控。
  七、测试监控是否成功
  删除 定时文件
1.                            rm /tmp/.zabbix_mysql-debug.dtime;
  取的每天的监控数据
1.                            php /etc/zabbix/mysql.php daily root *****
  取即时数据
1.                            php /etc/zabbix/mysql.php live root *****
  查看日志
1.                            cat /tmp/zabbix_mysql.log
2.                            Info from server: "Processed 1 Failed 0 Total 1 Seconds spent 0.006261"
3.                            sent: 1; skipped: 0; total: 1
4.                            Info from server: "Processed 1 Failed 0 Total 1 Seconds spent 0.004047"
5.                            sent: 1; skipped: 0; total: 1
6.                            Info from server: "Processed 0 Failed 106 Total 106 Seconds spent 0.045790"
7.                            sent: 106; skipped: 0; total: 106
  看到上述为成功

zabbix监控mysql-如何使用zabbix自带的模板监控-nagios监控mysql主从

用zabbix监控mysql(源码安装)安装位置在/usr/local/zabbix/


  1. 监控端(server):

    在被监控端主机上关联该模板Template App MySQL

中文:组态->主机->名称一栏点击进去->模板,点击链接新模板->添加->Template App MySQL->存档

英文:Configuration->Hosts->Name->Templates,Link new templates->Add->Template App MySQL->Save


2. 被监控端(agent):

1)在源码包../zabbix-2.2.1/conf/zabbix_agentd/ 拷贝模板

cp zabbix-2.2.1/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/

2)授予监控mysql信息的用户权限

mysql> grant usage on *.* to [email protected]‘localhost‘ identified by ‘zabbix‘;

3)修改my.cnf

[mysqladmin]
host=localhost
user=zabbix
password=zabbix
[mysql]
host=localhost
user=zabbix
password=zabbix

4)修改

vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
UserParameter=mysql.status[*],echo "show global status where Variable_name=‘$1‘;" | HOME=/var/lib/zabbix mysql -uzabbix -pzabbix -hlocalhost -N | awk ‘{print $$2}‘
UserParameter=mysql.size[*],echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all"
 || ! "$1" ]] || echo " where table_schema=‘$1‘")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=‘$2‘");" | HOME=/var/lib/zabbix mysql -uzabbix -pzabbix -hlocalhost -N
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin -uzabbix -pzabbix -hlocalhost ping | grep -c alive
UserParameter=mysql.version,mysql -uzabbix -pzabbix -hlocalhost -V

5)

# /etc/init.d/mysqld restart
# /etc/init.d/zabbix_agentd restart

6)在server上的查看图像数据

     Monitoring->Graphs->MySQL operations


nagios监控主从

ls /usr/local/nagios/etc/objects/commands.cfg

# vim /usr/local/nagios/etc/objects/commands.cfg
define command  {
         command_name    check_mysql_slave
         command_line  $USER1$/check_mysql -H $HOSTADDRESS$ -S -uzabbix -pzabbix
  }
修改被监控端的配置文件
# vim zabbix_agent.cfg
  
define service{
        use                             local-service
        host_name                       zabbix_agent
        service_description             MYSQL_SLAVE
        check_command                   check_mysql_slave                     
}

/etc/init.d/nagios restart



本文出自 “蚂蚱小子” 博客,请务必保留此出处http://zxlwz.blog.51cto.com/6952946/1853566

以上是关于如何实施zabbix对mysql全面监控的主要内容,如果未能解决你的问题,请参考以下文章

Zabbix配合fpmmm(mpm)实现对Mysql的全面监控

使用zabbix监控mysql

Memcached全面解析及使用zabbix监控

Memcached全面解析并使用zabbix进行监控

zabbix监控规划及实施

中国银行是如何优化 Zabbix 监控方案的?