从马车到汽车是为了提高运输效率,而随着时代的发展,现在咱们又但愿用自动驾驶把驾驶员从开车这项体力劳动中解放出来,增长运行效率,同时也可减小交通事故发生率,这也是企业对于智能运维的诉求。html
从人工运维到自动化运维是为了减小人力成本,下降操做风险,提升运维效率,但自动化运维的本质依然是人与自动化工具相结合的运维模式,仍有局限性。为了持续地面向大规模、高复杂性的系统提供高质量的运维服务,智能运维(AIOps)应运而生。git
本文,袋鼠云将跟你们分享智能运维大数据平台(一款开箱即用的运维监控平台)在Oracle数据库运维场景下的具体应用。github
使用平台第一步是数据接入。要作好Oracle的运维,须要哪些数据支撑?根据咱们运维Oracle平常的经验总结,如下几类数据是特别重要的:算法
实例和数据库基础信息数据库
包括实例的版本、Patch、启动时间、实例参数、主机基本配置信息。网络
数据库健康检查架构
检查数据库是否能正常链接,读写响应时间是否正常。运维
实例基础性能数据机器学习
包括业务的QPS、TPS,实例和主机的CPU使用率、内存使用率、链接数使用率,SQL解析状况,数据库的逻辑读、物理读,数据库锁等待情况,以及RAC集群间的通讯情况。ide
Oracle等待事件
采集Oracle内部等待事件的类型、等待次数和消耗时间。从等待事件能够判断实例运行的总体健康状况,定位实例瓶颈。
数据库空间使用信息
包括表空间文件占用空间、表空间使用空间、临时表空间使用状况、UNDO表空间使用状况。须要实时监控表空间使用状况,避免表空间占满引发故障。
数据库Session信息
Session信息记录了实例当前运行的SQL状况,记录了当前阻塞Session的具体信息,比较常见的如锁等待。经过Session信息,方便快速定位实例中的阻塞现象。
数据库备份状况
在数据库运维领域,备份重于泰山。天天都须要检查数据库的备份状况,包括备份是否成功,备份耗时,备份占用空间等。
DataGuard运行情况
DataGuard是Oracle高可用最经常使用的方案之一。须要实时检测Oracle DataGuard的运行情况,包括日志传输是否正常,日志应用延迟。
日志信息
数据库的告警日志、TNS监听日志。从日志中能够发现数据库内部运行错误、异常的客户端链接信息等。
上述的数据采集,已经集成在产品中。用户只须要在数据库性能采集模块配置接入信息,就会自动采集这些数据。
数据接入以后,产品上会从几个方面来使用这些数据:
仪表盘
系统默认带了Oracle场景的通用仪表盘。用户也能够根据本身的使用习惯,经过SPL的方式配置自定义仪表盘。
监控告警
系统内置常见的监控告警。也能够经过SPL的方式配置自定义告警项。数据只要采集到了,就能够用于配置告警。
智能巡检
系统支持配置自定义巡检规则,按用户定义的时间间隔,按期进行数据库巡检。
日志分析
基于系统采集的Oracle告警日志、TNS监听日志,除了使用基本的日志搜索、监控告警,也能够配置一些日志分析的场景。
本文重点介绍仪表盘的使用。
仪表盘是数据可视化展示的基本形式,便于用户从直观上了解系统的总体运行情况。
一、Oracle实例总览
Oracle总览Dashboard主要包括这几个部分:
经过这2个指标定位繁忙的实例。
二、Oracle实例详情
该仪表盘用于展示单个实例的运行详细情况。仪表盘主要分以下几个部分。
1)实例信息
显示实例的基本信息,包括主机状况,实例运行状态,实例的版本,数据库的角色,读写模式等
2)实例运行状况
展示实例的核心运行指标。
· 阻塞会话数/活跃会话数
· DB Time使用率
· 实例当前会话数使用率
· CPU使用率趋势
· 实例会话数趋势
· SQL执行量/SQL解析量
· 实例逻辑读/物理读
· 实例网络流量
· 实例IO请求次数
三、 Oracle实例空间总览
该仪表盘展示实例的空间使用状况。主要包括几个部分:
1)实例总空间分布
展示全部实例的空间分布状况。
2)实例使用空间TOP
展示空间使用率TOP实例的空间变化趋势。
3)实例表空间相关信息
展示所选实例的表空间数量、实例总空间以及空间同比和环比、UNDO空间和TEMP空间、闪回区空间使用状况。
4)实例表空间使用率和占用空间排名。
5)实例表空间使用率TOP趋势
6)实例表空间列表
展示实例全部表空间的空间使用状况。
四、Oracle阻塞会话
该仪表盘展示实例中阻塞会话的状况,仪表盘主要有几个部分组成。
1)TOP阻塞会话趋势图
展示系统中全部实例的阻塞会话数变化趋势。若有阻塞会话,须要特别关注。
2)实例等等事件分布图
展示所选实例的阻塞会话的等待事件分布状况。
3)阻塞源分析
展示哪些Session引发了其它Session阻塞。
4)等待事件趋势
实例等待事件趋势。
5)阻塞会话列表
以表格的形式展示阻塞会话的详细信息,包括:
· Session ID
· 会回登录时机
· 会回当前状态
· 引发阻塞的会话ID
· 阻塞对象ID
· 等待事件
· 等待时间
· 登录用户信息,包括用户名,登录终端,应用程序名称。
· 执行的SQL信息,包括SQL ID,SQL语句。
经过上面这些仪表盘,既能从整体上掌握全部实例的基本运行情况,也能在单个实例上进行深刻的分析,细到具体执行的SQL。能从整体上把握全部数据库的空间使用趋势,也能看到单个表空间的数据使用状况。
上面的案例,是智能运维大数据产品在Oracle数据库运维场景下的一个具体应用。
其实整个产品,彻底不局限于数据库运维这个场景。
产品在数据采集和数据应用上,具备强大的扩展能力。
1)自动巡检
全部的指标,均可以配置成巡检项,系统支持自定义调度周期(小时粒度),按期巡检系统的运行情况,以钉钉消息或邮件的方式发送出来。
2)全链路的监控
上面只介绍了数据库的场景,其实系统支持整个链路上的数据采集、分析。目前系统支持的采集包括:
· 物理设备信息采集(物理机CPU风扇、磁盘、温度、电源状态)
· 网络设备(交换机、防火墙、无线AP)
· 阿里云云产品数据采集,支持几十种云产品的数据集成。
· 通用软件(Docker,Tomcat,消息中间件)
· WEB访问日志、防火墙日志、主机日志
· 应用日志数据
· APM应用调用联路数据采集
3)智能算法
自动基线学习,无需配置告警,就能自动监测系统运行异常情况。
「智能运维大数据平台」
「智能运维大数据平台」是一款开箱即用的运维监控平台,经过特有的平台功能能够将企业的基础架构、应用程序、日志管理结合在一块儿,提供统一采集、统一存储、关联分析、统一监控企业业务保障能力,保障企业业务稳定高效运行,同时利用离线计算、实时计算、机器学习等技术,实现运维数据共享、数据开发和加工能力,让开发人员、运营团队和业务团队协同工做,构建和改进软件应用程序,并帮助企业了解业务和用户使用状况。被各大企业用于实现数字转型和云迁移,推进开发,运营和业务团队之间的协做,加快应用程序的上线时间,缩短解决问题的时间,了解用户行为和跟踪关键业务指标。
数栈是云原生—站式数据中台PaaS,咱们在github和gitee上有一个有趣的开源项目:FlinkX,FlinkX是一个基于Flink的批流统一的数据同步工具,既能够采集静态的数据,也能够采集实时变化的数据,是全域、异构、批流一体的数据同步引擎。你们喜欢的话请给咱们点个star!star!star!
github开源项目:https://github.com/DTStack/flinkx
gitee开源项目:https://gitee.com/dtstack_dev_0/flinkx