Skip to content

MySQL 企业监控 ​

核心功能 ​

实时监控 ​

性能监控 ​

  • 查询性能:监控QPS、TPS、慢查询等
  • 资源使用:监控CPU、内存、磁盘I/O等
  • 连接管理:监控连接数、连接状态等
  • 缓冲区使用:监控InnoDB缓冲池、键缓冲区等
  • 锁等待:监控锁等待时间和次数

可用性监控 ​

  • 实例状态:监控MySQL实例的运行状态
  • 复制状态:监控主从复制状态和延迟
  • 集群状态:监控MySQL Group Replication等集群状态
  • 服务可用性:监控MySQL服务的可用性

安全监控 ​

  • 权限管理:监控用户权限变更
  • 安全漏洞:监控已知安全漏洞
  • 审计日志:监控审计日志中的安全事件
  • 合规性:监控合规性要求的满足情况

智能预警 ​

预警规则 ​

  • 内置规则:提供数百个内置预警规则
  • 自定义规则:支持用户自定义预警规则
  • 预警级别:严重、警告、信息等不同级别
  • 预警通知:支持邮件、短信等多种通知方式

预警管理 ​

  • 预警历史:记录历史预警信息
  • 预警聚合:聚合相关预警,避免预警风暴
  • 预警抑制:在维护期间抑制预警
  • 预警升级:支持预警升级机制

性能顾问 ​

性能分析 ​

  • 查询分析:分析慢查询和高频查询
  • 执行计划分析:分析查询执行计划
  • 索引建议:提供索引优化建议
  • 配置建议:提供MySQL配置优化建议

优化建议 ​

  • 内存配置:优化内存相关参数
  • I/O配置:优化磁盘I/O相关参数
  • 连接配置:优化连接相关参数
  • 查询优化:提供SQL语句优化建议

安全审计 ​

安全漏洞扫描 ​

  • CVE监控:监控已知的MySQL CVE漏洞
  • 安全补丁管理:跟踪安全补丁的应用情况
  • 漏洞评估:评估MySQL实例的安全漏洞

合规性监控 ​

  • 权限审计:审计用户权限变更
  • 访问控制:监控访问控制策略的执行情况
  • 数据加密:监控数据加密的使用情况
  • 合规报告:生成合规性报告

历史数据分析 ​

性能趋势 ​

  • 长期存储:长期存储性能数据
  • 趋势分析:分析性能变化趋势
  • 容量规划:基于历史数据进行容量规划
  • 基准比较:比较不同时期的性能基准

报表生成 ​

  • 预定义报表:提供多种预定义报表
  • 自定义报表:支持用户自定义报表
  • 定时报表:支持定时生成和发送报表
  • 导出功能:支持导出报表为PDF、CSV等格式

架构与组件 ​

架构 overview ​

三层架构 ​

  • 数据收集层:Agent收集MySQL实例数据
  • 数据处理层:Monitor服务处理和分析数据
  • 展示层:Web界面展示监控结果

组件组成 ​

  • MySQL Enterprise Service Manager:核心服务,处理监控数据
  • MySQL Enterprise Monitor Agent:部署在MySQL实例所在服务器,收集数据
  • MySQL Enterprise Monitor Web Interface:Web界面,展示监控结果
  • MySQL Enterprise Repository:存储监控数据和配置

部署架构 ​

单机部署 ​

  • 适用场景:小型环境,管理少量MySQL实例
  • 部署简单:所有组件部署在同一台服务器
  • 资源要求:较低的硬件资源要求

分布式部署 ​

  • 适用场景:大型环境,管理大量MySQL实例
  • 负载均衡:多个Service Manager节点负载均衡
  • 高可用性:实现Service Manager的高可用性
  • 扩展性:支持横向扩展

混合云部署 ​

  • 本地监控:监控本地MySQL实例
  • 云监控:监控云环境中的MySQL实例
  • 统一管理:通过单一界面管理所有MySQL实例

部署与配置 ​

系统要求 ​

