简述
zabbix版本: 4.0.1
MySQL版本:10.2.14-MariaDB
系统版本: CentOS Linux release 7.2.1511 (Core)
zabbix自带MySQL的监控模板,利用sql查询语句,提供一些简单的MySQL状态监控,如下图:
MySQL模板监控项
需要另外的监控功能可以在模板基础上进行修改。
准备工作
- 新建zabbix的监控用户
新建监控用户,并赋予部分权限grant usage, process, replication client on *.* to 'zabbix'@'localhost' identified by '******'; flush privileges;
- 新建
.my.cnf
文件
找一个目录存放.my.cnf
文件,我是放在/etc/zabbix
下
mysql的sock位置,从MySQL的配置文件中找:[root@localhost ~]# cat /etc/my.cnf|grep sock socket=/var/lib/mysql/mysql.sock
# Zabbix Agent [mysql] host=localhost user=zabbix password='******' socket=/var/lib/mysql/mysql.sock [mysqladmin] host=localhost user=zabbix password='******' socket=/var/lib/mysql/mysql.sock
- 修改
zabbix_agent
的配置文件
安装zabbix4有个默认的MySQL模板文件位于/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
将其中的HOME=
后面的目录改为前面存放.my.cnf
的目录
修改内容
替换命令sed -i 's#HOME=/var/lib/zabbix#HOME=/etc/zabbix#g' /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
运行其中的命令,看是否能正确运行[root@localhost zabbix]# cat zabbix_agentd.d/userparameter_mysql.conf |grep -v "^#" |grep -v "^$" UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/etc/zabbix mysql -N | awk '{print $$2}' 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=/etc/zabbix mysql -N' UserParameter=mysql.ping,HOME=/etc/zabbix mysqladmin ping | grep -c alive UserParameter=mysql.version,mysql -V
然后这里有个坑,默认的[root@localhost zabbix]# HOME=/etc/zabbix mysqladmin ping | grep -c alive 1
zabbix_agentd.conf
是没有把/etc/zabbix/zabbix_agentd.d
包含进来的。
包含的配置目录
需要在下方加上包含目录,否则会在服务端提示不支持的key
添加包含目录
重启并检验
重启zabbix客户端
[root@localhost zabbix]# systemctl restart zabbix-agent
在服务端用zabbix_get
从客户端获取信息
[root@localhost zabbix]# zabbix_get -s 10.22.22.22 -p 10050 -k mysql.ping
1
在web端,监测-最新数据查看最新数据
网友评论