zabbix-3.2.4监控mysql服务器性能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix-3.2.4监控mysql服务器性能相关的知识,希望对你有一定的参考价值。

环境:centos7
已安装
  zabbix-agent-3.2.4-2.el7.x86_64
  zabbix-server-mysql-3.2.4-2.el7.x86_64
  zabbix-web-3.2.4-2.el7.noarch
  zabbix-web-mysql-3.2.4-2.el7.noarch
  zabbix-release-3.2-1.el7.noarch
  zabbix-get-3.2.4-2.el7.x86_64

查看zabbix_agentd.conf配置文件:

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1    //当系统设置有多个IP时,需要指定一个IP与二级代理或服务端通信,若系统只有一个IP,也建议指定一个IP
ListenPort=10050
ServerActive=127.0.0.1   //在主动模式下,ServerActive为二级代理服务器或服务器,默认端口为10051
Hostname=127.0.0.1    //手工自定义一个主机名,可以和系统的主机名一样,也可以不一样,此参数可根据实际情况启用或关闭,建议关闭此参数,并启用HostnameItem参数
Include=/etc/zabbix/zabbix_agentd.d/*.conf

 


 
开始mysql性能监控
这里可以采用zabbix自带的mysql模版,但是也需要在mysql服务器上准备获取mysql status的脚本chk_mysql.sh,zabbix通过调用这个脚本来获取mysql的运行信息。

1、在配置文件zabbix_agentd.conf里面添加mysql监控信息:

# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=mysql.version,mysql -V
UserParameter=mysql.status[*],/root/chk_mysql.sh $1         //chk_mysql.sh路径根据实际情况
UserParameter=mysql.ping,mysqladmin -uzabbix -pzabbix -P3306 -h127.0.0.1  ping | grep -c alive
//mysql数据库名:zabbix,密码:zabbix;主机地址和zabbix_agentd.conf中Hostname一致


2、mysql操作添加mysql帐号:
mysql>GRANT PROCESS,SUPER,REPLICATION CLIENT ON *.* TO [email protected]‘127.0.0.1‘ IDENTIFIED BY ‘zabbix‘;                              
 

 
3、mysql监控脚本chk_mysql.sh 

技术分享
#!/bin/bash
# -------------------------------------------------------------------------------
# FileName:    check_mysql.sh
# Revision:    1.0
# Date:        2015/06/09
# Author:      DengYun
# Email:       [email protected]
# Website:     www.ttlsa.com
# Description: 
# Notes:       ~
# -------------------------------------------------------------------------------
# Copyright:   2015 (c) DengYun
# License:     GPL
 
# 用户名
MYSQL_USER=zabbix
 
# 密码
MYSQL_PWD=zabbix
 
# 主机地址/IP
MYSQL_HOST=127.0.0.1
 
# 端口
MYSQL_PORT=3306
 
# 数据连接
MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"
 
# 参数是否正确
if [ $# -ne "1" ];then 
    echo "arg error!" 
fi 
 
# 获取数据
case $1 in 
    Uptime) 
        result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"` 
        echo $result 
        ;; 
    Com_update) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3` 
        echo $result 
        ;; 
    Slow_queries) 
        result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"` 
        echo $result 
        ;; 
    Com_select) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3` 
        echo $result 
                ;; 
    Com_rollback) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Questions) 
        result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"` 
                echo $result 
                ;; 
    Com_insert) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_delete) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_commit) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Bytes_sent) 
        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3` 
                echo $result 
                ;; 
    Bytes_received) 
        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_begin) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3` 
                echo $result 
                ;; 
                        
        *) 
        echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)" 
        ;; 
esac
check_mysql.sh

添加check脚本权限:
[[email protected]~]#chmod u+x /root/chk_mysql.sh
[[email protected]~]#chown -R zabbix.zabbix

 

                                                                                                                                    
4、去zabbix服务器上面检查基本mysql服务器信息是否能正常获取到:
[[email protected]~]# zabbix_get -s 127.0.0.1 -p10050 -k "system.cpu.load[all,avg15]";         //127.0.0. 1 与zabbix_agentd.conf 中 server一致                     
0.050000
[[email protected]~]#

 

zabbix web设置
1,建立mysql host groups组
模板是 zabbix系统提供的,进入 zabbix web 后台,Configuration-->Hosts groups-->点击“Create host group”-->选择template选项卡,选择模板“TemplateApp MySQL,Templdate OS Linux”,最后点击update 即可
  技术分享
2,建立hosts
模板是 zabbix系统提供的,进入zabbix web 后台,configuration-->hosts-->点击你的主机 name-->选择template选项卡,选择模板“Template App MySQL”,最后点击左边的“Add”按钮,最后点击“update”按钮即可

   技术分享

3,监控性能视图
监控脚本运行正常后,就会在zabbix-server的host下面的graph里面看到mysql的监控性能视图,monitoring-->Graphs-->Host(选择mysql服务器) Graph(选择mysql选项),可以看到性能监控视图,zabbix自带模版默认有2个性能图,这些图要等运行一段时间后才能画出来

  技术分享

 

附:
查看zabbix web管理段工程下面的数据库配置信息
[[email protected]~]# vim /xxxx/zabbix.conf.php                                            

<?php
// Zabbix GUI configuration file.
global $DB;
 
$DB[TYPE]                              = MySQL;
$DB[SERVER]                         = 127.0.0.1;
$DB[PORT]                              = 3306;
$DB[DATABASE]                       = zabbix;
$DB[USER]                              = zabbix;
$DB[PASSWORD]                       = zabbix;
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB[SCHEMA]                   = ‘‘;
 
$ZBX_SERVER                     = localhost;
$ZBX_SERVER_PORT                = 10051;
$ZBX_SERVER_NAME                = ‘‘;
 
$IMAGE_FORMAT_DEFAULT   = IMAGE_FORMAT_PNG;
?> 

 

 


































以上是关于zabbix-3.2.4监控mysql服务器性能的主要内容,如果未能解决你的问题,请参考以下文章

Centos7下zabbix-3.2.4安装部署

MySQL性能监控

mysql性能监控指标

Mysql性能优化--MySQL监控

MySQL管理之道:性能调优高可用与监控 PDF扫描版[61MB] 完整版下载

Grafana+Prometheus监控mysql性能