Zabbix监控Mysql(percona)

环境:zabbix 3.0.3

1. Mysql监控账户设置

GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY "zabbix";    (用户名和密码根据需要设置)
<此处包括授权和新建用户名密码(建议使用本地登录,不要开启远程登录)
Select 查询权限 
process使用show full processlist(查看全部线程) 
super使用change master、kill、logs、purge、master和set global。还允许mysqladmin调试登陆
replication client:服务器位置的访问

2. 依赖库安装

因为使用php脚本监控,所以需要安装php和php-mysql。

yum install -y php php-mysql
如果遇到类似报错:
Transaction Check Error:
  file /usr/share/mysql/charsets/Index.xml from install of mysql-libs-5.1.73-8.el6_8.x86_64 conflicts with file from package mysql-community-common-5.7.20-1.el6.x86_64
需要安装mysql的lib库文件。需要对应版本文件例如上面的5.7.20报错安装
rpm -ivh mysql-community-libs-compat-5.7.20-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.20-1.el6.x86_64.rpm
如果是mysql5.6.29可以安装rpm -ivh MySQL-shared-compat-5.6.39-1.el6.x86_64.rpm代替

如何需要安装mysql的库文件,可以去mysql官网下载,高点版本(小版本)也可以,但是最好选择对应版本。

3. 安装percona配置脚本

zabbix监控对应rpm文件percona-zabbix-templates-1.1.7-2.noarch.rpm 上传到对应机器。下载地址

下载监控脚本

rpm -ivh percona-zabbix-templates-1.1.7-2.noarch.rpm 
Scripts are installed to /var/lib/zabbix/percona/scripts #监控脚本目录
Templates are installed to /var/lib/zabbix/percona/templates #监控模板

cd /var/lib/zabbix/percona/templates/
cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/ #将监控配置文件拷贝到zabbix_agentd.d中 
位置:yum安装的在/etc/zabbix/zabbix_agentd.d
源码安装的在/你指定的/etc/zabbix/zabbix_agentd.d
若忘记可以find / -name zabbix_agentd.d #查找

  • 新建监控文件:
    新建文件: 此处注意有的网络上说写成localhost-mysql_zabbix_stats.txt但是有时候会发现无效,或者还会生成localhost-mysql_cacti_stats.txt.
touch  /tmp/localhost-mysql_cacti_stats.txt:3317 #后面的是你mysql的使用端口号
chown -R zabbix:zabbix /tmp/localhost-mysql_cacti_stats.txt:3317 #修改所属权限
  • 修改mysql状态监控脚本
vi  /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt "
换成:
CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt:3317" 
TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_cacti_stats.txt`
换成:
TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_cacti_stats.txt:3317` #如果默认端口可以不修改
  • 修改mysql连接脚脚本
vi /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php                                             
$mysql_user = 'zabbix';
$mysql_pass = 'zabbix'; #前面设置监控mysql的用户名和密码
$mysql_port = 3306;#mysql端口
  • 测试percona 是否设置成功
/usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --items gg

如果出现类似gg:10代表以及成功。

重启zabbix-agent服务service zabbix-agent restart

4. Web端操作

  • 导入模板
    /var/lib/zabbix/percona/templates/ 这里的模板无法直接使用会出现报错问题这是因为这里zabbix监控版本不对,可以在网上找到可以使用版本,
    报错

    我使用的模版:下载地址
    导入模版

    在监控主机上添加如下模版:
    添加mysql模版

特别说明:使用percona做监控时候会发现监控的mysql项目特别多,而且有些监控项的名称可能不一定匹配。因此需要在进一步修改下(根据具体环节,比如监控主从复制slave)

if [ "$ITEM" = "running-slave" ]; then
    # Check for running slave
    RES=`HOME=~zabbix mysql -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`
需要根据你的需要设置mysql登录状态。
    if [ "$RES" = " Yes, Yes," ]; then
        echo 1
    else
        echo 0
    fi
    exit

percona监控原理:


原理图
  1. ss_get_mysql_stats.php在一定时间间隔内更新txt文档。生成监控数据,至于怎么生成的熟悉php可以去查看脚本
  2. zabbix-server根据监控项名称通过zabbix-agent配置文件去txt文档中获取数据
    修改收集数据周期

    由于监控项特别多下面是我整理监控项并简单说明:下载
    percona监控项

你可能感兴趣的:(Zabbix监控Mysql(percona))