探索 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、磁盘用量等,可以发现数据库的性能瓶颈,及时进行优化。
![](https://static001.geekbang.org/infoq/26/267c22d10c8347e580305d066e2da128.png)
针对监控采集,DBA 在分析判断问题时,也可清晰了解到监控使用的 SQL 命令是什么,方法是否和自己的使用的 SQL 相同等。
![](https://static001.geekbang.org/infoq/96/96c1ca2ec38252a77b1e6ad390ce8b12.png)
如果上面的监控指标,或者面板不是你想要的,接下来我们就详细看下 GreatADM 如何自定义业务中,或者 DBA 想要的监控项,和监控面板的配置。
二、如何自定义 GreatADM 的监控面板
配置整体步骤如下:
a、添加监控采集指标,编辑采集命令
Demo1:只监控 Linux 根空间用量
Demo2:监控慢日志累计增长量
b、检查采集器是否有效
c、配置监控面板
d、自定义监控完成
e、多个面板配置在同一页面
1、添加空间采集项
Demo1、【如何增加主机自定义监控项---独立监控 linux 根空间用量】
针对以下选项:填写采集组名称:host_root 采集频率:300s 采集超时:5s 采集组默认是否启用:启用添加到哪个类型数据库架构:paxos 高可用复制
![](https://static001.geekbang.org/infoq/b1/b14ed247677c6c94cc74fe323515a63a.png)
采集目标:数据库主机选择任一节点:hostname 运行 shell 采集命令:df -Th|grep root|awk -F' ' '{print $6}'|awk -F'%' '{print $1}'
采集命令注意:监控主机,则采集语句为 shell 命令,目标选择主机;监控数据库,则采集语句为 SQL 命令,目标选择数据库。另外对应的采集器返回的结果只允许是"单项结果值",如果存在多列,多行结果,对应的采集器会报错,并且无法正常采集。
![](https://static001.geekbang.org/infoq/ab/ab8571dfb79d0ec2825cb510ba2dd3f9.png)
采集器添加完成之后,信息如下
![](https://static001.geekbang.org/infoq/e5/e50b1479a5013bdb35a33b90badaf545.png)
查看对应的采集命令
![](https://static001.geekbang.org/infoq/1c/1cc55430e6cf81e23e4c476e6b6d8da8.png)
Demo2、【如何增加数据库自定义监控项---数据库慢日志增长趋势】
针对以下选项配置方法同上:填写采集组名称:slow_queries 采集频率:5s 采集超时:5s 采集组默认是否启用:启用添加到哪个类型数据库架构:paxos 高可用复制
![](https://static001.geekbang.org/infoq/f9/f9e7c2b0a4f1ccca42d3a2421f21d037.png)
采集目标:数据库实例选择任一实例节点: 选择数据库名:paxos_600 实例节点:database_1 运行 SQL 采集命令:select variable_value from performance_schema.global_status where variable_name='slow_queries'
![](https://static001.geekbang.org/infoq/3b/3b895f3f3eec4d7a0b90b25c999e5b9b.png)
提交并查看监控项信息
![](https://static001.geekbang.org/infoq/30/301ba713709d687f58f63c3bfb76dc32.png)
使用的 SQL 语句
![](https://static001.geekbang.org/infoq/8b/8b50fa0792dfadaac6f335a9d6370cf9.png)
添加采集项的整体配置流程可以总结为:
1 选择类型
2 选择主机/数据库
3 采集命令
4 运行采集命令
5 提交并检查
2、检查新增采集项是否有效
选择【监控告警】--子项【查询】来验证新增加的采集项是否可采集到数据,以及前端绘图是否正常
![](https://static001.geekbang.org/infoq/93/93b987fbaea801a5bad992550b392ccf.png)
点击【使用查询】可看到对应的 graph 的绘制图,点击【检查】,可具体看到采集项【统计数据】,如下共采集了 482 行。当前因为我选择了 2 台主机的,因截图遮展示框盖住了另外一台的绘图。
![](https://static001.geekbang.org/infoq/76/760e6e0df242538175ba6f769bf22cd3.png)
具体【数据】可查看到时序时间对应的主机采集的磁盘数值。
![](https://static001.geekbang.org/infoq/87/87f727c0ad30f64180f2f40ebd6c395d.png)
登录主机和实际主机的磁盘根空间对比查看
![](https://static001.geekbang.org/infoq/1a/1af7b7b2a6dd766a5a0f8bd8622416be.png)
确认对应的采集数据可以正常,无误,为可用状态。(数据库的采集项和此检查一致,这里就不在赘述了)。 接下来就可以配置 grafana 面板了。
3、配置监控面板
登录 GreatADM 的http://172.17.139.50/graph/login
可直接跳转到 GreatADM 集成 Grafana 面板配置页,默认账号为 admin,密码为 GreatADM 内置的初始密码。
![](https://static001.geekbang.org/infoq/e1/e1823fe70507ed5810d0f74130a478dd.png)
选择【+】 Dashboard--添加新的【panel】
![](https://static001.geekbang.org/infoq/96/9624e2643e34849bcf4f52c47a27f3e1.png)
在这里 Data sorce 选择【监控】
![](https://static001.geekbang.org/infoq/0a/0a0d052ee153ae3332e540f656ed9db3.png)
点击【指标浏览器】--搜索栏搜索采集项名称【host_root】--匹配到【node_ext_host_root_demo】--自动匹配【address 标签】展示可监控的主机 IP 列表
![](https://static001.geekbang.org/infoq/a5/a5dcfa6cde3af2c7d8b778ce24d2a699.png)
选择要监控的主机【IP】--点击【使用查询】--可正常绘制监控图 调整横坐标轴的标题 title【主机 "/" 根空间使用率】和纵坐标的 lable 描述【磁盘空间使用率(%)】
![](https://static001.geekbang.org/infoq/63/6324200ad6077d68ec944e86f92c7b9b.png)
下一步针对绘图线的格式调整,点击【选项】--【图例】--【自定义(提供命名模板)】
![](https://static001.geekbang.org/infoq/27/271bbe8e2a2628c5e3227106de48057e.png)
将{{label_name}}修改为{{address}}之后,对应的主机信息就完整了
![](https://static001.geekbang.org/infoq/5d/5da126727770f7bb21e99a1acf644fe4.png)
保存配置,并为 Dashboard 定义名称
![](https://static001.geekbang.org/infoq/19/1957729c85bca68c01034968c9221020.png)
配置好之后的 Grafana 面板如下:
![](https://static001.geekbang.org/infoq/f3/f3285d259aa6481b62db673bf1063899.png)
接下来只需要将定义好的面板的 json 数据配置信息,cp 到 greatadm 的自定义监控项中,粘贴进去即可。
4、完成自定义监控面板
拷贝当前配置完成的 Grafana 面板的 json 数据,到 greatadm 自定义面板页面,选择【Edit】
![](https://static001.geekbang.org/infoq/54/54143724ee4971f12adf5aeecaecdcb4.png)
点击【配置的齿轮图标】
![](https://static001.geekbang.org/infoq/7c/7cf5f0ab399b998dd8694d588f8e621d.png)
选择【JSON Model】--全选--复制即可
![](https://static001.geekbang.org/infoq/a3/a30b60503a95da52c40231e6791ea328.png)
点击 GreatADM 的【监控告警】---【自定义监控】--【新增监控面板】--粘贴拷贝的 json 文本
![](https://static001.geekbang.org/infoq/f8/f83a0b1c4ea9e5c0fb0ae0e63c8d4466.png)
提交即可看到自定义的监控面板了。
![](https://static001.geekbang.org/infoq/a1/a14917c2ac7d640b4b8c44fd513a6876.png)
同样的方式配置 slow_queries 的增长趋势,方法和主机监控的相同,这里就不在重复介绍了。整体效果如下 2 个面板针对不同的监控项做定制。
![](https://static001.geekbang.org/infoq/98/98c6accee0705b5a0b31d9935af22f27.png)
但此时有人问了,如何将面板都配置在同一页面中呢?
5、多个面板如何配置在同一页面
如果将多个面板如何配置在同一页面中展示呢,比如将慢日志增长趋势的和主机根空间配置在一起。接下来继续看。 选择 【add panel】--添加新的面板
![](https://static001.geekbang.org/infoq/98/9811a9bf8b91711c420f962da9b5968a.png)
将慢查询增长趋势,正常配置进去
![](https://static001.geekbang.org/infoq/da/da0443d6723dd14c3132fdc721529a5e.png)
调整--【选项】--【自定义】--【{{address}}:{{port}}:{{name}}】对应【数据库实例 IP:端口:实例名】,配置方法完全一直。
![](https://static001.geekbang.org/infoq/8d/8d03758b36d71669c2d769e16bd9ce28.png)
最终在 GreatADM 页面点击【保存】之后,配置效果如下
![](https://static001.geekbang.org/infoq/2b/2b5145710f0bc32bb1442be33921c8ff.png)
验证监控效果; 慢查询增长通过:select sleep(10);select sleep(10);select sleep(10)
; 增加 3 条慢查询记录,从 9 条增加到 12 条。
![](https://static001.geekbang.org/infoq/29/290a80cc1ce299a721713153b10018ec.png)
磁盘空间使用 dd 命令,临时创建 1 个 10G 的大文件,看根空间的使用率变化,从 50%增长到 55%
![](https://static001.geekbang.org/infoq/4b/4b9d87540d2ea604f32a69eefb610cd0.png)
增长趋势变化可直观的查看到,与实际数据库和主机的值匹配。表示监控项是有效可用可直观观察到变化。
![](https://static001.geekbang.org/infoq/f0/f028731cae6acf0635385b2f819748bf.png)
三、自定义监控的使用场景和意义
为什么需要自定义监控功能解决了用户和 dba 现场维护数据库时的几个诉求,以及提供基于业务可定制监控的途径。其意义如下:
1、个性化监控:不同类型的实例或组件需要有不同的视角,但管理平台监控固化,而自定义监控解决了应对多样化的监控需求。自定义监控面板允许管理员选择所需的监控指标和图表,根据自己的实际需求来展示重要的数据库运行数据,提高信息关注度和有效性。
2、重点监控:针对特定的业务需求,管理员可以将自定义面板中的监控指标和图表设置为关注重点,确保数据库的关键功能和性能得到优先监控。
3、运行趋势监控:数据库管理平台自定义监控面板能够提高数据的可视化程度。使数据库性能和健康状况更容易理解和分析。通过设置预警和警报规则,自定义面板有助于及时发现潜在问题,并采取措施进行干预,确保数据库的稳定运行。 这也是 GreatADM 再结合诸多业务的实际运维场景,紧贴用户实际需求开发的产品,真正做到易用,好用,可灵活配置,解决实际问题为目的,为数据库的平稳运行保驾护航。
版权声明: 本文为 InfoQ 作者【GreatSQL】的原创文章。
原文链接:【http://xie.infoq.cn/article/823b60a1849b7e704ce57435e】。文章转载请联系作者。
评论