cwx 发表于 2017-12-12 13:57:27

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.1ping | grep -c alive  //mysql数据库名:zabbix,密码:zabbix;主机地址和zabbix_agentd.conf中Hostname一致
  

  2、初始化数据库并添加一个mysql帐号:
# mysqladmin -uroot -h 127.0.0.1 password 123456
# mysql -u root -p
  Enter password:
  mysql>GRANT PROCESS,SUPER,REPLICATION CLIENT ON *.* TO zabbix@'127.0.0.1'>  mysql> FLUSH PRIVILEGES;
  Query OK, 0 rows affected (0.00 sec)
  mysql> quit
  Bye
  3、mysql监控脚本chk_mysql.sh


  

#!/bin/bash  
#
-------------------------------------------------------------------------------  
# FileName:    check_mysql.sh
  
# Revision:   
1.0  
# Date:      
2015/06/09  
# Author:      DengYun
  
# Email:       dengyun@ttlsa.com
  
# 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脚本权限:
#chmod u+x /root/chk_mysql.sh
#chown -R zabbix.zabbix
  4、去zabbix服务器上面检查基本mysql服务器信息是否能正常获取到:
# zabbix_get -s 127.0.0.1 -p10050 -k "system.cpu.load";         //127.0.0. 1 与zabbix_agentd.conf 中 server一致                     
  0.050000
#
  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管理段工程下面的数据库配置信息
# 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;
  
?>
  
页: [1]
查看完整版本: zabbix-3.2.4监控mysql服务器性能