《企业数据库平台监控运维与自动化治理平台建设技术方案.docx》由会员分享,可在线阅读,更多相关《企业数据库平台监控运维与自动化治理平台建设技术方案.docx(48页珍藏版)》请在优知文库上搜索。
1、项目编号:企业数据库PAAS平台监控运维与自动化治理平台建设技术方案目录1 项目总体概况41.1 项目建设内容52 项目实施方案82.1 项目需求实现方案82.1.1 MySQL实时监控82.1.2 自动故障处理142.1.3 数据库分析报表182.2 项目开发实施方案192.2.1 需求分析192.2.2 软件开发202.2.3 安装调测202.2.4 系统验收222.2.5 其他措施252.3 项目实施进度安排252.3.1 项目进度管理262.3.2 项目质量管理262.3.3 项目风险管理272.3.4 项目沟通管理282.4 网络与信息安全保障292.4.1 总体方案292.4.2
2、系统安全302.4.3 数据安全312.4.4 应用安全322.5 项目实施质量控制332.5.1 质量管理方法332.5.2 质量管控思路332.5.3 质量管理计划352.5.4 质量保障措施383 项目服务方案413.1 保修服务期413.2 保修服务方案413.2.1 服务内容413.2.2 服务方式423.2.3 问题优先级423.2.4 服务响应433.2.5 应急响应443.2.6 服务组织机构473.2.7 每月的总结483.2.8 支持流程483.3 培训服务方案493.3.1 培训目的493.3.2 培训形式493.3.3 培训内容50503.3.4 培训计划1项目总体概况
3、随着云和大数据技术的不断演进,传统分散模式建设的IT系统已无法满足数字化时代的发展要求;集中化建设的IT支撑系统可充分利用全新技术、匹配全新运营模式、支撑全新数字化业务,己构建数字化时代的核心竞争力;系统集中化后,企业将重点聚焦在业务本身的建设及创新,而支撑中系统大体谅、分布式的云化架构及灵活快速的需求响应、标准化的服务以及全网一点发布及运维能力可由PaaS平台来提供和支撑。实现MySQL实时监控及配套数据库分析报表,并实现数据库故障自动处理。提供可视化的管理界面供相关人员使用,提高开发运维效率;并提供HTTP接口服务可供外部第三方进行调用。(1)数据库是PaaS最核心的能力,SQL数据库仍是
4、主流,数据库尤其是关系型SQL数据库的稳定服务能力成为PaaS平台最核心的诉求。(2)分布式架构、去IOE形式下,业务异常SQL对系统稳定性带来挑战。以某电信CRM重构为例,PaaS平台使用集团基于MySQL自研的分布式数据库,承载了包括CRM重构后的CPC配置引擎、营服协同引擎、营销资源引擎、客户引擎、受理引擎、基础运营管理引擎,以及VC等周边小系统,自5月上线以来,多次故障均因慢SQL和异常SQL导致。(3) MySQL等数据库的监控与自动化治理缺乏工具。与OraCIe相比,MySQL等数据库在完善的监控、运维、治理配套工具方面存在很大的空缺,如AWR运行报告,自动化的快速故障处理等,因此
5、对能自动、实时进行SQL的监控与治理平台提出了需求,以提升数据库服务可用性,进而保证PaaS上各业务系统的稳定运行。(4) PaaS平台缺少web应用防护能力。企业PaaS原子能力平台作为基础能力平台,支撑着企业的业务开展,作为基础能力平台,缺少Web应用安全防护的基础能力,云防护为政企PaaS原子能力平台提供基础的Web防护能力,通过能力调用,实现PaaS平台用户的Web防护能力。1.1项目建设内容系统架构图:MySQL实时监控通过轻量级可配置的监控代理实现SQL服务指标与事务等监控信息的采集,存储到非结构化存储系统中,通过时间线、快照、健康度、主从关联等纬度对SQL服务运行状态进行实时的展
6、现与监控,及时发现问题支持快速定位原因与排障。自动故障处理根据数据库故障处理场景,通过调用代理自动化运维接口的能力,实现以下场景的自动故障处理,并具备快速灵活扩展的能力空间问题处理长事务问题处理长查询故障处理CPU/连接数/Threadrunning问题处理主从复制错误问题处理数据库分析报表基于监控数据与数据库维护经验,形成SQL/事务/锁分析等分析报表,基于指标,生成数据库AWR实时运行报表,为数据库性能调优分析、故障分析提供依据。2项目实施方案1 .1项目需求实现方案2 .LlMySQL实时监控为公司将通过轻量级可配置的监控代理实现SQL服务指标与事务等监控信息的采集,存储到非结构化存储系
7、统中,通过时间线、快照、健康度、主从关联等纬度对SQL服务运行状态进行实时的展现与监控,及时发现问题支持快速定位原因与排障。服务指标监控1. 系统mysql的进程数PS-efIgrepmySq1grep-vgrepwc-12. Slave_runningmysqlshowstatuslikeSlavejunning;如果系统有一个从复制服务器,这个值指明了从服务器的健康度3. Threads_connectedmysqlshowstatuslike,Threads-connected,;当前客户端已连接的数量。这个值会少于预设的值,但你也能监视到这个值较大,这可保证客户端是处在活跃状态。4.
8、Threads_runningmysqlshowstatuslike,Threads-running,;如果数据库超负荷了,你将会得到一个正在(查询的语句持续)增长的数值。这个值也可以少于预先设定的值。这个值在很短的时间内超过限定值是没问题的。当ThreadSjunning值超过预设值时并且该值在5秒内没有回落时,要同时监视其他的一些值。5. AbOrted_cIientsmysqlshowstatuslike,Aborted_clients,;客户端被异常中断的数值,即连接到mysql服务器的客户端没有正常地断开或关闭。对于一些应用程序是没有影响的,但对于另一些应用程序可能你要跟踪该值,因为
9、异常中断连接可能表明了一些应用程序有问题。6. Questionsmysqlshowstatuslike,Questions,;每秒钟获得的查询数量,也可以是全部查询的数量,根据你输入不同的命令会得到你想要的不同的值。7. Handlej*mysqlshowstatuslike,Handler-%,;如果你想监视底层(IowTevel)数据库负载,这些值是值得去跟踪的。如果Hand1er_read_rnd_next值相对于你认为是正常值相差悬殊,可能会告诉你需要优化或索引出问题了。Handler.rolIback表明事务被回滚的查询数量。你可能想调查一下原因。8. Opened_tablesm
10、ysqlshowstatuslike,Opened-tables);表缓存没有命中的数量。如果该值很大,你可能需要增加table_cache的数值。典型地,你可能想要这个值每秒打开的表数量少于1或2。9. Select_full_joinmysqlshowstatuslike,Select-full-join,;没有主键(key)联合(Join)的执行。该值可能是零。这是捕获开发错误的好方法,因为一些这样的查询可能降低系统的性能。10.5 elect_scanmysqlshowstatuslike,Select-scan,;执行全表搜索查询的数量。在某些情况下是没问题的,但占总查询数量该比值应
11、该是常量(即SeIeCt_scan/总查询数量商应该是常数)。如果你发现该值持续增长,说明需要优化,缺乏必要的索引或其他问题。11.510 w_queriesmysqlshowstatuslike,Slow-queries,;超过该值(一long-query-time)的查询数量,或没有使用索引查询数量。对于全部查询会有小的冲突。如果该值增长,表明系统有性能问题。12 .Threads_createdmysqlshowstatuslike,Threads-created);该值应该是低的。较高的值可能意味着你需要增加thread_cache的数值,或你遇到了持续增加的连接,表明了潜在的问题。1
12、3 .客户端连接进程数shellmysqladminprocesslistmysqlshowprocesslist;你可以通过使用其他的统计信息得到已连接线程数量和正在运行线程的数量,检查正在运行的查询花了多长时间是一个好主意。如果有一些长时间的查询,管理员可以被通知。你可能也想了解多少个查询是在LOCked的状态该值作为正在运行的查询不被计算在内而是作为非活跃的。一个用户正在等待一个数据库响应。14 .innodb状态mysqlshowinnodbstatus;该语句产生很多信息,从中你可以得到你感兴趣的。首先你要检查的就是“从最近的XX秒计算出来的每秒的平均负载”。(I)Pendingno
13、rmalaioreads:该值是innodbio请求查询的大小(size)。如果该值大到超过了10-20,你可能有一些瓶颈。(2)reads/s,avgbytes/read,writes/s,fsyncs/s:这些值是io统计。对于reads/writes大值意味着io子系统正在被装载。适当的值取决于你系统的配置。(3)Bufferpoolhitrate:这个命中率非常依赖于你的应用程序。当你觉得有问题时请检查你的命中率(4) inserts/s,updates/s,deletes/s,reads/s:有一些Innodb的底层操作。你可以用这些值检查你的负载情况查看是否是期待的数值范围。15.
14、主机性能状态shelluptime16. CPlJ使用率shelltopshellvmstat17. 磁盘IOshellvmstatshelliostat18. swap进出量(内存)shellfree19. MySQL错误日志在服务器正常完成初始化后,什么都不会写到错误日志中,因此任何在该日志中的信息都要引起管理员的注意。20. InnoDB表空间信息InnoDB仅有的危险情况就是表空间填满一一日志不会填满。检查的最好方式就是:showtableStatUs;你可以用任何InnODB表来监视InnoDB表的剩余空间。21. QPS每秒QUeCr量QPS=Questions(orQueries
15、)/secondsmysqlshow*global*/statuslike,Question,;22. TPS(每秒事务量)TPS=(COm+Com_roIlback)/secondsmysqlshowstatuslikeCom_commit;mysqlshowstatuslike,Com-rollback,;23. keyBuffer命中率key_buffer_read_hits=(l-key_reads/key_read_requests)*100%key_buffer_write_hits=(l-key_writes/key_write_requests)*100%mysqlshowstatuslikeKey%;24. InnoDBBuffer命中率Innodb_buffer_read_hits=(1-innodb_buffer_pool_reads/innodb_buffer_pool