tx 工作的后端开发仔,分享后端技术、机器学习、数据结构与算法、计算机根底、程序员面试等话题。欢送关注公众号“任冬学编程”
基于 Grafana 实现自定义监控
前言
因为本文内容较细较杂,所以先将文章构造目录放在后面,不便大家理清思路,同时这也是题主第一次写 KM 文章,如文中存在有余不当之处,心愿大家批评指正,谢谢!
<center> 文章构造目录 </center>
1、背景
1.1、穿插监控
监控是整个产品生命周期十分重要的一环,运维关注硬件和根底监控,研发关注各类中间件和应用层的监控,产品关注外围业务指标的监控。对于数据上报、传输、存储、利用全链路进行自监控,能够实现实时采集监控数据、预知故障和告警等,然而如果自监控挂掉了又该怎么发现呢,这就须要引入内部穿插监控,监控自监控的生命周期。
1.2、监控工具选型
正所谓「无监控,不运维」,监控零碎的位置显而易见。对于监控零碎的选型和一些监控根底能够参考大佬的文章监控零碎选型。对于题主而言,穿插监控零碎须要做到ES 数据源导入、实时界面可视化、触发阈值后及时多形式告警,尽管 ELK 三剑客的 Kibana 也能够可视化,然而不太好用 QAQ。
Grafana 是一个跨平台的开源可视化工具,通过配置数据源的而形式对数据进行简单语句的查问和展现,反对 MySQL、Elasticsearch 等多达 14 种数据源并且大部分数据源反对配置告警。所以最初抉择了操作不便简略的 grafana!
小结:
- 内部巡检 + 外部自检,穿插监控能够避免外部监控挂掉无处查问监控数据的问题,加强监控的纵深和层级。
- 监控图表立体化,依据关联性对图表分组和并建设层级关系,监控图表的聚合、分组、立体化对疾速定位问题本源是十分要害的。
- Grafana 自定义监控配置较为不便简略
2、实操
下面讲到穿插监控工具选型定为 grafana,须要实现 ES 数据源导入、实时界面可视化、触发阈值后多形式告警 等需要,上面进入实操阶段。
2.1、配置 DataSource
次要是对数据源进行相干的设置,生成无效的数据源
<center> 抉择数据源类型 </center>
<center> 数据源相干配置 </center>
2.2、配置 Dashboard
在配置好所应用的数据源之后,即可新增配置本人的面板。面板也存在多种:
<center> 可视化形式 </center>
这里选取 graph 为例,如下图所示,新增或配置仪表盘。右上角的红框中示意:新建、标星、分享、保留、设置、查问模式、时间段、放大(针对时间段进行放宽,即小时间段换成了大时间段)、刷新等
<center> 界面总览 </center>
<center>General 界面 </center>
2.3、配置 Variables
这里进行模板变量的设置,次要是为了不便后续界面查问,搭配灵便下拉框的配置形式,进行监控图表的自定义聚合,疾速定位问题。
<center>Variables 设置 </center>
对于 Query 语句的设置,参考官网文档的配置形式阐明:
Query | 形容 |
---|---|
{“find”:“fields”,“type”:“keyword”} | 返回索引类型的字段名称列表keyword 。 |
{“find”:“terms”,“field”:“@ hostname”,“size”:1000} | 应用术语聚合返回字段的值列表。查问将用户以后仪表板工夫范畴作为查问的工夫范畴。 |
{“find”:“terms”,“field”:“@ hostname”,“query”:'<lucene query=”” style=”box-sizing: border-box;”>“}</lucene> | 应用 term aggregation&和指定的 lucene 查问过滤器返回字段的值列表。查问将应用以后仪表板工夫范畴作为查问的工夫范畴。 |
在进行了无效的变量设置后,能够保留查看预览成果
<center> 保留 Variables 设置 </center>
<center>Variables 配置成果预览 </center>
留神下面仅仅是实现了变量的配置,在数据查问中下拉框并未起作用,须要应用 query 语句对变量进行绑定能力失效!!
<center>Variables 绑定失效 </center>
2.4、对接星云告警
星云告警管理系统,是一个面向告警的通用治理计划,提供了告警接入了上报、屏蔽、订阅、收敛、复原、查问、告诉(反对电话、微信、企业微信、邮件小程序)、降级、自动化解决、统计分析等治理能力;通过对告警数据的结构化定义,丰盛凋谢的 API,零碎具备高度的可定制化能力;同时无缝对接腾讯云星云工单零碎、值班零碎、流程引擎,具备了弱小的自动化解决能力;目前次要服务于腾讯云根底 IAAS 运维场景,已接入云绝大部分根底告警。
星云告警管理系统地址:告警查问
2.4.1、相干配置
- 第一步:查看是否曾经存在星云告警 channel,如果没有则在 Alerting – Notification channels 新增 channel。
留神:该 channel 只需在第一次应用该接口时配置,配置一次即可,如果曾经存在星云告警,则间接进行第二步。
- 第二步:配置告警条件,抉择 Panel 页面右边的 Alert 选项,进行告警条件的配置。
<center> 模板变量无奈配置告警 </center>
留神这里会提醒模板变量无奈配置告警,题主给出两种解决方案:
1、多查问计划:下图中 A 查问配置了模板变量无奈配置告警,能够对新增的查问 B 不应用模板变量配置 query 语句,从而进行配置告警。(留神将 B 视图屏蔽,避免出现视图重叠问题)
<center>add Query</center>
2、双视图计划:能够设置双视图,一个用来 monitor 用来监控,另外一个视图进行 Alert 告警,其余配置和第一种计划雷同。
两种形式区别不是很大,多视图可能更不便直观一点。
<center> 双视图配置 </center>
解决模板变量问题后,回归正题,进行告警条件的配置
<center> 配置告警条件 </center>
- 第三步:配置告警信息
<center> 配置告警信息 </center>
- 第四步:星云新增订阅告警信息
<center> 星云订阅告警信息 </center>
2.4.2、测试告警
- 告警触发测试:在实现相干告警条件和规定的配置后,能够进行测告警测试,判断是否会进行触发。
<center> 告警触发测试 </center>
- 开启告警规定:如果以上操作都没有呈现问题,那么祝贺你能够启用告警规定,进行正式的监控啦!!
<center> 开启告警规定 </center>
- 告警成果:
<center> 邮件告警 </center>
<center>rtx 告警 </center>
- 告警历史查问:Grafana 同样能够查看告警历史,
<center> 告警历史查问 </center>
- Dashboard 状态显示:Dashboard 界面也会有红绿不同色彩的线条揭示不同状态
<center> 状态显示 </center>
3、References
本文次要参考的文章如下,感激这些文章的作者。