您的位置:

Prometheus监控:安装、配置与查询实战

Prometheus是一款开源的监控告警工具,由于其强大的查询能力和灵活的配置方式,成为了越来越多企业的首选。本文将介绍Prometheus的安装、配置和查询实战,帮助大家更好地了解和使用Prometheus。

一、安装Prometheus

Prometheus可以在官网 https://prometheus.io/download/ 下载最新版本的二进制包。


# 下载Prometheus的tar包
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz

# 解压
tar -zxvf prometheus-2.30.3.linux-amd64.tar.gz

解压后,我们可以看到如下文件:


prometheus-2.30.3.linux-amd64/
  |- prometheus
  |- promtool
  |- console_libraries/
  |  |- ...
  |- consoles/
  |  |- ...

其中,prometheus为Prometheus的可执行文件,console_libraries和consoles为Web页面所需的静态文件。

最后,我们可以通过以下命令启动Prometheus:


./prometheus

默认的情况下,Prometheus会监听在9090端口上。因此,我们可以通过在浏览器中访问 http://localhost:9090 来访问Web管理界面。

二、配置Prometheus

Prometheus的配置文件为prometheus.yml,其默认在启动时会从当前工作目录下加载该文件。配置文件中,可以定义Prometheus需要监控的targets、抓取频率等。

以下是一个prometheus.yml的示例:


global:
  scrape_interval:     5s
  evaluation_interval: 5s

scrape_configs:
  - job_name: 'node'
    static_configs:
            - targets: ['localhost:9100']

其中,global块下定义了全局的抓取频率和查询频率;scrape_configs块定义了Prometheus需要监控的targets。在此示例中,我们仅监控localhost上的node_exporter,其监听在自定义的端口9100上。

配置文件中,我们可以通过多个targets来实现对多个节点的监控。除此之外,Prometheus还支持通过service discovery自动发现targets,具体请参考官方文档。

三、PromQL查询实战

Prometheus提供了强大的PromQL查询语法,可以非常方便地对采集到的监控指标进行查询和分析。

以下是一些常用的PromQL查询实例:

1、获取指定时间范围内的CPU平均使用率:


avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100

该查询通过使用irate函数获取CPU空闲时间的变化率,然后将变化率取平均值并乘以100,得到CPU在指定时间内的平均使用率。

2、获取最近一小时内网卡流量的五分钟平均值:


avg(rate(node_network_receive_bytes_total[5m])) by (device)

该查询通过使用rate函数获取每个网卡的接收流量变化率,然后将变化率取平均值,并按照网卡进行分组,得到最近一小时内每个网卡的五分钟平均接收流量。

3、获取指定时间段内CPU使用率大于80%的节点IP:


topk(10, 100 - avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) if above(100 - 80, by = {instance})

该查询通过使用irate函数获取每个节点的CPU使用率变化率,然后将其反转并平均值,得到CPU使用率。然后筛选出CPU使用率大于80%的节点,最后按照CPU使用率排序并取前10个节点IP。

四、总结

本文对Prometheus的安装、配置和查询实战进行了介绍。希望本文能够帮助读者更好地理解和使用Prometheus。