zabbix官方支持监控MySQL,但直接使用默认的模板是不可用的,需要经过额外的设置才可以使用。如果只需要对mysql数据库做简单的监控,zabbix自带的模板完全能够满足要求
下面是用zabbix自带的模板监控mysql的步骤。
环境:zabbix4.0 ubuntu16.04 LTS mysql 5.5
1、在相关主机中添加mysql的监控模板。模板名称:Template DB MySQL。
2、配置mysql的客户端,创建一个用户来获取mysql的相关数据
# 设置数据库编码 CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
# 创建一个新的MySQL数据库zabbix,将存储收集的数据 # 用户名zabbix,密码123456 GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@'%' IDENTIFIED BY '123456'; # 刷新权限 FLUSH PRIVILEGES;
3、设置完帐户之后在被监控端新建/etc/zabbix/.my.cnf文件,以提供Zabbix Agent访问数据库,内容类似如下:
# vim /etc/zabbix/ .my.cnf [mysql] host=localhost user=zabbix password=123456 socket=/data/mysql/mysql.sock [mysqladmin] host=localhost user=zabbix password=123456 socket=/data/mysql/mysql.sock # mysql.sock文件通过find / -name mysql.sock找出路径
4.修改agent配置文件
# vi /etc/zabbix/zabbix_agentd.conf # 修改 server为服务器ip # 修改hostname为服务器设置的hostname # 修改serveractive 为服务器ip:port
5、修改/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf(没有的话就创建),这个文件用于制定Zabbix Agent如何获取MySQL数据,我们需要将所有的/var/lib/zabbix修改为当前.my.cnf文件的路径/etc/zabbix。设置完 成之后保存并重启Zabbix Agent
# 新建userparameter_mysql.conf文件 vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
#修改文件后内容如下 UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema="$1"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name="$2"");" | HOME=/var/lib/zabbix mysql -N' UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive UserParameter=mysql.version,mysql -V # 重启agent服务 systemctl restart zabbix-agent
6、配置完成
主机配置界面
最新数据展示界面