zabbix4.2配置监控MySQL

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.导入预制模板进行监控

 

posted @ 2019-09-23 15:45  802.11  阅读(5819)  评论(0编辑  收藏  举报