Prometheus与Grafana集成

Prometheus与Grafana集成

Prometheus是一个基于指标的开源监视系统。它通过在度量标准端点上发送HTTP请求来从服务和主机收集数据。然后将结果存储在时间序列数据库中,并使其可用于分析和警报。

技术开发 编程 技术框架 技术发展

 

Prometheus与Grafana集成

Prometheus是一个基于指标的开源监视系统。它通过在度量标准端点上发送HTTP请求来从服务和主机收集数据。然后将结果存储在时间序列数据库中,并使其可用于分析和警报。

Prometheus是一个基于指标的开源监视系统。它通过在度量标准端点上发送HTTP请求来从服务和主机收集数据。然后将结果存储在时间序列数据库中,并使其可用于分析和警报。

为什么要监控?

在出现问题时(最好在出现问题之前)启用警报。以便有人可以看一下。它提供了见解,可以分析,调试和解决问题。它使您可以查看随时间变化的趋势/变化。例如,在任何给定时间有多少活动会话。这有助于设计决策和容量规划。监视通常与事件有关。事件可能包括接收HTTP请求,发送响应,从磁盘读取,用户登录。监视系统可能包括概要分析,日志记录,跟踪,指标,警报和可视化。

黑盒与白盒监控,监视分为两个主要类别:

黑盒监控

在黑盒监控中,从外部观察它们是在应用程序或主机级别进行监控。这可能是非常有限的。

白盒监控

白盒监视意味着监视服务的内部。它将公开有关内部组件的状态和性能的数据。

prometheus-2.png

普罗米修斯组件

prometheus-architecture.png

Scraping

Prometheus是基于拉的系统。为了获取指标,Prometheus发送了一个称为scrape的HTTP请求。它根据其配置将碎片发送到目标。

每个目标(静态定义或动态发现)均以规则的时间间隔(刮擦间隔)进行刮擦。每个刮擦都读取/ metrics HTTP端点以获取客户端度量的当前状态,并将这些值保留在Prometheus时间序列数据库中。

Client Lib

要监视服务,您需要在代码中添加检测。有适用于所有流行语言和运行时的客户端库。使用这些库,一旦添加几行代码,您的代码就可以开始发出指标。这称为直接检测。这些库使您可以定义内部指标,也可以通过HTTP端点公开它们。当Prometheus抓取指标HTTP端点时,客户端库会将指标发送到服务器。Prometheus为Go,Java,Python和Ruby提供了官方客户端库。普罗米修斯拥有开放的生态系统。还有社区构建的客户端库,可用于C,PHP,Node.js,C#/.NET以及许多其他客户端库。

Exporters

许多应用程序以非Prometheus格式公开指标。对于这些以及您不拥有或无法访问代码的应用程序,您无法直接添加检测。例如,MySQL,Kafka,JMX,HAProxy和NGINX服务器。在这些情况下,您将使用exporters。

导出器是您与需要度量标准的应用程序一起部署的工具。导出程序的作用就像是应用程序和Prometheus之间的代理。它将接收来自Prometheus服务器的请求,从访问日志,应用程序的错误日志收集数据,将其转换为正确的格式,最后返回到Prometheus服务器。

一些受欢迎的出口商是:

Windows – Windows服务器指标

Node –用于Linux服务器指标

Blackbox – DNS和网站性能指标

JMX –用于基于Java的应用程序指标

一旦对应用程序进行了检测或导出器就位,您需要告诉Prometheus,它们在哪里。这可以使用静态配置来完成。在动态环境中,这不能完成;因此,使用服务发现。

Alerting

普罗米修斯警报包括两个部分–警报规则将警报发送到Alertmanager。然后,警报管理器管理那些警报。它使用许多现成的集成(例如电子邮件,Slack,Hipchat和PagerDuty)发送通知。Alertmanager也可以执行沉默或聚合以减少通知数量。

这是使用Prometheus和Dashboard监视Linux服务器的指南。

使用仪表板可视化

Prometheus有许多API,PromQL查询可使用这些API产生用于可视化的原始数据。

尽管Prometheus包括可用于即席查询的表达式浏览器,但可用的最佳工具是Grafana。Grafana与Prometheus完全集成,可以生产各种仪表板。

您将需要将Prometheus配置为Grafana的数据源。

您可以通过以下方式添加仪表板:

导入社区构建的仪表板

建立自己的

使用预定义的仪表板。

普罗米修斯几乎没有要求。由于它是带有配置文件的单个二进制文件,因此运行起来可能非常简单。它可以处理数千个目标,每秒可以摄取数百万个样本。Prometheus旨在跟踪整个系统,系统的健康状况,行为。

技术开发 编程 技术框架 技术发展