硬件要求 ​

  • CPU:至少4核,推荐8核以上
  • 内存:至少8GB,推荐16GB以上
  • 磁盘:至少100GB,推荐使用SSD
  • 网络:至少1Gbps网络带宽

软件要求 ​

  • 操作系统:
    • Linux:RHEL/CentOS 7.0+,Ubuntu 16.04+
    • Windows:Windows Server 2012 R2+
  • Java:OpenJDK 8或Oracle JDK 8
  • MySQL:MySQL 5.7+(用于Repository)
  • 浏览器:Chrome 60+,Firefox 55+,Safari 11+,Edge 40+

安装步骤 ​

安装MySQL Enterprise Service Manager ​

Linux安装 ​
  1. 下载MySQL Enterprise Monitor安装包
  2. 解压安装包
  3. 运行安装脚本
    bash
    ./mysqlmonitor-installer.sh
  4. 按照安装向导完成安装
Windows安装 ​
  1. 下载MySQL Enterprise Monitor安装包
  2. 运行安装程序
  3. 按照安装向导完成安装

配置MySQL Enterprise Monitor ​

  1. 访问Web界面(默认端口18443)
  2. 登录管理员账户
  3. 配置全局设置
  4. 配置预警规则
  5. 配置通知设置

部署MySQL Enterprise Monitor Agent ​

自动部署 ​
  1. 在Web界面中添加MySQL实例
  2. 选择自动部署Agent
  3. 提供目标服务器的连接信息
  4. 完成Agent部署
手动部署 ​
  1. 下载Agent安装包
  2. 在目标服务器上安装Agent
  3. 配置Agent连接到Service Manager
  4. 启动Agent服务

配置最佳实践 ​

监控配置 ​

  • 监控频率:根据MySQL实例的重要性设置不同的监控频率
  • 数据保留:根据存储容量和需求设置数据保留时间
  • 预警阈值:根据业务需求和系统特性调整预警阈值
  • 通知设置:配置合适的通知方式和级别

性能优化 ​

  • Agent配置:根据服务器性能调整Agent的采集频率
  • Service Manager配置:根据管理的实例数量调整Service Manager的资源配置
  • Repository配置:优化Repository数据库的配置
  • 网络配置:确保Agent和Service Manager之间的网络连接稳定

使用指南 ​

监控仪表板 ​

主仪表板 ​

  • 全局视图:显示所有MySQL实例的状态
  • 预警概览:显示当前的预警信息
  • 性能摘要:显示关键性能指标
  • 健康状态:显示MySQL实例的健康状态

实例仪表板 ​

  • 实例详情:显示单个MySQL实例的详细信息
  • 性能指标:显示实例的性能指标
  • 预警信息:显示实例的预警信息
  • 复制状态:显示实例的复制状态

自定义仪表板 ​

  • 创建仪表板:创建自定义的监控仪表板
  • 添加组件:添加需要的监控组件
  • 布局调整:调整仪表板的布局
  • 权限管理:设置仪表板的访问权限

预警管理 ​

预警查看 ​

  • 实时预警:查看当前活跃的预警
  • 预警历史:查看历史预警记录
  • 预警详情:查看预警的详细信息
  • 预警过滤:根据级别、类型等过滤预警

预警配置 ​

  • 启用/禁用规则:启用或禁用特定的预警规则
  • 调整阈值:调整预警规则的阈值
  • 自定义规则:创建自定义的预警规则
  • 预警通知:配置预警的通知方式

性能分析 ​

查询分析 ​

  • 慢查询分析:分析慢查询日志
  • 高频查询:分析执行频率高的查询
  • 查询计划:分析查询的执行计划
  • 查询统计:查看查询的统计信息

性能趋势 ​

  • 时间范围:选择不同的时间范围查看性能趋势
  • 指标选择:选择需要查看的性能指标
  • 趋势比较:比较不同时期的性能趋势
  • 异常检测:检测性能异常

性能顾问 ​

优化建议 ​

  • 查看建议:查看系统生成的优化建议
  • 应用建议:应用系统生成的优化建议
  • 自定义建议:创建自定义的优化建议
  • 建议历史:查看历史优化建议

