企业数据库监控体系建设
数据库砖家,1000万nvps的监控系统用什么存储比较好?
监控内容
业务 应用服务 数据服务 操作系统 物理硬件(cpu、io、net、disk、mem…)
业务监控 应用监控
系统监控
怎么监控
系统监控
状态查看 基于Zabbix开发
应用监控
告警响应
性能、故障分析 容量报告 风险挖掘
Saiyan、Zabbix 调用分析:Titan sysstat、orzdba、redisstat等等 慢查询分析
• jstack 123456
容量报告之基于Zabbix的Capacity report
风险挖掘之Zabbix数据分析
• 系统监控 • 问题趋势、热点时间反应 • 热点问题服务器、业务群 • 热点问题类型 • 应用监控 • 业务流量变化 • 流量均衡问题
Redis和Memcached流量均衡检测
基于Zabbix开发 基于Zabbix开发
为什么选择Zabbix
• 抽象合理,架构清晰 • MySQL数据存储,利于二次开发和数据分析 • 功能强大——主要指discovery
Zabbix有什么问题
• 前端配置、管理同步操作,越来越慢甚至失败 • 单Zabbix server架构,监控能力扩充难 • MySQL未做逻辑拆分和读写分离设计,单实例MySQL没法 实现长久保存 • 状态监控告警响应速度慢,难收敛
性能、故障分析神器之sysstat
• • • • • 必装组件 根据需求调整sa1执行频率 根据需求调整sa1执行频率 根据需求调整sa1执行频率 根据需要保存更久的数据
性能、故障分析神器之orzdba、redisstat
性能、故障分析还值得每10秒记录下来的信息
• show full processlist • show engine innodb status • db.currentOP()
数据访问来源分析
热点Key/SQL分析
慢查询集中收集展示分析
MySQL Redis MongoDB … 慢查询 每10分钟收集上传
集中 MySQL 存储
Frontend
集中存储、分析、查看、订阅
慢查询集中收集展示分析
慢查询集中收集展示分析
企业数据库监控体系建设
技术创新,变革未来
监控之易
监控之难
监控目的
监控结果
监控内容
பைடு நூலகம்
监控告警
监控的目的是为了告警!?
监控目的
状态查看 告警响应
• 展示当前服务状态
• 根据阈值设定,告警问题状态
• 故障复盘,问题诊断 • 用数据反映服务容量,防止拍脑袋堆机器 • 挖掘服务潜在问题以及应用使用数据库问题
性能、故障分析
容量报告
风险挖掘
监控本质
收集数据
存储数据
使用数据
有没有那么一个监控系统能满足全部需求?
各监控目的特征(我们要做到)
状态查看 告警响应 性能、故障分析 容量报告
• 简单明了,连老板都能看的懂 • 速度快,准确率高
• 数据详细,精确到秒
• 数据易于统计分析 • 数据易于分析统计
风险挖掘
状态查看之Zabbix dashboard
状态查看之Zabbix dashboard
告警响应之Saiyan和Zabbix
MySQL Redis MongoDB … Memcached 注册到 zookeeper zookeepe r
Watch节点变化
处理队列 (告警、自动恢复)
Saiyan秒级监控响应系统
数据库应用监控之Titan
MySQL Redis kafk a MongoDB … Memcached TCP抓包日志 Spark聚合计算 HBase
Frontend
TCP抓包日志分析系统
Titan的应用性能、故障分析
响应时间分析 请求来源分析 请求SQL、命令分析 慢查询、hotkey分析
请求时间 来源地址 目的地址 目的端口 响应时间 请求长度 响应长度 具体内容 请求发生的时间 从哪里发来的请求 数据服务IP地址 数据服务端口号 从数据服务接到查询请求 到响应客户端时长 查询SQL、命令长度 查询结果长度 具体的请求SQL、命令