Zabbix实战企业监控之MySQL监控

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

1 前言

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

2 理论部分

2.1 Key值的获取原理

2.1.1 Zabbix Server部分的Key定义

查看模板的Items


wKioL1diGs6CZsUIAAESwF6-jv8018.png

模板定义的Items如下:

wKiom1diGdnTSxQKAAJCU__jlZU886.png

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

wKioL1diHgfgCbsgAAFCW-AwmPI650.png

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

wKioL1diI4zh0eO1AAAV9pnUAKc185.png

所以指定结果是:

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://cmdschool.blog.51cto.com/2420395/1723530

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”查看监控的图像

wKiom1diL8DRrJDBAAHF92B_BPE225.png










本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1786611,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
MySQL索引策略与查询性能调优实战
在实际应用中,需要根据具体的业务需求和查询模式,综合运用索引策略和查询性能调优方法,不断地测试和优化,以提高MySQL数据库的查询性能。
439 66
MySQL在企业内部应用场景有哪些
【10月更文挑战第17天】MySQL在企业内部应用场景有哪些
274 0
如何根据监控结果调整 MySQL 数据库的参数以提高性能?
【10月更文挑战第28天】根据MySQL数据库的监控结果来调整参数以提高性能,需要综合考虑多个方面的因素
186 1
如何监控和诊断 MySQL 数据库的性能问题?
【10月更文挑战第28天】监控和诊断MySQL数据库的性能问题是确保数据库高效稳定运行的关键
695 1
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
859 1
MySQL与Redis协同作战:优化百万数据查询的实战经验
【10月更文挑战第13天】 在处理大规模数据集时,传统的关系型数据库如MySQL可能会遇到性能瓶颈。为了提升数据处理的效率,我们可以结合使用MySQL和Redis,利用两者的优势来优化数据查询。本文将分享一次实战经验,探讨如何通过MySQL与Redis的协同工作来优化百万级数据统计。
320 5
MySQL最左前缀优化原则:深入解析与实战应用
【10月更文挑战第12天】在数据库架构设计与优化中,索引的使用是提升查询性能的关键手段之一。其中,MySQL的最左前缀优化原则(Leftmost Prefix Principle)是复合索引(Composite Index)应用中的核心策略。作为资深架构师,深入理解并掌握这一原则,对于平衡数据库性能与维护成本至关重要。本文将详细解读最左前缀优化原则的功能特点、业务场景、优缺点、底层原理,并通过Java示例展示其实现方式。
276 1
七载耕耘,全面盘点:Zabbix实战文章精华大全分享
在数字化转型的推动下,IT监控系统的重要性日益凸显。Zabbix作为开源监控领域的佼佼者,以其卓越的功能集成和灵活性赢得了全球企业的青睐。乐维社区由一群热爱技术的运维人员于七年前创立,现已成为国内最大的开源专业社区之一,汇聚了众多Zabbix用户的智慧与经验。社区提供了从基础安装到高级优化的全方位实战指导,并整理了“Zabbix实战文章精华大全”,涵盖基础知识、安全配置、性能优化等内容,为广大用户提供系统化的学习资源。欢迎下载使用,共同成长。
83 1
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
673 0
|
7月前
|
Zabbix 5.0 LTS的agent服务部署实战篇
文章介绍了如何在CentOS 7.6操作系统上部署Zabbix 5.0 LTS版本的agent服务,包括配置软件源、安装agent、修改配置文件、启动服务,并在Zabbix web界面添加监控。
227 4
Zabbix 5.0 LTS的agent服务部署实战篇

热门文章

最新文章

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等