写点什么

无监控,不运维!深入浅出介绍 ChengYing 监控设计和使用

  • 2023-01-10
    浙江
  • 本文字数:3076 字

    阅读完需:约 10 分钟

无监控,不运维!深入浅出介绍ChengYing监控设计和使用

监控系统俗称「第三只眼」,几乎是我们每天都会打交道的系统,它也一直是 IT 系统中的核心组成部分,负责问题的发现以及辅助性的定位。

ChengYing作为一站式全自动化全生命周期大数据平台运维管家,自然也提供大数据产品的监控服务。这篇文章,将为大家系统性地介绍 ChengYing 监控的设计和使用,带大家进一步了解 ChengYing。

常见监控系统比较

目前市面上主流大众都在用的监控系统主要有 zabbix、openfalcon、prometheus,这三者都有各自适合的使用场景。下面来看下这三种监控系统各自的优缺点。

zabbix

zabbix 属于老牌企业监控解决方案,优点是在企业的基础设施监控场景下提供了非常丰富的采集插件,能够快速建立起企业内部基础设施的监控和基础设施可视化大屏(包括网络的可视化等)。

zabbix 的不足之处在于后端数据库使用了 MySQL 对监控数据进行存储,因此无法满足现在多维度化的告警需求。同时随着时间的推移,监控告警数据激增的瓶颈也会出现,同样的在对接应用层监控缺乏,所以更适合企业底层基础设施的监控。(注:最新版本的数据库替换了 TimescaleDB)

openfalcon

openfalcon 是小米开源的企业级监控解决方案,它整体的架构上吸取了 zabbix 的经验同时也解决了 zabbix 的不足之处,但是社区的活跃性不高。

prometheus

prometheus 是谷歌开源的新一代监控系统,也是契合目前云原生较好的解决方案。优势在于社区活跃度高能推进普适化功能的演进,比如之前只支持 pull 方式,现在 prometheus 自身支持了可靠的 push 的方式推送数据到远端 tsdb 时序数据库中,同时单点的也能支撑起数百万的 metrics 指标数据。

不足之处在于官方不提供高可用的架构,需要自行处理,这些方案在社区中也有很多。

ChengYing 监控设计

ChengYing 平台则是选择了集成 prometheus 这套监控解决方案。其中的主要原因,是这套解决方案是目前主流的方案,使用的人群较多,推广使用上门槛低而且易维护,同时也适合ChengYing平台的容器化部署

下面我们来看下这套监控系统是如何在 ChengYing 平台上进行集成的。

架构设计

首先我们在这套平台的基础上增加了一个dt-alert组件用来对接第三方的告警发送处理,其次我们对 grafana 进行了少量的二次开发,开发的内容主要在于打通ChengYing平台的告警通道和 grafana 上的通道的对接。

整体结构如下:



平台接入好主机和部署好服务后,prometheus 就能通过服务发现的方式完成目标抓取作业的生成获取监控数据。grafana 从 prometheus 中获取指标数据进行展示,同时触发告警将告警内容发到 dtalert 组件中,dtalert 组件将告警信息发往第三方平台上。

监控设计

那么 prometheus 是如何通过服务发现来获取目标抓取作业的信息的?

这里 ChengYing 主要是使用了 prometheus 的「基于文件的服务发现功能」,Prometheus 会按指定的时间计划从这些文件重新加载目标。对于集群我们分为两部分的监控信息,主机和服务。

● 主机

主机的服务发现流程是在主机接入集群的时候,ChengYing会对接入的主机进行初始化操作,该操作会下发 node-exporter,然后将主机的 ip 和 node-exporter 端口作为一个目标作业写入 node_sd_file.yml 文件中。当然用户也能自己指定 exporter 的端口,这个配置已经提取到的 matrix 的配置文件中。

节点接入后生成的信息如下:



● 服务

至于服务同样也是使用基于文件的服务发现方式,那么服务的 exporter 该如何指定和部署呢?

我们在制作产品包的时候就需要把该服务的监控指标给暴露出来,在产品包的 schema.yml 文件中指定该服务的exporter的端口,同时服务也要将 exporter 组件放到产品包中,在启动服务的时候一同启动。如下:




在制作好产品包后,通过 ChengYing 平台去部署该产品包的时候,由于需要对服务进行编排,那么我们就能同时解析出服务暴露的指标端口和服务所部署的目标 ip 地址。

