数栈运维实例:Oracle数据库运维场景下,智能运维如何落地生根?
从马车到汽车是为了提升运输效率,而随着时代的发展,如今我们又希望用自动驾驶把驾驶员从开车这项体力劳动中解放出来,增加运行效率,同时也可减少交通事故发生率,这也是企业对于智能运维的诉求。
从人工运维到自动化运维是为了减少人力成本,降低操作风险,提高运维效率,但自动化运维的本质依然是人与自动化工具相结合的运维模式,仍有局限性。为了持续地面向大规模、高复杂性的系统提供高质量的运维服务,智能运维(AIOps)应运而生。
本文,袋鼠云将跟大家分享智能运维大数据平台(一款开箱即用的运维监控平台)在Oracle数据库运维场景下的具体应用。
一、数据采集
使用平台第一步是数据接入。要做好Oracle的运维,需要哪些数据支撑?根据我们运维Oracle日常的经验总结,以下几类数据是特别重要的:
实例和数据库基础信息
包括实例的版本、Patch、启动时间、实例参数、主机基本配置信息。
数据库健康检查
检查数据库是否能正常连接,读写响应时间是否正常。
实例基础性能数据
包括业务的QPS、TPS,实例和主机的CPU使用率、内存使用率、连接数使用率,SQL解析情况,数据库的逻辑读、物理读,数据库锁等待状况,以及RAC集群间的通信状况。
Oracle等待事件
采集Oracle内部等待事件的类型、等待次数和消耗时间。从等待事件可以判断实例运行的整体健康情况,定位实例瓶颈。
数据库空间使用信息
包括表空间文件占用空间、表空间使用空间、临时表空间使用情况、UNDO表空间使用情况。需要实时监控表空间使用情况,避免表空间占满引起故障。
数据库Session信息
Session信息记录了实例当前运行的SQL情况,记录了当前阻塞Session的具体信息,比较常见的如锁等待。通过Session信息,方便快速定位实例中的阻塞现象。
数据库备份情况
在数据库运维领域,备份重于泰山。每天都需要检查数据库的备份情况,包括备份是否成功,备份耗时,备份占用空间等。
DataGuard运行状况
DataGuard是Oracle高可用最常用的方案之一。需要实时检测Oracle DataGuard的运行状况,包括日志传输是否正常,日志应用延迟。
日志信息
数据库的告警日志、TNS监听日志。从日志中可以发现数据库内部运行错误、异常的客户端连接信息等。
上述的数据采集,已经集成在产品中。用户只需要在数据库性能采集模块配置接入信息,就会自动采集这些数据。
数据接入之后,产品上会从几个方面来使用这些数据:
仪表盘
系统默认带了Oracle场景的通用仪表盘。用户也可以根据自己的使用习惯,通过SPL的方式配置自定义仪表盘。
监控告警
系统内置常见的监控告警。也可以通过SPL的方式配置自定义告警项。数据只要采集到了,就可以用于配置告警。
智能巡检
系统支持配置自定义巡检规则,按用户定义的时间间隔,定期进行数据库巡检。
日志分析
基于系统采集的Oracle告警日志、TNS监听日志,除了使用基本的日志搜索、监控告警,也可以配置一些日志分析的场景。
本文重点介绍仪表盘的使用。
二、Oracle仪表盘
仪表盘是数据可视化展现的基本形式,便于用户从直观上了解系统的整体运行状况。
1、Oracle实例总览
Oracle总览Dashboard主要包括这几个部分:
- 实例统计,包括实例总数,异常实例数,数据库数量,实例版本分布。通过这几个指标,能对接入系统中的实例有一个大体的了解。
- TOP实例,包括繁忙率TOP实例,活跃会话数TOP实例。
通过这2个指标定位繁忙的实例。
- 异常实例列表
这个表格展示所有无法连接的实例,包括连接报错信息。 - TOP性能趋势图
选取数据库的核心指标,对整体实例的运行状况有一个整体的了解。选取的指标:
· DB Time使用率:体现实例整体繁忙程度
· DB CPU使用率:CPU资源的使用率。
· 活动会话数:是否后SQL积压
· 会话数使用率:Session资源使用率
· QPS/TPS:展现业务请求吞吐量
2、Oracle实例详情
该仪表盘用于展现单个实例的运行详细状况。仪表盘主要分如下几个部分。
1)实例信息
显示实例的基本信息,包括主机情况,实例运行状态,实例的版本,数据库的角色,读写模式等
2)实例运行情况
展现实例的核心运行指标。
· 阻塞会话数/活跃会话数
· DB Time使用率
· 实例当前会话数使用率
· CPU使用率趋势
· 实例会话数趋势
· SQL执行量/SQL解析量
· 实例逻辑读/物理读
· 实例网络流量
· 实例IO请求次数
3、 Oracle实例空间总览
该仪表盘展现实例的空间使用情况。主要包括几个部分:
1)实例总空间分布
展现所有实例的空间分布情况。
2)实例使用空间TOP
展现空间使用率TOP实例的空间变化趋势。
3)实例表空间相关信息
展现所选实例的表空间数量、实例总空间以及空间同比和环比、UNDO空间和TEMP空间、闪回区空间使用情况。
4)实例表空间使用率和占用空间排名。
5)实例表空间使用率TOP趋势
6)实例表空间列表
展现实例所有表空间的空间使用情况。
4、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

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Javac 源码调试教程
为什么写这这篇文章 一直有读者问我 javac 源码怎么调试,自己也在写 JVM 掘金小册的过程中阅读了大量的 javac 的源码,网上这方面的文章也比较少,那就来写一篇 javac 源码调试的文章吧,作为 javac 系列文章的开篇。 javac 源码调试的过程是比较简单的,它本身就是一个用 Java 语言写的,对我们理解内部逻辑比较友好。 环境搭建过程 环境备注:Intellij、JDK8 1、第一步下载导入 javac 的源码 如果不想从 openjdk 下载折腾,可以跳过第 1 步直接从我的 github 下载:github.com/arthur-zhan… OpenJDK 的下载方式为: 打开hg.openjdk.java.net/jdk8/jdk8/l… ,点击左侧的 zip 或者 gz 进行下载。 在 Intellij 中新建一个 javac-source-code-reading 项目,把源码目录的 src/share/classes/com 目录整个拷贝到项目 src 目录下,删掉没用的 javadoc 目录。 2、找到 javac 主函数入口 代码在src/com/...
- 下一篇
linux使用udev配置U盘自动挂载
作者:三十三重天 博客:http://www.zhouhuibo.club 通过学习和分享的过程,将自己工作中的问题和技术总结输出,希望菜鸟和老鸟都能通过自己的文章收获新的知识,并付诸实施。 udev介绍 来源:https://linux.cn/article-10329-1.html 创建这样一个脚本,当指定的设备插入时触发你的计算机去做一个指定动作。 udev 是一个为你的计算机提供设备事件的 Linux 子系统。通俗来讲就是,当你的计算机上插入了像网卡、外置硬盘(包括 U 盘)、鼠标、键盘、游戏操纵杆和手柄、DVD-ROM 驱动器等等设备时,代码能够检测到它们。这样就能写出很多可能非常有用的实用程序,而它已经很好了,普通用户就可以写出脚本去做一些事情,比如当某个硬盘驱动器插入时,执行某个任务。 使用udev进行一个简单的配置 使用udev进行一个简单配置,配置后的实际表现为:当U盘插入机器时,向系统/tmp目录生成一个写入当前系统时间的文本文件 执行脚本 cd /tmp 打开你喜欢的文本编辑器,然后输入下面的简单脚本: echo `date` >> /tmp/trig...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装Docker,最新的服务器搭配容器使用
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19