配置管理 ​

  • 配置比较:比较不同实例的配置
  • 配置模板:创建和应用配置模板
  • 配置变更:记录和管理配置变更
  • 配置回滚:回滚配置变更

安全管理 ​

漏洞扫描 ​

  • 扫描设置:配置漏洞扫描设置
  • 执行扫描:执行漏洞扫描
  • 查看结果:查看漏洞扫描结果
  • 修复建议:查看漏洞修复建议

合规性管理 ​

  • 合规标准:选择适用的合规标准
  • 合规检查:执行合规性检查
  • 合规报告:生成合规性报告
  • 合规状态:监控合规性状态

复制监控 ​

复制状态 ​

  • 复制拓扑:查看复制拓扑结构
  • 复制状态:监控复制状态
  • 复制延迟:监控复制延迟
  • 复制错误:监控复制错误

复制管理 ​

  • 拓扑变更:管理复制拓扑变更
  • 故障转移:执行复制故障转移
  • 复制配置:管理复制配置
  • 复制测试:测试复制功能

集成与扩展 ​

第三方集成 ​

监控系统集成 ​

  • Nagios集成:与Nagios集成
  • Zabbix集成:与Zabbix集成
  • Prometheus集成:与Prometheus集成
  • Grafana集成:与Grafana集成

告警系统集成 ​

  • 邮件通知:配置邮件通知
  • 短信通知:配置短信通知
  • 即时通讯集成:与Slack、Teams等集成
  • 工单系统集成:与工单系统集成

日志管理集成 ​

  • ELK Stack集成:与ELK Stack集成
  • Splunk集成:与Splunk集成
  • Graylog集成:与Graylog集成

API与自动化 ​

REST API ​

  • API文档:查看API文档
  • 认证方式:API认证方式
  • API调用:使用API调用监控功能
  • API示例:API调用示例

自动化脚本 ​

  • 监控脚本:使用脚本自动化监控任务
  • 预警脚本:使用脚本处理预警
  • 报告脚本:使用脚本生成报告
  • 配置脚本:使用脚本管理配置

持续集成 ​

  • CI/CD集成:与CI/CD流程集成
  • 自动化测试:集成自动化测试
  • 部署集成:集成自动化部署

最佳实践 ​

部署最佳实践 ​

高可用性部署 ​

  • Service Manager集群:部署多个Service Manager节点
  • 负载均衡:配置负载均衡
  • 故障转移:实现自动故障转移
  • 数据备份:定期备份Repository数据

规模规划 ​

  • Agent数量:根据服务器性能确定Agent数量
  • Service Manager资源:根据管理的实例数量配置资源
  • 网络带宽:确保足够的网络带宽
  • 存储容量:根据数据保留时间规划存储容量

使用最佳实践 ​

监控策略 ​

  • 分层监控:实施分层监控策略
  • 重点监控:对关键实例重点监控
  • 定期检查:定期检查监控配置
  • 持续优化:持续优化监控策略

预警管理 ​

  • 预警分级:对预警进行分级管理
  • 预警聚合:聚合相关预警
  • 预警抑制:在维护期间抑制预警
  • 预警升级:建立预警升级机制

性能优化 ​

  • 定期分析:定期分析性能数据
  • 优化建议:及时应用优化建议
  • 基准测试:建立性能基准
  • 趋势分析:分析性能变化趋势

故障排查 ​

常见问题 ​

  • Agent连接问题:Agent无法连接到Service Manager
  • 数据收集问题:Agent无法收集数据
  • 预警误报:预警误报
  • 性能下降:Service Manager性能下降

排查步骤 ​

  • 检查日志:查看Service Manager和Agent的日志
  • 网络诊断:检查网络连接
  • 资源检查:检查系统资源使用情况
  • 配置验证:验证配置是否正确
  • 服务状态:检查相关服务的状态

