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,密码123456GRANT 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、配置完成
主机配置界面
最新数据展示界面