如何快速将incubator-dolphinscheduler接入Prometheus和Grafana监控?
摘要:一、prometheus和grafana 简介 -> 关注清哥聊技术公众号,了解更多技术文章 Prometheus 是继 Kubernetes 之后的第二个 CNCF “毕业” 项目,其监控理
一、prometheus和grafana 简介->关注清哥聊技术公众号,了解更多技术文章
Prometheus 是继 Kubernetes 之后的第二个 CNCF “毕业” 项目,其监控理念传承于由谷歌研发的一款内部监控软件,现主要开发语言为 go,代码目前已经托管在 github 中,遵从 apache 2.0 开源协议,受欢迎的程度非常高,github 地址为:https://github.com/prometheus/。
监控通常可以分为白盒监控和黑盒监控。
白盒监控:一般是指通过监控应用程序内部的运行状态及相应的指标来判断可能会发生的问题,从而提前做出预判或者对应用程序进行相关优化。
黑盒监控:监控系统或服务的运行状态,比如报错、超时等,在发生异常时做出相应处理措施。
prometheus的优势:
易于管理,通俗易懂,prometheus在使用时只有一个二进制的执行文件,安装非常简单,不依赖于任何别的应用。
能够轻易获取服务内部状态,比如jvm等。
高效灵活的查询语句,每秒可以处理百万级的监控指标
支持本地和远程存储,支持时序数据库
采用http协议,默认pull模式拉取数据,也可以通过中间网关push数据(需要安装push gateway)
支持自动发现(通过服务的方式进行自动发现待监控的目标,可以通过Consul实现服务发现)
可扩展,支持用户自定义开发
易集成,可以和grafana 快速集成。
备注:此架构图摘自prometheus官方网站
prometheus根据配置定时可以去拉取各个节点的数据,默认使用的拉取方式是pull,当然也可以支持使用pushgateway提供的push方式去获取各个监控节点的数据。将获取到的数据存入TSDB(时序型数据库),pushgateway 就是 外部的应用可以将监控的数据主动推送给pushgateway,然后prometheus 自动从pushgateway进行拉取。此时prometheus已经获取到了监控数据,可以使用内置的PromQL进行查询。它的报警功能使用Alertmanager提供,Alertmanager是prometheus的告警管理和发送报警的一个组件。prometheus原生的图标功能由于过于简单,尤其是可视化的界面比较简单,因此建议将prometheus数据接入grafana,由grafana进行统一管理。
Grafana是开源的可视化监控、数据分析利器,支持多种数据库类型和丰富的套件,目前已支持超过50多个数据源,50多个面板,17个应用程序和1700多个不同的仪表图。(本文作者:张永清,转载请注明来源博客园:https://www.cnblogs.com/laoqing/p/14538635.html)
拥有快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方提供的库中包含了丰富的仪表盘插件,比如甘特图、热图、折线图、各种图表等多种展示方式。
支持许多不同的时间序列数据(数据源)存储后端。每个数据源都有一个特定查询编辑器。官方支持数据源:Graphite、infloxdb、opensdb、prometheus、elasticsearch、cloudwatch,mysql ,zabbix等。每个数据源的查询语言和功能有较大差异。可以将来自多个数据源的数据组合到一个仪表板上,但每个面板都要绑定到指定的数据源中,如下图所示。
告警允许将规则附加到仪表板面板上。保存仪表板时会将警报规则提取到单独的警报规则存储中,并安排它们进行评估。报警消息还能支持钉钉、邮箱等推送至移动端。
支持集成丰富多样的插件,也可以支持自定义的插件开发。
