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。


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

查看所有标签

猜你喜欢:

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

Operating System Algorithms

Operating System Algorithms

Nathan Adams、Elisha Chirchir / CreateSpace Independent Publishing Platform / 2017-4-21 / USD 39.15

Operating System Algorithms will walk you through in depth examples of algorithms that you would find in an operating system. Selected algorithms include process and disk scheduling.一起来看看 《Operating System Algorithms》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具