解决方案 ​

  • Agent重启:重启Agent服务
  • Service Manager重启:重启Service Manager服务
  • 配置调整:调整相关配置
  • 资源扩容:增加系统资源
  • 升级版本:升级到最新版本

与开源监控工具的对比 ​

MySQL Enterprise Monitor vs Prometheus + Grafana ​

MySQL Enterprise Monitor优势 ​

  • 官方支持:MySQL官方开发和支持
  • 开箱即用:预配置的监控模板和规则
  • 性能顾问:专业的性能优化建议
  • 安全监控:内置的安全监控功能
  • 企业级支持:提供企业级技术支持

Prometheus + Grafana优势 ​

  • 开源免费:完全开源和免费
  • 灵活性高:高度可定制
  • 生态丰富:丰富的插件和集成
  • 扩展性强:支持大规模部署
  • 社区活跃:活跃的社区支持

MySQL Enterprise Monitor vs Zabbix ​

MySQL Enterprise Monitor优势 ​

  • MySQL专用:专为MySQL优化
  • 深度监控:深度监控MySQL内部指标
  • 性能顾问:专业的性能优化建议
  • 安全监控:内置的安全监控功能
  • 官方支持:MySQL官方支持

Zabbix优势 ​

  • 全栈监控:监控整个IT基础设施
  • 开源免费:完全开源和免费
  • 扩展性强:支持各种监控场景
  • 告警丰富:丰富的告警机制
  • 社区活跃:活跃的社区支持

常见问题(FAQ) ​

Q1: MySQL Enterprise Monitor的 licensing模式是什么? ​

A1: MySQL Enterprise Monitor是MySQL Enterprise Edition的一部分,采用订阅制 licensing模式:

  • 企业订阅:基于服务器或实例数量的订阅
  • 包含内容:包括MySQL Enterprise Server、MySQL Enterprise Monitor、MySQL Enterprise Backup等
  • 支持级别:提供不同级别的技术支持
  • 价格:根据订阅级别和规模而定,详情请咨询MySQL销售团队

Q2: MySQL Enterprise Monitor支持监控哪些版本的MySQL? ​

A2: MySQL Enterprise Monitor支持监控以下版本的MySQL:

  • MySQL Enterprise Server:所有当前支持的版本
  • MySQL Community Server:5.7及以上版本
  • MySQL Cluster:所有当前支持的版本
  • MySQL on AWS RDS:支持监控AWS RDS中的MySQL
  • MySQL on Azure Database:支持监控Azure Database for MySQL
  • MariaDB:部分版本兼容

Q3: 如何估算MySQL Enterprise Monitor的硬件需求? ​

A3: 估算MySQL Enterprise Monitor的硬件需求:

  • Service Manager:
    • 每个监控的MySQL实例需要约1GB内存
    • 每个监控的MySQL实例需要约0.5个CPU核心
    • 存储需求取决于数据保留时间和监控频率
  • Agent:
    • 每个Agent需要约256MB-512MB内存
    • 每个Agent需要约0.1-0.2个CPU核心
  • Repository:
    • 存储需求取决于监控的数据量和保留时间
    • 建议使用SSD存储以提高性能

Q4: MySQL Enterprise Monitor如何处理大规模部署? ​

A4: MySQL Enterprise Monitor处理大规模部署的方法:

  • 分布式架构:部署多个Service Manager节点
  • 负载均衡:使用负载均衡器分发请求
  • Agent分组:将Agent分组管理
  • 分层监控:实施分层监控策略
  • 性能优化:优化Service Manager和Repository的配置
  • 数据分区:对Repository数据进行分区

Q5: 如何将MySQL Enterprise Monitor集成到现有监控系统? ​

A5: 集成MySQL Enterprise Monitor到现有监控系统的方法:

  • API集成:使用MySQL Enterprise Monitor的REST API
  • 告警集成:配置MySQL Enterprise Monitor的告警通知
  • 数据导出:将监控数据导出到现有系统
  • SSO集成:集成单点登录
  • 仪表板集成:将MySQL Enterprise Monitor的仪表板集成到现有系统
  • 自定义集成:开发自定义集成解决方案