Prometheus入门 | Opensource.com

栏目: 数据库 · 发布时间: 5年前

内容简介:Prometheus是一个功能强大,可扩展,轻量级,易于使用和部署的监视工具,对于每个系统管理员和开发人员来说都是必不可少的。出于这些原因和其他原因,许多公司正在将Prometheus作为其基础设施的一部分。本文将学习安装和编写Prometheus普罗米修斯监控和警报系统的查询。Prometheus是

Prometheus是一个功能强大,可扩展,轻量级,易于使用和部署的监视工具,对于每个系统管理员和开发人员来说都是必不可少的。出于这些原因和其他原因,许多公司正在将Prometheus作为其基础设施的一部分。本文将学习安装和编写Prometheus普罗米修斯监控和警报系统的查询。

Prometheus 是一个开源监控和警报系统,可直接从目标主机上运行的代理程序中删除指标,并将收集的样本集中存储在其服务器上。度量也可以使用像插件collectd_exporter进行推送, -尽管这不是Promethius的默认行为,它可能在某些环境中有用:比如主机在防火墙后或由安全策略禁止端口访问。

Prometheus是 Cloud Native Computing Foundation的 一个项目,它使用联合模型进行扩展,该模型使一个Prometheus服务器能够抓取另一个Prometheus服务器。这允许创建分层拓扑,其中中央系统或更高级别的Prometheus服务器可以抓取已从下级实例收集的聚合数据。

除Prometheus服务器外,其最常见的组件是 Alertmanager 及其exporters。

警报规则可以在Prometheus中创建,并配置为向Alertmanager发送自定义警报。然后,Alertmanager处理和处理这些警报,包括通过电子邮件或第三方服务(如 PagerDuty) 等不同机制发送通知。

Prometheus的exporters可以是库包,流程,设备或任何其他公开Prometheus将要删除的指标的东西。这些指标可在端点/指标处获得,这使得Prometheus可以直接抓取它们而无需代理。本文中的教程使用  node_exporter来公开目标主机的硬件和操作系统指标。exporters的输出是明文和高度可读的,这是Prometheus的优势之一。

此外,您可以将 Grafana 配置为使用Prometheus作为后端来提供数据可视化和仪表板功能。

理解Prometheus的配置文件

控制抓取时间间隔的粒度在配置文件中定义为scrape_interval参数,默认情况下设置为60秒。

需要为scrape_configs部分中的每个scrape作业设置目标。每个作业都有自己的名称和一组标签,可以帮助您过滤,分类并更轻松地识别目标。一项工作可以有很多目标。

安装Prometheus

在本教程中,为简单起见,我们将使用 docker 安装Prometheus服务器和node_exporter。Docker应该已经在您的系统上正确安装和配置。

在开始之前,在工作目录中创建Prometheus配置文件prometheus.yml,如下所示:

global:
  scrape_interval:15s 
  evaluation_interval:15s 

scrape_configs:
  - job_name:'prometheus'<b>static</b>_configs 

        :
        - targets:['localhost:9090'] 

  - job_name:'webservers'<b>static</b>_configs 

        :
        - targets:['<node exporter node IP>:9100' ]

通过运行以下命令启动与Docker的Prometheus:

$ sudo docker run -d -p 9090:9090 -v 
/path/to/prometheus.yml:/etc/prometheus/prometheus.yml 
prom / prometheus

默认情况下,Prometheus服务器将使用端口9090.如果此端口已在使用,您可以通过在末尾添加参数--web.listen-address =“<IP of machine>:<port>”来更改它。

在要监视的计算机中,使用以下命令下载并运行node_exporter容器:

$ sudo docker run -d -v <font>"/proc:/host/proc"</font><font> -v </font><font>"/sys:/host/sys"</font><font> -v 
</font><font>"/:/rootfs"</font><font> --net=</font><font>"host"</font><font> prom/node-exporter --path.procfs 
/host/proc --path.sysfs /host/sys --collector.filesystem.ignored-
mount-points </font><font>"^/(sys|proc|dev|host|etc)($|/)"</font><font>
</font>

出于学习练习的目的,您可以在同一台计算机上安装node_exporter和Prometheus。请注意,在生产中在Docker下运行node_exporter并不明智- 这仅用于测试目的。

要验证node_exporter是否正在运行,请打开浏览器并导航到http:// <Node of node exporter host>:9100 / metrics。将显示收集的所有指标; 这些是Prometheus将要采取的相同指标。

要验证Prometheus服务器安装,请打开浏览器并导航到 http://localhost:9090

您应该看到Prometheus界面。单击Status,然后单击Targets。在状态下,您应该看到您的机器列为  UP。

使用Prometheus查询

现在是时候熟悉 PromQL ,Prometheus的查询语法及其图形化Web界面。在Prometheus服务器上转到 http:// localhost:9090 / graph 。您将看到一个查询编辑器和两个选项卡:Graph和Console。

Prometheus将所有数据存储为时间序列,使用度量标准名称标识每个数据。例如,度量标准node_filesystem_avail_bytes显示可用的文件系统空间。度量标准的名称可以在表达式框中使用,以选择具有此名称的所有时间序列并生成即时向量。如果需要,可以使用选择器和标签(一组键值对)过滤这些时间序列 - 例如:

node_filesystem_avail_bytes{fstype=<font>"ext4"</font><font>}
</font>

过滤时,您可以匹配“完全相等”(=),“不等于”(!=),“正则表达式匹配”(=〜)和“不要正则表达式匹配”(!〜)。以下示例说明了这一点:

要过滤node_filesystem_avail_bytes以显示ext4和XFS文件系统:

node_filesystem_avail_bytes{fstype=~"ext4|xfs"}

要排除匹配:

node_filesystem_avail_bytes{fstype!="xfs"}

您还可以使用方括号从当前时间返回一系列样本。您可以使用s表示秒,m表示分钟,h表示小时,d表示天,w表示数周,y表示年。使用时间范围时,返回的向量将是范围向量。

例如,以下命令生成从五分钟到现在的样本:

node_memory_MemAvailable_bytes[5m]

Prometheus还包括允许高级查询的功能,例如:

100 * (1 - avg by(instance)(irate(node_cpu_seconds_total{job='webservers',mode='idle'}[5m])))

请注意标签如何用于过滤作业和模式。度量node_cpu_seconds_total返回一个计数器,irate ()函数根据范围间隔的最后两个数据点计算每秒的变化率(意味着该范围可以小于五分钟)。要计算总体CPU使用率,可以使用node_cpu_seconds_total指标的空闲模式。处理器的空闲百分比与繁忙的处理器相反,因此从1中减去irate值。要使其为百分比,请将其乘以100。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

图解深度学习

图解深度学习

[日] 山下隆义 / 张弥 / 人民邮电出版社 / 2018-5 / 59.00元

本书从深度学习的发展历程讲起,以丰富的图例从理论和实践两个层面介绍了深度学习的各种方法,以及深度学习在图像识别等领域的应用案例。内容涉及神经网络、卷积神经网络、受限玻尔兹曼机、自编码器、泛化能力的提高等。此外,还介绍了包括Theano、Pylearn2、Caffe、DIGITS、Chainer 和TensorFlow 在内的深度学习工具的安装和使用方法。 本书图例丰富,清晰直观,适合所有对深......一起来看看 《图解深度学习》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具