在完成服务部署后,ChengYing 就能将该服务的目标抓取作业写入 service_sd_file.yml 文件中。(要是我们在部署过程中发现我们使用的 exporter 端口发生了改变,可以在部署产品包的时候在页面修改对应的配置,平台最终会以修改的为准)



告警设计

ChengYing在获取了监控信息后,该如何展示这些指标数据以及告警呢?

· 首先需要为该产品包配置专属的仪表盘,在这个仪表盘配置中配置好服务要监控的指标信息及其水位线,然后还需要为该仪表盘增加一些标签,标签的 key-value 为"产品包的名称"和"服务名称",增加这些标签的用处在于通过 ChengYing 页面查看对应服务的仪表盘时能从 grafana 中过滤出来

· 将配置好的仪表盘导入到 ChengYing 上

· 然后我们通过在 ChengYing 上访问服务的时候就能根据产品包名称和服务名称检索到我们指定的仪表盘

对于告警的话,当我们在 ChengYing 上配置好告警通道后,还需要在 grafana 上为服务配置好告警的内容,当 grafana 触发告警水位线的时候,会将定义好的告警内容消息发送到 dtalert 组件上,dtalert 组件处理好消息内容后,再根据通道类型将告警信息发到第三方平台上。



ChengYing 监控告警使用

下面我们来具体看下ChengYing的监控告警具体是怎样使用的。

概览页面的轮播盘配置

我们可以在概览页面上展示需要关注的核心仪表盘的轮播,该功能需要自行配置:

· 登录 ChengYing 平台选择"运维中心"->"概览",然后点击编辑按钮,将会跳转到 grafana 的轮播配置页面,或者通过访问 ChengYing 的地址(http://xxx/grafana/playlists),然后创建需要的轮播仪表盘

· 创建的轮播的设置中,轮播的名称必须填写"DTinsight_index",轮播间隔根据需要填写,然后选择需要轮播的仪表盘,最后点击保存即可

· 刷新概览页面就会展示结果


平台告警通道配置

● 创建告警通道

选择"部署中心"->"告警监控"->"告警",创建告警通道。


● 选择告警通道类型

选择告警通道类型,这里以选择钉钉通道为例,填写相关的信息,需要注意以下两点:

第一点为:"URL"处地址平台会默认填写 dtalert 的地址,这个地址为容器内部通信的域名地址,若使用 host 模式部署,该地址需要手动修改为 dtalert 所在节点的 ip 地址。

第二点为:通知消息模板,这里主要是配置告警的消息模板即配置模式使用的是 grafana 的原生格式,通过 grafana 告警的请求中获取对应的告警名称、消息内容、状态、和链接地址,如下:

告警名称: ${ruleName}

告警信息: ${message}

告警状态: ${state}

告警链接: ${ruleUrl}

而对于“通道配置信息”则是在对接第三方平台的时候需要对接的相关配置,如对接大鱼短信的时候配置其对应的对接身份 id、访问的 key 等信息。



● 发送测试

完成告警通道配置后就可以点击「发送测试」按钮检查通道的正常。



grafana 告警配置

01

"运维中心"->"服务"->"仪表板",选择需要为哪个服务进行告警。


02

编辑仪表盘,添加告警规则。


03

添加告警规则,设置需要告警的水位线,和告警名称。


04

添加告警通道,选择上面创建的告警通道,然后在“Message”里面填写需要自定义的内容,该内容会替换到上面告警模板中的 ${message}变量。


05

查看告警信息。


06

若想在“Message”里面体现告警的节点等相关标签信息,可以在仪表盘编辑页的 Metrics 选择"Query Inspector",查看当前指标数据中带有的标签信息,如下的 metric 的 object 对象内容,然后就可以从这个对象中获取对应的标签,进行完善告警内容。


修改告警“Message”内容如下:




视频课程 &PPT 获取

视频课程:

https://www.bilibili.com/video/BV16g41147NG/?spm_id_from=333.999.0.0

课件获取:

关注公众号“数栈研习社”,后台私信“ChengYing”获得直播课件


想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szinfoq


同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术 qun」,交流最新开源技术信息,qun 号码:30537511,项目地址:https://github.com/DTStack

发布于: 刚刚阅读数: 5
用户头像

还未添加个人签名 2021-05-06 加入

还未添加个人简介

评论

发布
暂无评论
无监控,不运维!深入浅出介绍ChengYing监控设计和使用_袋鼠云数栈DTinsight_InfoQ写作社区