1.在被监控主机安装好MySQL
相关步骤省略。
2.创建监控所需要的MySQL账户(MySQL服务器端)
1
2
|
MariaDB [(none)]>grant usage on *.* to zabbix@192.168.10.100 identified by ‘123456‘ ; MariaDB [(none)]>flush privileges; |
3.修改MySQL服务器主机配置文件(my.cnf)
1
|
[root@ansible-control etc] # vim my.cnf |
1
2
3
4
5
6
7
8
9
|
[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代理服务端是否正常返回数据
如果可以正常返回数字信息,则说明服务器端可以正确获取客户端信息。
1
2
|
[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配置文件中已经规定了,除非人为更改:
1
2
3
4
5
6
7
8
9
10
11
12
|
【监控脚本】<br>[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客户端
1
|
[root@ansible-control zabbix] # systemctl restart zabbix-agent.service |
7.使用系统自带Template DB MySQL模板进行监控
8.查看监控图形
(1)MySQL bandwidth
(2)MySQL operations
9.导入预制模板进行监控