1、利用自带mysql模板监控(监控进程、状态、版本)
1.1、客户端创建用于查询数据的账户
以管理员的身份登陆数据库
GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
flush privileges;
show grants for zabbix@'localhost';
![f261479291341387e50337850850f9c0.png](https://i-blog.csdnimg.cn/blog_migrate/154bae4e8cbe0f2ab7c827570e59f703.jpeg)
测试是否创建成功:
mysql -uzabbix -pzabbix
![ca6237326cf56678a62b346444d0a5ee.png](https://i-blog.csdnimg.cn/blog_migrate/b1c8876b7baa3cf90dab80a12f0af9a3.jpeg)
1.2、创建相关文件
mkdir -p /var/lib/mysql/
ln -s /tmp/mysql.sock /var/lib/mysql/
ln -s /usr/local/zabbix/conf/zabbix_agentd.conf /usr/local/etc/
ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin
1.3、配置监控脚本,获取数据
mkdir /usr/local/zabbix/etc/
cd /usr/local/zabbix/etc/
vim chk_mysql.sh
#!/bin/bash
# 用户名
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
chmod +x /usr/local/zabbix/etc/chk_mysql.sh
1.4、修改zabbix_agentd.conf
vi /etc/zabbix/zabbix_agentd.conf
增加自定义key,在最后一行增加如下:
# 获取mysql版本
UserParameter=mysql.version,mysql -h"127.0.0.1" -uzabbix -pzabbix -e "select version();"|awk 'END {print}'
# 获取mysql性能指标,这个是上面定义好的脚本
UserParameter=mysql.status[*],/usr/local/zabbix/etc/chk_mysql.sh $1 2>>/dev/null
#mysql进程状态
UserParameter=mysql.process,ps -ef|grep mysql|grep -v grep|wc -l
1.5、重启zabbix_agentd
killall zabbix_agentd
service zabbix_agentd restart
1.6、zabbix_server端操作, 看能否获取到值
cd /usr/local/zabbix/bin
./zabbix_get -s 192.168.0.14 -p 10050 -k mysql.ping
./zabbix_get -s 192.168.0.14 -p 10050 -k mysql.status[Uptime]
./zabbix_get -s 192.168.0.14 -p 10050 -k mysql.status[Com_update]
1.7、zabbix_server端web界面操作,添加mysql模板
![27411c60fd090ef8572bac11fa0d0514.png](https://i-blog.csdnimg.cn/blog_migrate/93f627cb692dc0649c40518aa9845cac.jpeg)
![723b77cf892f5bcfad4100faa64f14c6.png](https://i-blog.csdnimg.cn/blog_migrate/bb64414f09557c253e4f37aa521feb04.jpeg)
1.8、查看监控到的数据图
![2964cc9ae6f46372a6d306026f8fdae1.png](https://i-blog.csdnimg.cn/blog_migrate/5deeb55e0193476de76a02a432abcd5f.jpeg)
2、利用自带mysql模板监控,方法二
2.1、添加mysql环境变量
vim /etc/profile
PATH=$PATH:/usr/local/mysql/bin
soure /etc/profile
2.2、创建my.cnf配置文件
cd /usr/local/zabbix/ #zabbix安装目录创建隐藏文件
vi ./my.cnf
[mysql]
host=localhost
user=zabbix
password=zabbix
[mysqladmin]
host=127.0.0.1
user=zabbix
password=zabbix
mv my.cnf .my.cnf
2.3、客户端创建用于查询数据的账户
以管理员的身份登陆数据库
GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
flush privileges;
show grants for zabbix@'localhost';
![f261479291341387e50337850850f9c0.png](https://i-blog.csdnimg.cn/blog_migrate/154bae4e8cbe0f2ab7c827570e59f703.jpeg)
测试是否创建成功:
mysql -uzabbix -pzabbix
![ca6237326cf56678a62b346444d0a5ee.png](https://i-blog.csdnimg.cn/blog_migrate/b1c8876b7baa3cf90dab80a12f0af9a3.jpeg)
2.4、创建检查脚本
cd /etc/zabbix/zabbix_agentd.conf.d
上传配置文件或编辑: 注:标颜色方法一已经有了并注释
cat userparameter_mysql.conf
# 连接数
UserParameter=mysql.max_conn[*],echo "show variables where Variable_name='max_connections';" | HOME=/usr/local/zabbix mysql -N | awk '{print $$2}'
UserParameter=mysql.conn_status[*],echo "show global status where Variable_name='$1';" | HOME=/usr/local/zabbix mysql -N | awk '{print $$2}'
# 缓冲池
UserParameter=mysql.buffer_pool_size[*],echo "show variables where Variable_name='innodb_buffer_pool_size';" | HOME=/usr/local/zabbix mysql -N | awk '{printf "%.2f",$$2/1024/1024/1024}'
UserParameter=mysql.buffer_pool_usage_percent[*],echo "show global status where Variable_name='Innodb_buffer_pool_pages_free' or Variable_name='Innodb_buffer_pool_pages_total';" | HOME=/usr/local/zabbix mysql -N | awk '{a[NR]=$$2}END{printf "%.1f",100-((a[1]/a[2])*100)}'
UserParameter=mysql.buffer_pool_hit_rate[*],echo "show global status where Variable_name='Innodb_buffer_pool_read_requests' or Variable_name='Innodb_buffer_pool_reads';" | HOME=/usr/local/zabbix mysql -N | awk '{a[NR]=$$2}END{printf "%.1f",a[1]/(a[1]+a[2])*100}'
# 增删改查
#UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/usr/local/zabbix mysql -N | awk '{print $$2}'
# 数据库大小
UserParameter=mysql.size[*],echo "select round(sum(index_length+data_length)/1024/1024,2) from information_schema.tables where table_schema='$1'" | HOME=/usr/local/zabbix mysql -N
# 实例状态
UserParameter=mysql.ping,HOME=/usr/local/zabbix mysqladmin ping | grep -c alive
#UserParameter=mysql.version,mysql –V
2.5、测试脚本
echo "show variables where Variable_name='max_connections';" | HOME=/usr/local/zabbix mysql -N | awk '{print $2}'
![f8b9fc74065538046fb027fc16cca3b8.png](https://i-blog.csdnimg.cn/blog_migrate/111812a3b630caf519c605a65061df3d.jpeg)
2.6、修改配置文件加载脚本
vim /etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.conf.d
2.7、重启zabbix_agentd
killall zabbix_agentd
service zabbix_agentd restart
2.8、自定义监控项
配置--模板—监控项
![307c0f1450c11431f003dfff3d6c2894.png](https://i-blog.csdnimg.cn/blog_migrate/7b61d69c9748c067c800648932f7a07a.jpeg)
监控项:MySQL max connections key: mysql.max_conn[*]
![a36d2cee3fb363d2c19148b80b7b2ea9.png](https://i-blog.csdnimg.cn/blog_migrate/59024de84f37b58638ddcfe5937fa010.jpeg)
监控项: connections key: mysql.conn_status[Threads_connected]
show status like '%Thread%'; 在mysql里面查名字
![5df4637bbeb607b4520065a55a4e5ff7.png](https://i-blog.csdnimg.cn/blog_migrate/bafa727557e7d37e79ca451d7b88e261.jpeg)
![a9785cd9a1185c9c94361dcd60f60f3c.png](https://i-blog.csdnimg.cn/blog_migrate/24d388c379ca194fe38bf3b7c6c8951f.jpeg)
监控项: buffer pool key: mysql.buffer_pool_size[*]
![7fe441a84a7128cbc3953dcf51005b80.png](https://i-blog.csdnimg.cn/blog_migrate/236aa68688467662cb33f88cbdf81f00.jpeg)
监控项:MySQL buffer_pool_usage_percent key: mysql.buffer_pool_usage_percent[*]
![8f9891dd220489203e42a83796c2be07.png](https://i-blog.csdnimg.cn/blog_migrate/88e3362b21b1029eaa724ad135cac898.jpeg)
监控项:MySQL buffer_pool_hit_rate key: mysql.buffer_pool_hit_rate[*]
![cf8f6a97854f3732d598f399f5c77fc9.png](https://i-blog.csdnimg.cn/blog_migrate/28b63eb47915a01b04b118936097694f.jpeg)
监控项:MySQL database size key: mysql.size[mysql] #mysql是监控库名
![58c962d6057bc4ca3a5474eac58561ef.png](https://i-blog.csdnimg.cn/blog_migrate/8d7df71506fbf8e4de421a1566ed21ed.jpeg)
监控项:MySQL process key: mysql.process #mysql是监控库名
![a00b868d8611fd18913d57cb2f65735f.png](https://i-blog.csdnimg.cn/blog_migrate/2220469b8a18e6ceb6d9e4da82462f75.jpeg)
2.9、添加图形展示
![a117b0a11640249b349f34f23257acf6.png](https://i-blog.csdnimg.cn/blog_migrate/dad1d811e85da5f96afe25b6f5b85dfd.jpeg)
MySQL connections
![ea54167614779d08deeb6c32143f0e6c.png](https://i-blog.csdnimg.cn/blog_migrate/ec4bb6e52dc231a019e7d2c2c1fff13a.jpeg)
![1c8040f4f8924d14727a2ed9ef4f7f95.png](https://i-blog.csdnimg.cn/blog_migrate/c69cfb28501e584b61dc3861dd13ee39.jpeg)
MySQL buffer_pool_usage_percent
![3fbc0aa864fd675f782ac2367e6735e7.png](https://i-blog.csdnimg.cn/blog_migrate/8f502cf49b89ce992ec8fb950c0d2023.jpeg)
![2424025f60b31d03f67582c0f4c4d19e.png](https://i-blog.csdnimg.cn/blog_migrate/2aa4277ccb6f56b36570c92757179cfb.jpeg)