探索GreatADM:如何快速定义监控
引文
在数据库运维过程中,所使用的运维管理平台是否存在这样的问题:
- 1、默认监控粒度不够,业务需要更细颗粒度的监控数据。
- 2、平台默认的监控命令不适合,需要调整阈值量身定制监控策略。
- 3、不同类型的实例或组件需要有不同的监控重点,但管理平台监控固化,难以应对多样化的监控需求。
- 4、只监控系统关键指标,屏蔽不必要的指标,优化CPU消耗、网络、采集数据量等,减少资源消耗,提升系统性能。
在数据库运维过程中,用户或者DBA经常会因为管理平台监控面板无法配置,或者监控模板固化,监控模板中没有所关注的指标项,而不得已弃用部分管理平台,进而自建监控或者基于自身业务自定义一批运维监控脚本,来实现数据库或者主机的多样化监控需求。
但这些脚本往往出自不同DBA之手,监控脚本的管理、更新和维护,以及风险评估给数据库的稳定运行带来了新的风险,而且脚本的输出结果需要DBA周期检查分析,展示上也不够直观。今天我们来看下GreatADM是如何解决上述问题的。
一、GreatADM的监控介绍
GreatADM提供灵活的自定义监控配置方法,支持通用的prometheus+grafana
的规范,用户可以按照实际业务上的需求,通过配置标准的grafana面板json格式文件或者通过图形化选项配置监控采集项,手动定义dashboard面板。用户可按需灵活的配置监控面板。同时GreatADM支持用户按需调整监控数据的采集频率、监控超时阈值等,用户可按实际业务需求来定义调整,以及对应的SQL命令的调整等。
GreatADM提供不同数据库架构的监控指标和监控模板,支持采集频率、超时阈值的调整,并提供3个维度监控:
- 1、架构层面:数据库高可架构整体全局状态概览和复制状态、延迟、运行时长、趋势概览。
- 2、数据库实例:数据库实例节点层面的监控,如SQL执行情况,内存波动,网络请求,I/O负载等方面监控。
- 3、物理主机:数据库实例所在主机性能指标如CPU、内存、IO、磁盘用量等,可以发现数据库的性能瓶颈,及时进行优化。
针对监控采集,DBA在分析判断问题时,也可清晰了解到监控使用的SQL命令是什么,方法是否和自己的使用的SQL相同等。
如果上面的监控指标,或者面板不是你想要的,接下来我们就详细看下GreatADM如何自定义业务中,或者DBA想要的监控项,和监控面板的配置。
二、如何自定义GreatADM的监控面板
配置整体步骤如下:
a、添加监控采集指标,编辑采集命令
-
- Demo1:只监控Linux根空间用量
- Demo2:监控慢日志累计增长量
b、检查采集器是否有效
c、配置监控面板
d、自定义监控完成
e、多个面板配置在同一页面
1、添加空间采集项
Demo1、【如何增加主机自定义监控项---独立监控linux根空间用量】
针对以下选项: 填写采集组名称:host_root 采集频率:300s 采集超时:5s 采集组默认是否启用:启用 添加到哪个类型数据库架构:paxos高可用复制
采集目标:数据库主机 选择任一节点:hostname 运行shell采集命令:df -Th|grep root|awk -F' ' '{print $6}'|awk -F'%' '{print $1}'
采集命令注意:监控主机,则采集语句为shell命令,目标选择主机;监控数据库,则采集语句为SQL命令,目标选择数据库。另外对应的采集器返回的结果只允许是"单项结果值",如果存在多列,多行结果,对应的采集器会报错,并且无法正常采集。
采集器添加完成之后,信息如下
查看对应的采集命令
Demo2、【如何增加数据库自定义监控项---数据库慢日志增长趋势】
针对以下选项配置方法同上: 填写采集组名称:slow_queries 采集频率:5s 采集超时:5s 采集组默认是否启用:启用 添加到哪个类型数据库架构:paxos高可用复制
采集目标:数据库实例 选择任一实例节点: 选择数据库名:paxos_600 实例节点:database_1 运行SQL采集命令:select variable_value from performance_schema.global_status where variable_name='slow_queries'
提交并查看监控项信息
使用的SQL语句
添加采集项的整体配置流程可以总结为:
- 1选择类型
- 2选择主机/数据库
- 3采集命令
- 4运行采集命令
- 5提交并检查
2、检查新增采集项是否有效
选择【监控告警】--子项【查询】来验证新增加的采集项是否可采集到数据,以及前端绘图是否正常
点击【使用查询】可看到对应的graph的绘制图,点击【检查】,可具体看到采集项【统计数据】,如下共采集了482行。当前因为我选择了2台主机的,因截图遮展示框盖住了另外一台的绘图。
具体【数据】可查看到时序时间对应的主机采集的磁盘数值。
登录主机和实际主机的磁盘根空间对比查看
确认对应的采集数据可以正常,无误,为可用状态。(数据库的采集项和此检查一致,这里就不在赘述了)。 接下来就可以配置grafana面板了。
3、配置监控面板
登录GreatADM的http://172.17.139.50/graph/login
可直接跳转到GreatADM集成Grafana面板配置页,默认账号为admin,密码为GreatADM内置的初始密码。
选择【+】 Dashboard--添加新的【panel】
在这里Data sorce 选择【监控】
点击【指标浏览器】--搜索栏搜索采集项名称【host_root】--匹配到【node_ext_host_root_demo】--自动匹配【address标签】展示可监控的主机IP列表
选择要监控的主机【IP】--点击【使用查询】--可正常绘制监控图 调整横坐标轴的标题title【主机 "/" 根空间使用率】和纵坐标的lable描述【磁盘空间使用率(%)】
下一步针对绘图线的格式调整,点击【选项】--【图例】--【自定义(提供命名模板)】
将{{label_name}}修改为{{address}}之后,对应的主机信息就完整了
保存配置,并为Dashboard 定义名称
配置好之后的Grafana面板如下:
接下来只需要将定义好的面板的json数据配置信息,cp到greatadm的自定义监控项中,粘贴进去即可。
4、完成自定义监控面板
拷贝当前配置完成的Grafana面板的json数据,到greatadm自定义面板页面,选择【Edit】
点击【配置的齿轮图标】
选择【JSON Model】--全选--复制即可
点击GreatADM的【监控告警】---【自定义监控】--【新增监控面板】--粘贴拷贝的json文本
提交即可看到自定义的监控面板了。
同样的方式配置slow_queries的增长趋势,方法和主机监控的相同,这里就不在重复介绍了。整体效果如下2个面板针对不同的监控项做定制。
但此时有人问了,如何将面板都配置在同一页面中呢?
5、多个面板如何配置在同一页面
如果将多个面板如何配置在同一页面中展示呢,比如将慢日志增长趋势的和主机根空间配置在一起。接下来继续看。 选择 【add panel】--添加新的面板
将慢查询增长趋势,正常配置进去
调整--【选项】--【自定义】--【{{address}}:{{port}}:{{name}}】对应【数据库实例IP:端口:实例名】,配置方法完全一直。
最终在GreatADM页面点击【保存】之后,配置效果如下
验证监控效果; 慢查询增长通过:select sleep(10);select sleep(10);select sleep(10)
; 增加3条慢查询记录,从9条增加到12条。
磁盘空间使用dd 命令,临时创建1个10G的大文件,看根空间的使用率变化,从50%增长到55%
[root@gip /]# dd if=/dev/zero of=/test_root_space bs=1024M count=10
增长趋势变化可直观的查看到,与实际数据库和主机的值匹配。表示监控项是有效可用可直观观察到变化。
三、自定义监控的使用场景和意义
为什么需要自定义监控功能解决了用户和dba现场维护数据库时的几个诉求,以及提供基于业务可定制监控的途径。其意义如下:
1、个性化监控:不同类型的实例或组件需要有不同的视角,但管理平台监控固化,而自定义监控解决了应对多样化的监控需求。自定义监控面板允许管理员选择所需的监控指标和图表,根据自己的实际需求来展示重要的数据库运行数据,提高信息关注度和有效性。
2、重点监控:针对特定的业务需求,管理员可以将自定义面板中的监控指标和图表设置为关注重点,确保数据库的关键功能和性能得到优先监控。
3、运行趋势监控:数据库管理平台自定义监控面板能够提高数据的可视化程度。使数据库性能和健康状况更容易理解和分析。通过设置预警和警报规则,自定义面板有助于及时发现潜在问题,并采取措施进行干预,确保数据库的稳定运行。 这也是GreatADM再结合诸多业务的实际运维场景,紧贴用户实际需求开发的产品,真正做到易用,好用,可灵活配置,解决实际问题为目的,为数据库的平稳运行保驾护航。
Enjoy GreatSQL :)
关于 GreatSQL
GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。
相关链接: GreatSQL社区 Gitee GitHub Bilibili
GreatSQL社区:
社区有奖建议反馈: https://greatsql.cn/thread-54-1-1.html
社区博客有奖征稿详情: https://greatsql.cn/thread-100-1-1.html
(对文章有疑问或者有独到见解都可以去社区官网提出或分享哦~)
技术交流群:
微信&QQ群:
QQ群:533341697
微信群:添加GreatSQL社区助手(微信号:wanlidbc
)好友,待社区助手拉您进群。
相关文章:
探索GreatADM:如何快速定义监控
引文 在数据库运维过程中,所使用的运维管理平台是否存在这样的问题: 1、默认监控粒度不够,业务需要更细颗粒度的监控数据。2、平台默认的监控命令不适合,需要调整阈值量身定制监控策略。3、不同类型的实例或组件需要有不同的监控重点,但管理平台监控固…...
C# 参数名加冒号,可以打乱参数顺序
今天看到Python有这种语法,参数名后面跟着等号写参数,联想到前几天用到的Serilog,好像有个参数名加冒号的写法,搜索了一下,果真有这种用法。 函数特别大的时候,用这种方法很直观,而且参数可以打…...
AVL树 模拟实现(插入)
目录 模拟插入节点 左单旋 右单旋 右左双旋 左右双旋 总结 实现 插入实现 左单旋实现 右单旋实现 右左双旋实现 左右双旋实现 AVL树 模拟实现(插入) AVL 树,是高度平衡二叉搜索树,其主要通过旋转来控制其左右子树的高…...
Java面试整理(三)《JavaSE》
反射机制(低) 在我刚开始学Java的时候,大家都很难理解反射这个概念,在实际开发中,虽然都有反射的踪影,但感觉自己又能理解是的。反射机制是指在程序运行时,对任意一个类都能获取其所有属性和方法,并且对任意一个对象都能调用其任意一个方法。 反射的步骤如下: 获取想要…...
LeetCode 1282. Group the People Given the Group Size They Belong To【哈希表】1267
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
Vue2项目练手——通用后台管理项目第八节
Vue2项目练手——通用后台管理项目 菜单权限功能tab.jsLogin.vueCommonAside.vuerouter/index.js 权限管理问题解决router/tab.jsCommonHeader.vuemain.js 菜单权限功能 不同的账号登录,会有不同的菜单权限通过url输入地址来显示页面对于菜单的数据在不同页面之间的…...
leetcode872. 叶子相似的树(java)
叶子相似的树 题目描述递归 题目描述 难度 - 简单 leetcode - 872. 叶子相似的树 请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子,如上图所示,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。 如果…...
【Linux从入门到精通】信号(初识信号 信号的产生)
本篇文章会对Linux下的信号进行详细解释。主要内容是什么是信号、信号的产生、核心转储等问题。希望本篇文章会对你有所帮助。 文章目录 引入 一、初识信号 1、1 生活中的信号 1、2 Linux 下的信号 1、3 信号进程所得的初识结论 二、信号的产生 2、1 用户通过终端输入产生信号 …...
Golang综合项目实战(一)
Golang综合项目实战(一) 01-项目简介02-项目架构、术语、运行结果03-创建并初始化项目04-创建用户模型和错误处理05-创建密码加密工具类06-保存密码之前的hooks07-创建用户名密码验证工具类08-用户数据库操作逻辑09-操作用户service10-创建商品分类模型…...
springmvc 获取项目中的所有请求路径
springboot/springmvc 获取项目中的所有请求路径 1. 编写业务代码 Autowiredprivate WebApplicationContext applicationContext;GetMapping("/getAllURL")public RestfulResult getAllURL() {// 获取springmvc处理器映射器组件对象 RequestMappingHandlerMapping无…...
【React学习】React高级特性
1. 函数式组件和类组件区别 函数式组件 函数式组件是一种简单的组件定义方式,它是一个以JavaScript函数为基础的组件。 可以把函数式组件理解为纯函数,它的输入为props,输出为JSX。函数式组件没有状态,也没有生命周期。 functio…...
如何在Windows系统搭建filebrowser私人网盘并实现在外网访问本地内网
Windows系统搭建网盘神器filebrowser结合内网穿透实现公网访问 文章目录 Windows系统搭建网盘神器filebrowser结合内网穿透实现公网访问前言1.下载安装File Browser2.启动访问File Browser3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3…...
蓝桥杯官网练习题(算式900)
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小明的作业本上有道思考题: 看下面的算式: (□□□□-□□□□)*□□900其中的小方块代表 0 ~ 9 的数字,这 10 个方块刚好包含了…...
【C++从入门到精通】第1篇:C++基础知识(上)
文章目录 1.1 C语句和程序结构1.1.1 本篇介绍1.1.2 语句1.1.3 函数和主函数1.1.4 解析Hello world1.1.5 语法和语法错误1.1.6 练习时间 1.2 注释1.2.1 单行注释1.2.2 多行注释1.2.3 正确使用注释1.2.4 注释掉代码 1.3 对象和变量1.3.1 数据和值1.3.2 对象和变量1.3.3 变量实例化…...
liunx系统无sudo或管理员权限安装rar解压安装包
liunx无sudo权限安装rar解压安装包 (1)正常liunx安装rar(2)无sudo\root(管理员身份)时如何安装rar (1)正常liunx安装rar 1、下载安装包 WinRAR archiver, a powerful tool to process RAR and ZIP files (r…...
浅析目标检测入门算法:YOLOv1,SSD,YOLOv2,YOLOv3,CenterNet,EfficientDet,YOLOv4
本文致力于让读者对以下这些模型的创新点和设计思想有一个大体的认识,从而知晓YOLOv1到YOLOv4的发展源流和历史演进,进而对目标检测技术有更为宏观和深入的认知。本文讲解的模型包括:YOLOv1,SSD,YOLOv2,YOLOv3,CenterNet,EfficientDet,YOLOv4…...
C++:类和对象(三)
本文主要介绍初始化列表、static成员、友元、内部类、匿名对象、拷贝对象时编译器的优化。 目录 一、再谈构造函数 1.构造函数体赋值 2.初始化列表 3.explicit关键字 二、static成员 1.概念 2.特性 三、友元 1.友元函数 2.友元类 四、内部类 五、匿名对象 六、拷…...
分布式系统第三讲:全局唯一ID实现方案
分布式系统第三讲:全局唯一ID实现方案 本文主要介绍常见的分布式ID生成方式,大致分类的话可以分为两类:一种是类DB型的,根据设置不同起始值和步长来实现趋势递增,需要考虑服务的容错性和可用性; 另一种是类snowflake型…...
Ubuntu之apt-get系列--安装JDK8--方法/教程
原文网址:Ubuntu之apt-get系列--安装JDK8--方法/教程_IT利刃出鞘的博客 简介 本文介绍如何在Ubuntu下安装JDK8。 验证是否安装 可以通过如下命令判断系统是否有安装ssh服务: 命令 java -version 结果 如上所示,表示还没有安装。 查看…...
npm 实现原理
输入 npm install 命令并敲下回车后,会经历如下几个阶段(以 npm 5.5.1 为例): 1.执行工程自身 preinstall 当前 npm 工程如果定义了 preinstall 钩子此时会被执行。 2.确定首层依赖模块 首先需要做的是确定工程中的首层依赖&a…...
国家开放大学 练习题
学前儿童社会教育活动指导 参考试题 一、单项选择题(每小题3分,共30分) 1.《规程》第三十二条规定:“幼儿园应当充分尊重幼儿的个体差异,根据幼儿不同的心理 发展水平,研究有效的活动形式和方法&am…...
Kotlin
函数命名 针对您目前为止学到的 Kotlin 知识,下面给出了一些相关样式指南: 函数名称应采用驼峰式大小写形式,并且应该是动词或动词短语。每个语句都应单独占一行。左花括号应出现在函数开始行的末尾。左花括号前应有一个空格。 变量声明 变…...
和未来合伙人的共同价值观 - 初期
一定要互补,能力板块的互补。 价值观一定要正。 如何管理创业团队? 层级是一个公司逼不得已才要做的,每一个层级的堆积,都会带来一些压力和效率的损失,你一旦把这个团队,变成了十个十个人的团队…...
虚函数表存储的位置(解析C++内存分配及其编译分段)
先上结论:C虚函数表保存在.rdata只读数据段。编译时期由编译器确定虚函数表。虚函数表属于类,类的所有对象共享这个类的虚函数表。 c/c的内存分配 栈(stack):又称堆栈,栈是由编译器自动分配释放…...
JS如何正确销毁 VIDEO 和AUDIO 元素
销毁 VIDEO 元素意味着停止视频的播放,并释放与其相关的所有资源。 一般情况下,我们可以通过调用 VIDEO 元素的 pause() 方法来停止视频播放,然后使用 remove() 方法从 DOM 树中删除元素。 但是,仅仅这样做可能并不能完全卸载 V…...
SpringMvc第四战-【SpringMvc文件上传,下载】
目录 一.SpringMvc文件上传 1.导入依赖(在pom.xml中) 2.配置文件上传解析器(在spring-mvc.xml中) 3.前端标记多功能表单(构建一个jsp界面来操作) 4.将文件写出流,然后写入服务器 5.配置映…...
一种结合白平衡统计信息和曝光信息的软光敏算法专利学习(专利四)
图像分块: 参见下图,一幅图像大小为5*6(像素),每个像素包含R、G、B三个分量,该图像划分为4个分块,第一分块的大小为3*3像素,第二分块的大小为3*3(像素),第三分块的大小为2*3像素,第四…...
华为数通方向HCIP-DataCom H12-821题库(单选题:301-320)
第301题 某台路由器运行 IS-IS,其输出信息如图所示,下列说法错误的是? [R1]display isis sdb local verboseDatabase information for ISIS(1) Level-1 Link State Database LSPID Seq Num Checksum Holdtime…...
dll文件反编译源代码 C#反编译 dotpeek反编译dll文件后export
目录 背景下载安装dotpeek导入dll文件export导出文件参考 背景 项目合作的时候,使用前人的或者其他部门dll文件直接在机台运行,会出现很多问题,逻辑,效率等等,此时我们可以选择对他们的代码进行反编译和重构ÿ…...
地图结构 | 图解占据栅格地图原理(附Matlab建图实验)
目录 0 专栏介绍1 栅格地图1.1 应用场景1.2 基本概念 2 占据栅格地图2.1 更新模型2.2 截断策略 3 仿真实现3.1 算法流程3.2 Matlab实现 0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索…...
28网站怎么做代理/腾讯广点通
计算几何中长遇到的问题:判断特定点是否在平面多边形内部。向量叉积是一种方法,用于凸多边形。【优角:角度值大于180度小于360度。凸多边形:沿着多边形的一边做一条直线,如果剩下所有的部分都在直线的同侧,…...
织梦cms 做视频网站/深圳产品网络推广
项目引入vue-i18n实现国际化多语言,vue-i18n包 自行下载,放到libs目录下,在main.js中引入 //main.js import Vue from vue import App from ./App //多语言引入 import VueI18n from ./libs/vue-i18n import en from ./common/js/en.js//英文…...
扬中市做网站/免费推广产品的网站
忽然之间,美国食品药物管理局(以下简称FDA)成了AI医疗亲密无间的好朋友和坚定的支持者。 2018年上半年,FDA相继批准癫痫监测与警报AI手表Embrace、AI临床监测平台Wave、脑卒中护理软件Viz.ai、自闭症筛查AI软件Cognoa以及血糖预测…...
网站模板的缺点/免费网页设计制作网站
ShareSDK; 友盟; 百度分享; //支付宝支付 1,seller id: 2,partner id: 3,加密文件(公钥、私钥) 4,下载SDK(网页版、无线版--支付宝论坛) 5,scheme…...
信息化网站建设的请示/b站软件推广大全
具有相同名字的object和class,分别为伴生对象和伴生类 1 class ApplyTest { //伴生类 2 3 } 4 5 object ApplyTest { //伴生对象 6 7 } 补充代码: object ApplyApp {def main(args: Array[String]): Unit {var c ApplyTest() // >object.apply()c() …...
企业品牌网站建设注意事项/最新黑帽seo教程
在上一篇中,我们基本已经把整个框架都搭建出来了,下面进行代码重构一下。 思路: 导航按钮,按下时,会变灰,那是系统自带了,通过自定义UIButton,实现按下按钮立即切换效果。MJTabBarController管得…...