【Prometheus监控 运维必备】一、Prometheus 基础入门

一、Prometheus 简介

1.1 定义与背景

        在当今云原生的时代,监控系统对于保障系统的稳定运行至关重要。Prometheus 作为一款开源的监控和警报工具包,由 SoundCloud 开发,后来成为了 CNCF(云原生计算基金会)的毕业项目,和 Kubernetes 一样,是云原生领域的重要组件。

Prometheus 具有以下显著特点:

  • 多维数据模型:使用时间序列数据,每个时间序列由指标名称和一组键值对标签唯一标识,这使得数据的查询和聚合更加灵活。
  • 强大的查询语言:PromQL(Prometheus Query Language)允许用户对监控数据进行复杂的查询、聚合和分析。
  • 不依赖分布式存储:单个服务器节点是自治的,这简化了系统的部署和管理。
  • 高效的数据采集:通过 HTTP 协议拉取指标数据,并且支持多种数据采集方式,如直接采集、通过 Exporter 采集等。
  • 灵活的告警机制:可以根据自定义的规则触发告警,并通过多种方式通知相关人员。

1.2 应用场景

Prometheus 适用于各种场景,特别是在云原生环境中,如 Kubernetes 集群的监控。它可以监控服务器的硬件指标(如 CPU、内存、磁盘使用率等)、应用程序的性能指标(如请求响应时间、吞吐量等),帮助运维人员及时发现和解决问题。

二、安装与部署

2.1 环境准备

在安装 Prometheus 之前,我们需要准备一个合适的环境。这里以 Linux 系统为例,假设我们使用的是 CentOS 7 系统。

2.2 下载与安装

首先,我们需要从 Prometheus 的官方网站(https://prometheus.io/download/)下载最新版本的 Prometheus。在终端中执行以下命令:

wget https://github.com/prometheus/prometheus/releases/download/v2.41.0/prometheus-2.41.0.linux-amd64.tar.gz

注释:这行命令使用 wget 工具从 GitHub 上下载 Prometheus 的压缩包,版本为 2.41.0,适用于 Linux 64 位系统。

下载完成后,解压压缩包:

tar -zxvf prometheus-2.41.0.linux-amd64.tar.gz

注释:tar 是 Linux 中常用的压缩和解压缩工具,-zxvf 是参数组合,-z 表示处理 gzip 压缩文件,-x 表示解压,-v 表示显示详细信息,-f 后面跟要处理的文件。

进入解压后的目录:

cd prometheus-2.41.0.linux-amd64

2.3 配置 Prometheus

Prometheus 的配置文件是 prometheus.yml,我们可以使用文本编辑器打开它进行配置。以下是一个简单的配置示例:

global:
  scrape_interval: 15s  # 每 15 秒采集一次数据
  evaluation_interval: 15s  # 每 15 秒评估一次告警规则

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']  # 采集 Prometheus 自身的指标

注释

  • global 部分定义了全局的配置,如数据采集间隔和告警规则评估间隔。
  • scrape_configs 部分定义了数据采集的配置,job_name 是采集任务的名称,static_configs 中的 targets 是要采集指标的目标地址。

2.4 启动 Prometheus

在终端中执行以下命令启动 Prometheus:

./prometheus --config.file=prometheus.yml

注释:./prometheus 表示执行当前目录下的 prometheus 可执行文件,--config.file=prometheus.yml 指定使用 prometheus.yml 作为配置文件。

启动成功后,我们可以在浏览器中访问 http://localhost:9090 来查看 Prometheus 的 Web 界面。

三、Exporter 介绍与部署

3.1 Exporter 概述

Exporter 是 Prometheus 生态系统中的重要组成部分,它负责收集特定系统或服务的指标数据,并将其转换为 Prometheus 可以理解的格式。不同的 Exporter 用于收集不同类型的指标,例如 Node Exporter 用于收集服务器的硬件指标,MySQL Exporter 用于收集 MySQL 数据库的指标。

3.2 部署 Node Exporter

Node Exporter 是一个常用的 Exporter,用于收集 Linux 服务器的硬件指标。我们可以从官方网站(Download | Prometheus)下载 Node Exporter:

wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz

注释:这行命令使用 wget 工具从 GitHub 上下载 Node Exporter 的压缩包,版本为 1.4.0,适用于 Linux 64 位系统。

解压压缩包:

tar -zxvf node_exporter-1.4.0.linux-amd64.tar.gz

进入解压后的目录并启动 Node Exporter:

cd node_exporter-1.4.0.linux-amd64
./node_exporter

注释:./node_exporter 表示执行当前目录下的 node_exporter 可执行文件,启动 Node Exporter 服务。

3.3 配置 Prometheus 采集 Node Exporter 数据

修改 prometheus.yml 配置文件,添加 Node Exporter 的采集任务:

global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']  # Node Exporter 默认监听端口为 9100

注释:新增的 job_name 为 node_exporter 的采集任务,targets 指定了 Node Exporter 的地址和端口。

重新启动 Prometheus 使配置生效。

四、初次使用体验

4.1 访问 Prometheus Web 界面

在浏览器中访问 http://localhost:9090,我们可以看到 Prometheus 的 Web 界面。界面主要分为几个部分:

  • Graph:用于查询和可视化指标数据。
  • Status:显示 Prometheus 的状态信息,如配置文件、运行时间等。
  • Alerts:显示告警信息。

4.2 使用 PromQL 查询指标

在 Graph 页面的查询框中输入 PromQL 查询语句,例如查询 Node Exporter 收集的 CPU 使用率指标:

node_cpu_seconds_total{mode="idle"}

注释:node_cpu_seconds_total 是 Node Exporter 收集的 CPU 时间指标,{mode="idle"} 是标签过滤条件,表示只查询空闲模式下的 CPU 时间。

输入查询语句后,点击 Execute 按钮,即可在下方看到查询结果,并可以选择以图表或表格的形式展示。

其中有Prometheus 的 Web 界面,包括查询框、查询结果展示区域等。

你可能感兴趣的:(Prometheus,prometheus,运维,自动化监控,云原生)