cant connect local mysql to_Zabbix监控mysql

1、利用自带mysql模板监控(监控进程、状态、版本)

1.1、客户端创建用于查询数据的账户

以管理员的身份登陆数据库

GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';

flush privileges;

show grants for zabbix@'localhost';

f261479291341387e50337850850f9c0.png

测试是否创建成功:

mysql -uzabbix -pzabbix

ca6237326cf56678a62b346444d0a5ee.png

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
723b77cf892f5bcfad4100faa64f14c6.png

1.8、查看监控到的数据图

2964cc9ae6f46372a6d306026f8fdae1.png

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

测试是否创建成功:

mysql -uzabbix -pzabbix

ca6237326cf56678a62b346444d0a5ee.png

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

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

监控项:MySQL max connections key: mysql.max_conn[*]

a36d2cee3fb363d2c19148b80b7b2ea9.png

监控项: connections key: mysql.conn_status[Threads_connected]

show status like '%Thread%'; 在mysql里面查名字

5df4637bbeb607b4520065a55a4e5ff7.png
a9785cd9a1185c9c94361dcd60f60f3c.png

监控项: buffer pool key: mysql.buffer_pool_size[*]

7fe441a84a7128cbc3953dcf51005b80.png

监控项:MySQL buffer_pool_usage_percent key: mysql.buffer_pool_usage_percent[*]

8f9891dd220489203e42a83796c2be07.png

监控项:MySQL buffer_pool_hit_rate key: mysql.buffer_pool_hit_rate[*]

cf8f6a97854f3732d598f399f5c77fc9.png

监控项:MySQL database size key: mysql.size[mysql] #mysql是监控库名

58c962d6057bc4ca3a5474eac58561ef.png

监控项:MySQL process key: mysql.process #mysql是监控库名

a00b868d8611fd18913d57cb2f65735f.png

2.9、添加图形展示

a117b0a11640249b349f34f23257acf6.png

MySQL connections

ea54167614779d08deeb6c32143f0e6c.png
1c8040f4f8924d14727a2ed9ef4f7f95.png

MySQL buffer_pool_usage_percent

3fbc0aa864fd675f782ac2367e6735e7.png
2424025f60b31d03f67582c0f4c4d19e.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值