1.在被监控主机安装好MySQL
相关步骤省略。
2.创建监控所需要的MySQL账户(MySQL服务器端)
MariaDB [(none)]>grant usage on *.* to zabbix@192.168.10.100 identified by '123456'; MariaDB [(none)]>flush privileges;
3.修改MySQL服务器主机配置文件(my.cnf)
[root@ansible-control etc]# vim my.cnf
[mysql] host=192.168.10.100 #IP地址为MySQL服务器端地址 user=zabbix password=123456 [mysqladmin] host=192.168.10.100 user=zabbix password=123456
4.zabbix服务器端验证zabbix代理服务端是否正常返回数据
如果可以正常返回数字信息,则说明服务器端可以正确获取客户端信息。
[root@zabbix-server-center /]# zabbix_get -s 192.168.10.100 -p 10050 -k "mysql.status[Uptime]" 11027
5.添加MySQL监控脚本
注意监控脚本都必须放在/etc/zabbix/zabbix_agentd.d目录(存放配置文件的目录)中,因为在zabbix-agent配置文件中已经规定了,除非人为更改:
【监控脚本】
[root@ansible-control zabbix_agentd.d]# 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
6.重启zabbix-agent客户端
[root@ansible-control zabbix]# systemctl restart zabbix-agent.service
7.使用系统自带Template DB MySQL模板进行监控
8.查看监控图形
(1)MySQL bandwidth
(2)MySQL operations
9.导入预制模板进行监控