说明:

如果要使用zabbix监控mysql,默认的模板是无法工作的,因为没有key的存在,所以要自己写脚本、自己定义key。脚本可以用任意语言实现,但在linux下还是shell方便


流程:

zabbix监控mysql大概有以下步骤:

mysql添加zabbix用户,允许zabbix查看mysql状态

zabbix agent添加mysql_status脚本,用于获取mysql status值;

zabbix agend添加mysql_status.conf配置文件,定义key值。配置文件ok后重启zabbix agentd;

zabbix server上的web界面添加对应主机mysql模板(自带)


1、添加监控用户,登入到数据里然后:

GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix' WITH GRANT OPTION;
flush privileges;      ##刷新系统授权
grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbix' with grant option;



2、创建mysql_status脚本

sudo vim /etc/zabbix/scripts/mysql_status.sh
#!/bin/bash
mysql=/usr/bin/mysql
var=$1
MYSQL_USER=$2
MYSQL_PASSWORD=$3
MYSQL_Host=$4
[ "${MYSQL_USER}"     = '' ] &&  MYSQL_USER=zabbix   #mysql的zabbix用户
[ "${MYSQL_PASSWORD}" = '' ] &&  MYSQL_PASSWORD=zabbix  #mysql的zabbix密
码
[ "${MYSQL_Host}"     = '' ] &&  MYSQL_Host=localhost   #zabbix agentd的
内网ip
[ "${var}" = '' ] && echo ""||${mysql} -h${MYSQL_Host} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e 'show global status'|grep -v Variable_name|grep "\b${var}\b"|awk '{print $2}'



3、修改zabbix_agentd.conf文件:

sudo egrep -v "(^#|^$)" /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix-agent/zabbix_agentd.log
LogFileSize=0
Server=192.168.16.62
Include=/etc/zabbix/zabbix_agentd.conf.d/     #启用扩展配置目录
UnsafeUserParameters=1        #允许自动以key
UserParameter=net.eth0[*], /etc/zabbix/scripts/net.sh $1


4、创建mysql.conf扩展配置文件

sudo vim /etc/zabbix/zabbix_agentd.conf.d/mysql.conf 
UserParameter=mysql.status[*],/etc/zabbix/scripts/mysql_status.sh $1
UserParameter=mysql.ping,/usr/bin/mysqladmin ping  -uzabbix -pzabbix|grep alive|wc -l
UserParameter=mysql.version,/usr/bin/mysql -uzabbix -pzabbix -e "select version();"|awk 'END {print}'


5、重启agent进程

 sudo /etc/init.d/zabbix-agent restart


6、链接模板

zabbix使用自带模板监控Mysql_第1张图片


文章参考:

http://blog.csdn.net/yabingshi_tech/article/details/50682072