当前位置:文档之家› 网易数据库运维自动化演进与 AIOps 探索

网易数据库运维自动化演进与 AIOps 探索


基础运维工具 – 运维客户端
• 哨兵多功能运维客户端 – nagent
• 物理装机流程, 虚拟机镜像, 100%覆盖 • 定时执行操作, 定时和操作配置集中管理, 支持秒级 • 支持实时调用执行指定操作, 并回传标准输出数据 • 完全替代ssh远程执行, 作为自动化操作的基础 • 长执行命令后台执行, 异步化处理
数据库运维自动化 – MySQL慢查询处理
• 根据CMDB中的配置开关
• 阈值较敏感, 一般10~100ms级别 • 由nagnet作业系统统一调度 • 注意高版本flush会记入binlog • 上传云存储后异步分析, 减轻线上负载
数据库运维自动化 – MySQL慢查询处理
• 慢日志处理的关键是风险SQL筛选 • 入库的慢查询经过多次迭代分析
数据库运维自动化 – DB-CMDB自动维护
• 可靠的CMDB是自动化运维的最根本前提
• 所有服务器定时扫描本地是否有数据库服务 • 所有DBA关心的服务元数据都将增量上报 • 根据推送扫描特定服务器
• 数据上报
• 自动上报: 服务部署与物理配置信息 • 推送信息: 业务信息 • DBA维护: 运维配置信息
数据库运维自动化 – 监控报警自动维护
• 监控报警管理
• 模板化 • 模板细分化, 特别是报警模板 • 监控集群根据业务关系组织 • 报警等级向上匹配
数据库运维自动化 – 备份系统
• 根据CMDB中的备份策略, 定时调度
• 调度模块使用python APScheduler • Oracle rman+NFS • MySQL xtrabackup流备份上传云存储(NOS) • 支持mydumper • 分布式集群要考虑备份原子性 • 定期抽取备份结果进行恢复还原测试
目录
1 DBA自动化平台需求和功能目标 2 工具化运维阶段 3 打造DBA自动化运维平

4 网易AIOps探索与DBA平台
DBA运维平台模块流程设计
基础运维工具 – 监控系统
• 自研报警监控系统
• 数据全部推送-中转模型, 易扩展 • TSDB高吞吐量, 易扩展 • 设计支持跨网络转发 • 监控采集频度灵活, 支持秒级监控 • 高度灵活的自定义监控, 满足大多数监控需求 • 监控报警添加维护操作充分接口化
运维工具化
• 工具化总结
• 数据库运维关键环节都有靠谱的开源解决方案 • 开发无非是一些批量调用和控制脚本, 开发量少, 难度低 • 服务规模小, 对接人员少的情况下完全够用
• 逐渐遇到问题
• 工作量大, 沟通多且效率低 • zabbix和MHA等底层工具逐渐遇到瓶颈 • 操作规范性不足时常引发问题
• 基础框架
• 高可用切换 • 慢日志收集分析 • 数据导出导入工具 • 数据实时迁移工具 • 数据校验工具 • 巡检系统 • 批量命令下发 • 计划任务管理
• 用户增强
• web查询平台 • 访问权限管理和审计系统 • 容量水位和性能分析报表 • 数据生命周期管理 • 工单系统和自助系统
目录
1 DBA自动化平台需求和功能目标 2 工具化运维阶段 3 打造DBA自动化运维平
• 比如高可用设计, 集群扩缩容等方案 ...
• 整合工作流程, 提高沟通效率 • 环境流程规范化 • 提升DBA对所管理服务的了解程度和掌控能力
• 服务概览/ 资源管理/ 容量水位/ 性能巡检 ...
数据库自动化运维常用功能点
• 核心功能
• DB-CMDB • 监控报警 • 自动部署, 主从维护 • schema在线自动变更 • 权限变更 • 备份恢复系统
• 对接产品和开发人数众多
• 工作种类和内容繁多
• 部署/变更/权限/调数/导出导入/备份恢复/扩容/迁移 /升级/排障/容量巡检 ...
• 职责重大, 业务敏感性也很高
数据库运维平台的设计目标
• 提高操作自动化率
• 提升工作处理效率, 同时减少DBA机械劳动 • 提高运维操作规范化程度
• 统一并落实技术方案
网易数据库运维自动化演进 与AIOps探索
目录
1 DBA自动化平台需求和功能目标 2 工具化运维阶段 3 打造DBA自动化运维平

4 网易AIOps探索与DBA平台
DBA工作中的难点
• 运维环境复杂庞大
• 上万实例/集群 • MySQL/分布式DDB/Oracle/MongoDB/Redis/Hbase ... • 物理机/私有云/容器云/多地多机房/隔离网络 ...
数据库运维自动化 – DB-CMDB自动维护
• 数据采集后异步关联维护
• 单机采集数据割裂, 需要进一步维护 • 单节点与集群, 主从级联, 域名与代理...
• 面向维护上千实例分布式系统的DBA
• 展示集群物理分布与主从拓扑 • 展示实例和集群关系 • 展示集群和业务逻辑关系 • 关联监控报警系统
大量使用fabric分发
运维工具化
• 高可用切换
• 慢日志收集分析 • 数据导出导入工具
• MHA, (Keepalived) • 由于需要分布式部署, 基于MHA的上
层做了很多批量管理工具
• cron脚本பைடு நூலகம்时flush截断日志, 在本地 pt-query-digest分析后写入CMDB
• DataX + 调度脚本 • 同时也大量用于ETL需求
• 历史新出现 • 昨天同期频率增加 • 上周同期频率增加 • 小时时间段内新出现 • ......
展开数据库自动化平台建设
• 运维部组建了运维开发组, 开始自研运维基础设施 • DBA组也开始开发针对数据库的自动化平台
• 我们取名OWL, 象征经常熬夜的DBA
• 构建最初的目标
• 优化改良当前运维工具, 解决技术瓶颈 • 提供一个web平台即服务开发同学也服务DBA • 通过白屏化提高线上运维的规范性和自动化水平

4 网易AIOps探索与DBA平台
运维工具化
• DB-CMDB • 监控报警 • 自动部署, 搭建主从 • 权限变更 • 备份恢复系统 • schema在线自动变更
• DBA部署后手工录入 • zabbix • python fabric 脚本化
• xtrabackup, 存储本地或NFS • pt-osc • 由于任务都需要在分布式多节点执行,
相关主题