zabbix监控mysql

今天来看看zabbix如何监控mysql性能,这边使用mysql自带的模板,可以监控如下内容:OPS(增删改查)、mysql请求流量带宽,mysql响应流量带宽,如果没有则要去zabbix官方下载 url:https://zabbix.org/mw/images/d/d4/Template_App_MySQL-2.2.0.xml最后会附上相应的监控图!

准备工作

在iptables中添加10050和10051端口,并重启防火墙

-A INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT

如果是编译安装的mysql,在连接mysql的时候可能会跟mysql.sock的路径,因为mysql在启动的时候默认会在/var/lib/mysql/处寻找,所以我们要将mysql.sock文件连接到此处
ln -s /data/mysql_db/mysql.sock /var/lib/mysql/                          #/data/mysql_db/mysql.sock为我自定义的路径

在安装zabbix_agentd的时候,我们需要将zabbix_agentd.conf连接到/usr/local/etc/目录,这一步特别重要,这决定了你是否能获取mysql key
ln -s /usr/local/zabbix/conf/zabbix_agentd.conf /usr/local/etc/

1、编写check_mysql.sh脚本

用于获取mysql性能指标数据,你需要修改相应的数据库信息

mkdir /usr/local/zabbix/etc/

# vim /usr/local/zabbix/etc/chk_mysql.sh

#!/bin/bash

# 用户名
MYSQL_USER='zabbix'

# 密码
MYSQL_PWD='123456'

# 主机地址/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

赋予执行权限

chmod +x /usr/local/zabbix/etc/chk_mysql.sh


2、修改zabbix_agentd.conf

增加自定义key,在最后一行增加如下:
# 获取mysql版本
UserParameter=mysql.version,mysql -h"127.0.0.1" -uzabbix -p123456 -e "select version();"|awk 'END {print}'
# 获取mysql性能指标,这个是上面定义好的脚本
UserParameter=mysql.status[*],/usr/local/zabbix/etc/chk_mysql.sh $1
# 获取mysql运行状态
UserParameter=mysql.ping,mysqladmin -uzabbix -p123456 -P3306 -h127.0.0.1  ping | grep -c alive


备注:请注意修改你的数据库信息,以及zabbix路径信息
3、重启zabbix

# killall zabbix-agentd
# /usr/local/zabbix/sbin/zabbix_agentd
或者
# service zabbix_agentd restart


4、测试

在zabbix server中执行以下命令,看能否获取到值

cd /usr/local/zabbix/bin

./zabbix_get -s "zabbix_agentd IP" -p 10050 -k mysql.version
5.5.45-log

./zabbix_get -s "zabbix_agentd IP" -p 10050 -k mysql.ping
1

./zabbix_get -s "zabbix_agentd IP" -p 10050 -k mysql.status[Uptime]
169725

./zabbix_get -s "zabbix_agentd IP" -p 10050 -k mysql.status[Com_update]
994470


5、Link MySQL模板

模板是zabbix系统提供的,进入zabbix web后台,configuration-->hosts-->点击你的主机name-->选择template选项卡,选择模板“Template App MySQL”,最后点击update即可


6、数据查看

如果配置没有异常,那么可以在graph中查看到2张监控图,分别为请求流量带宽、响应流量带宽、ops,点击monitoring-->graphs-->选择你的主机,分别选择Graph“MySQL bandwidth”、“MySQL operations”,监控图分别如下:
mysql



7、常见错误解决思路

如果发现监控没有数据,请排查如下问题

1. zabbix客户端是否重启

2. 脚本是否有执行权限

3. 数据库是否有权限

4. 环境变量是否有问题

5. 请看zabbix item列,鼠标移至红色叉上,有错误提示。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值