点击蓝字 关注我们

监控指标:
实例状态
连接数
流量
增删改查
缓冲池大小与利用率
1、编写监控数据采集脚本
cat /etc/my.cnf #创建一个普通用户用于免交互
[mysql]
host=192.168.0.14
user=wp
password=MyNewPass4!
[mysqladmin]
host=192.168.0.14
user=wp
password=MyNewPass4!
[mysqld]
user = mysql
port = 3306
datadir = /var/lib/mysql
socket = /var/lib/mysql/mysql.sock
bind-address = 0.0.0.0
pid-file = /var/run/mysqld/mysqld.pid
character-set-server = utf8
collation-server = utf8_general_ci
log-error = /var/log/mysqld.log
max_connections = 10240
open_files_limit = 65535
innodb_buffer_pool_size = 1G
innodb_flush_log_at_trx_commit = 2
innodb_log_file_size = 256M
innodb_flush_method = O_DIRECT
interactive_timeout = 1800
wait_timeout = 1800
slave-parallel-type = LOGICAL_CLOCK
slave-parallel-workers = 8
master-info-repository = TABLE
relay-log-info-repository = TABLE
测试:
echo “show variables where Variable_name='max_connections';” \|mysql -N \|awk '{print $2}'
监控数据采集脚本:
cat userparameter_mysql.conf
连接数
UserParameter=mysql.max_connections,echo “show variables where Variable_name='max_connections';” \| mysql -N \| awk '{print $2}'
UserParameter=mysql.current_connections,echo “show global status where Variable_name='Threads_connected';” \| mysql -N \| awk '{print $2}'
缓冲池
UserParameter=mysql.buffer_pool_size,echo “show variables where Variable_name='innodb_buffer_pool_size';” \| 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';” \| mysql -N \| awk '{a[NR]=$2}END{printf “%.1f”,100-((a[1]/a[2])*100)}'
增删改查
UserParameter=mysql.status[*],echo “show global status where Variable_name='$1';” \| mysql -N \| awk '{print $$2}'
实例状态
UserParameter=mysql.ping,mysqladmin ping \| grep -c alive
UserParameter=mysql.version,mysql -V
mv userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/
systemctl restart zabbix-agent
在zabbix server测试是否能获取到值
/usr/local/zabbix/bin/zabbix_get -s 192.168.0.14 -p 10050 -k “mysql.status[ status[Com_select]”
2、创建模板
测试主机关联zabbix自带模板:

3、将运行MySQL的主机关联模板
删除之前模板,导入做好的模板mysql_templates:




4、监控mysql主从同步
(1)在Zabbix Agent端/data/sh目录创建Shell脚本:mysql_ab_check.sh,写入如下代码:
!/bin/bash
/usr/local/mysql/bin/mysql -uroot -e 'show slave status\G' \|grep -E “Slave_IO_Running\|Slave_SQL_Running”\|awk '{print $2}'\|grep -c Yes
(2)在客户端Zabbix_agentd.conf配置文件中加入如下代码:
UserParameter=mysql.replication,sh /data/sh/mysql_ab_check.sh
(3) Zabbix服务器端获取监控数据,如果返回值为2,则证明丛库I/O、SQL线程均为YES,表示主从同步成功:
/usr/local/zabbix/bin/zabbix_get -s 192.168.149.129 -k mysql.replication
(4) Zabbix WEB平台,在192.168.149.129 hosts中创建item监控项,如图13-24(a)、13-24(b)所示,单击右上角create item,Key填写Zabbix Agentd配置文件中的mysql.replication即可:


MYSQL主从监控项创建Graph图像,如图所示:


MYSQL主从监控项创建触发器,如图所示,MYSQL主从状态监控,设置触发器条件为key值不等于2即可,不等于2即表示MYSQL主从同步状态异常,匹配触发器,执行Actions:


以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章,我们,下次再见。
原文链接: https://mp.weixin.qq.com/s/ix1UL-mKRC-TX9mQlXXGPQ