共计 3753 个字符,预计需要花费 10 分钟才能阅读完成。
1 前言
Zabbix 对于 MySQL 的监控官方教程好像还没有给出明确的配置方法,以下是我参阅一些资料整理出来的配置方法,现与各位博友分享。
2 理论部分
2.1 Key 值的获取原理
2.1.1 Zabbix Server 部分的 Key 定义
查看模板的 Items
模板定义的 Items 如下:
以 Items“MySQL uptime”为例 Key 的内容如下:
可见,关键部分是 Key 值 mysql.status[Uptime]相当于变量名称
2.1.2 Zabbix Agens 部分的 Key 传参定义
1)传参数的定义文件
1 | less /etc/zabbix/zabbix_agentd .d /userparameter_mysql .conf |
2)传参的定义格式
可发现如下行:
1 | UserParameter=mysql.status[*], echo "show global status where Variable_name='$1';" | HOME= /var/lib/zabbix mysql -N | awk '{print $$2}' |
定义以逗号分隔,可简化如下:
1 | 用户自定义参数名称, 用户自定义参数取值(shell 命令) |
注意:
用户自定义参数名称:“*”代表 Zabbix Server 可传入任何具体的变量参数
用户自定义参数取值:“$1”代表 Zabbix Server 可传入的变量参数
3)如传入参数为“Uptime”则变为
1 | UserParameter=mysql.status[Uptime], echo "show global status where Variable_name='Uptime';" | HOME= /var/lib/zabbix mysql -N | awk '{print $$2}' |
4)用户自定义参数取值部分 Shell 指定可取得具体的数值(需先数据库授权和连接数据库授权配置)
所以指定结果是:
1 | UserParameter=mysql.status[Uptime],165538 |
就这样,MySQL 的值被送到 Zabbix Server
3 实践部分
3.1 环境描述
Zabbix Server:
ipaddress=10.168.0.160
hostname=zabbix
Zabbix Agens:
ipaddress=10.168.0.99
hostname=mysqlSer
app=mysqld
Zabbix Server&Agens 端的配置请参阅:http://www.linuxidc.com/Linux/2016-06/132624.htm
3.2 使用户自定义参数生效
In Zabbix Agens:
vim 编辑 /etc/zabbix/zabbix_agentd.conf 开启以下两个参数
1 2 | Include= /etc/zabbix/zabbix_agentd .d/ UnsafeUserParameters=0 |
注:完成以上配置“userparameter_mysql.conf”里面的定义才生效
3.3 授予 Zabbix Agens 数据访问权限
In Zabbix Server:
MySQL 权限配置
1 2 3 4 | mysql -uroot -p GRANT SELECT ON mysql.* TO 'zabbix' @ 'localhost' IDENTIFIED BY 'zabbix' ; flush privileges; show grants for zabbix@localhost; |
3.4 配置 Zabbix Agens 数据库访问权限
In Zabbix Agens:
3.4.1 确定数据库连接文件的目录
用如下命令查看 ”HOME” 目录所定义路径
1 | cat /etc/zabbix/zabbix_agentd .d /userparameter_mysql .conf | egrep - v "(^#|^$)" | grep HOME |
显示如下:
1 2 3 | UserParameter=mysql.status[*], echo "show global status where Variable_name='$1';" | HOME= /var/lib/zabbix mysql -N | awk '{print $$2}' UserParameter=mysql.size[*], 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 |
注:以上表明数据库连接文件应当配置在“/var/lib/zabbix”
3.4.2 确定 MySQL 的 PID 文件路径
用如下命令查看 MySQL 的 PID 文件的路径
1 | grep pid- file /etc/my .cnf |
显示如下:
1 | pid- file = /var/run/mysqld/mysqld .pid |
3.4.3 配置数据库连接文件
根据前面获取到的路径创建数据库连接文件
vim 编辑 /var/lib/zabbix/.my.cnf 输入如下内容:
1 2 3 4 5 6 7 8 9 10 | [mysql] host = localhost user = zabbix password = zabbix socket = /var/lib/mysql/mysql .sock [mysqladmin] host = localhost user = zabbix password = zabbix socket = /var/lib/mysql/mysql .sock |
3.5 重启并使配置生效
In Zabbix Agens:
重启 Agent 服务
1 | /etc/init .d /zabbix-agent restart |
3.6 命令行确认自定义 KEY
In Zabbix Agens:
1 | echo "show global status where Variable_name='Uptime';" | HOME= /var/lib/zabbix mysql -N | awk '{print $2}' |
In Zabbix Server:
1 2 | zabbix_get -s 10.168.0.99 -k mysql.status[Uptime] zabbix_get -s 10.168.0.99 -k mysql.version |
3.7 添加主机的监控模板
In Zabbix 的 web 控制台
Configuration->Hosts-> 单击“主机名称”->Templates->Select->Template App MySQL->Add->Update
3.8 确认监控结果
Monitoring->Graphs
Host 选择具体的“主机名称”
Graph 选择“MySQL bandwidth”或“MySQL operations”查看监控的图像
一些 Zabbix 相关教程集合:
Ubuntu 14.04 下 Zabbix2.4.5 源码编译安装 http://www.linuxidc.com/Linux/2015-05/117657.htm
安装部署分布式监控系统 Zabbix 2.06 http://www.linuxidc.com/Linux/2013-07/86942.htm
《安装部署分布式监控系统 Zabbix 2.06》http://www.linuxidc.com/Linux/2013-07/86942.htm
CentOS 6.3 下 Zabbix 安装部署 http://www.linuxidc.com/Linux/2013-05/83786.htm
Zabbix 分布式监控系统实践 http://www.linuxidc.com/Linux/2013-06/85758.htm
CentOS 6.3 下 Zabbix 监控 apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm
CentOS 6.3 下 Zabbix 监控 MySQL 数据库参数 http://www.linuxidc.com/Linux/2013-05/84800.htm
64 位 CentOS 6.2 下安装 Zabbix 2.0.6 http://www.linuxidc.com/Linux/2014-11/109541.htm
ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-06/132623.htm