阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Zabbix实战企业监控之MySQL监控

133次阅读
没有评论

共计 3753 个字符,预计需要花费 10 分钟才能阅读完成。

1 前言

Zabbix 对于 MySQL 的监控官方教程好像还没有给出明确的配置方法,以下是我参阅一些资料整理出来的配置方法,现与各位博友分享。

2 理论部分

2.1 Key 值的获取原理

2.1.1 Zabbix Server 部分的 Key 定义

查看模板的 Items

 

Zabbix 实战企业监控之 MySQL 监控

模板定义的 Items 如下:

Zabbix 实战企业监控之 MySQL 监控

以 Items“MySQL uptime”为例 Key 的内容如下:

Zabbix 实战企业监控之 MySQL 监控

可见,关键部分是 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 指定可取得具体的数值(需先数据库授权和连接数据库授权配置)

Zabbix 实战企业监控之 MySQL 监控

所以指定结果是:

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 实战企业监控之 MySQL 监控

一些 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

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计3753字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中