从零开始搭建Prometheus与Grafana监控系统:实战演练

server/2024/12/23 6:29:30/

从零开始搭建 Prometheus 与 Grafana 监控系统:实战演练

监控系统是现代 IT 基础设施的重要组成部分,用于监控服务器、应用程序和服务的性能和可用性。Prometheus 和 Grafana 是目前广泛使用的开源监控和可视化工具。本篇文章将从零开始,手把手带你搭建 Prometheus 与 Grafana 监控系统,包括环境准备、安装配置、数据采集、可视化展示和报警设置等内容。

目录

  1. 环境准备
  2. 安装 Prometheus
  3. 配置 Prometheus
  4. 安装 Node Exporter
  5. 安装 Grafana
  6. 配置 Grafana
  7. 创建监控 Dashboard
  8. 设置报警规则
  9. 总结与扩展

1. 环境准备

在开始搭建 Prometheus 和 Grafana 之前,需要准备以下环境和工具:

  • 一台 Linux 服务器(本文以 Ubuntu 20.04 为例)
  • Docker(可选,但推荐用于简化安装过程)
  • 基本的 Linux 命令行操作知识

在开始之前,确保你的服务器已经可以访问互联网,以便下载必要的安装包和 Docker 镜像。

步骤:

  1. 更新系统包:

    sudo apt update && sudo apt upgrade -y
    
  2. 安装 Docker:

    如果还没有安装 Docker,可以通过以下命令进行安装:

    sudo apt install docker.io -y
    
  3. 启动 Docker 并设置开机自启:

    sudo systemctl start docker
    sudo systemctl enable docker
    
  4. 验证 Docker 安装是否成功:

    docker --version
    

2. 安装 Prometheus

Prometheus 是一个开源的系统监控和报警工具,采用拉取(pull)模型收集数据,具有强大的查询语言 PromQL。我们将通过 Docker 安装 Prometheus。

步骤:

  1. 拉取 Prometheus 镜像:

    docker pull prom/prometheus
    
  2. 创建 Prometheus 配置文件:

    创建一个名为 prometheus.yml 的文件,配置 Prometheus 拉取数据的方式。以下是一个简单的配置示例:

    global:scrape_interval: 15s # 拉取数据的时间间隔evaluation_interval: 15s # 规则评估的时间间隔scrape_configs:- job_name: 'prometheus'static_configs:- targets: ['localhost:9090'] # Prometheus 自身
    
  3. 运行 Prometheus:

    使用以下命令启动 Prometheus:

    docker run -d --name=prometheus -p 9090:9090 -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
    
  4. 验证 Prometheus 是否运行:

    打开浏览器访问 http://<你的服务器 IP>:9090,可以看到 Prometheus 的 Web 界面。


3. 配置 Prometheus

Prometheus 的核心是配置文件 prometheus.yml,通过该文件定义数据采集的来源、频率以及评估规则。我们需要进一步配置以便收集更多的系统指标。

步骤:

  1. 配置 Node Exporter:

    Node Exporter 是 Prometheus 官方推荐的用于收集 Linux 系统指标的工具。我们需要在 Prometheus 的配置文件中添加 Node Exporter 的目标。

    scrape_configs:- job_name: 'node_exporter'static_configs:- targets: ['localhost:9100']
    
  2. 重新加载 Prometheus 配置:

    如果 Prometheus 是通过 Docker 运行的,可以通过重启容器来加载新的配置:

    docker restart prometheus
    

4. 安装 Node Exporter

Node Exporter 是一个用于暴露系统指标给 Prometheus 的工具,它可以收集 CPU、内存、磁盘、网络等系统级别的指标。我们通过 Docker 安装 Node Exporter。

步骤:

  1. 拉取 Node Exporter 镜像:

    docker pull prom/node-exporter
    
  2. 运行 Node Exporter:

    docker run -d --name=node_exporter -p 9100:9100 prom/node-exporter
    
  3. 验证 Node Exporter:

    访问 http://<你的服务器 IP>:9100/metrics,可以看到系统的各项指标数据。


5. 安装 Grafana

Grafana 是一个开源的数据可视化工具,支持多种数据源,如 Prometheus、InfluxDB、MySQL 等。它的强大之处在于其灵活的 Dashboard 和可视化组件。

步骤:

  1. 拉取 Grafana 镜像:

    docker pull grafana/grafana
    
  2. 运行 Grafana:

    docker run -d --name=grafana -p 3000:3000 grafana/grafana
    
  3. 访问 Grafana:

    打开浏览器,访问 http://<你的服务器 IP>:3000,默认用户名和密码都是 admin。首次登录后会提示修改密码。


6. 配置 Grafana

Grafana 安装完成后,需要配置数据源以从 Prometheus 获取监控数据。

步骤:

  1. 添加 Prometheus 数据源:

    • 登录 Grafana 后,点击左侧边栏的“Configuration” > “Data Sources”。
    • 点击“Add data source”,选择 “Prometheus”。
    • 在 URL 栏输入 http://<你的服务器 IP>:9090,然后点击“Save & Test”确认数据源配置成功。
  2. 验证数据源:

    如果配置成功,Grafana 会显示“Data source is working”的提示。


7. 创建监控 Dashboard

Grafana 提供了丰富的 Dashboard 模板,可以快速创建各种监控面板。我们将创建一个简单的系统监控 Dashboard。

步骤:

  1. 创建新 Dashboard:

    • 在 Grafana 首页,点击“Create” > “Dashboard”。
    • 选择“Add new panel”,在“Query”栏选择数据源为 Prometheus。
  2. 添加查询:

    • 在“Query”输入框输入 PromQL 查询,如 node_cpu_seconds_total,可以看到实时的 CPU 使用情况。
    • 点击“Apply”保存该面板。
  3. 保存 Dashboard:

    点击右上角的“Save”按钮,为你的 Dashboard 命名并保存。


8. 设置报警规则

监控系统的一个重要功能是报警,当某些指标超过设定的阈值时,系统会自动发送通知。Prometheus 支持通过配置报警规则来实现这一功能。

步骤:

  1. 配置报警规则文件:

    创建一个名为 alert.rules 的文件,添加以下内容:

    groups:- name: examplerules:- alert: HighCPUUsageexpr: node_cpu_seconds_total{mode="system"} > 0.5for: 1mlabels:severity: criticalannotations:summary: "Instance {{ $labels.instance }} high CPU usage"description: "CPU usage is above 50% for more than 1 minute."
    
  2. 在 Prometheus 配置中添加报警规则:

    prometheus.yml 中添加以下内容:

    rule_files:- "alert.rules"
    
  3. 重新加载 Prometheus 配置:

    使用以下命令重启 Prometheus 以应用新的配置:

    docker restart prometheus
    
  4. 设置报警通知:

    Prometheus 支持多种报警通知方式,如 Email、Slack、Webhook 等。可以通过配置 Alertmanager 来实现更灵活的报警策略。


9. 总结与扩展

通过本篇文章的实战演练,你已经成功搭建了一个基本的 Prometheus 与 Grafana 监控系统。这个系统能够收集服务器的各项指标数据,并通过 Grafana 实时展示,同时支持设置报警规则以在系统异常时通知相关人员。

后续扩展:

  • 集成更多的 Exporter: Prometheus 社区提供了多种 Exporter,可用于监控数据库(如 MySQL、PostgreSQL)、消息队列(如 Kafka、RabbitMQ)等。
  • 优化报警策略: 根据实际需求优化报警规则,避免过多无效的报警。
  • 安全配置: 考虑为 Prometheus 和 Grafana 配置 HTTPS 和用户认证,以确保监控数据的安全性。

通过不断优化和扩展,你可以将这个基础监控系统逐步升级为生产环境中强大而灵活的运维保障工具。


http://www.ppmy.cn/server/114256.html

相关文章

云原生架构概念

云原生架构概念 云原生架构&#xff08;Cloud Native Architechtrue&#xff09;作为一种现代软件开发的革新力量&#xff0c;正在逐渐改变企业构建、部署和管理应用程序的方式。它的核心优势在于支持微服务架构&#xff0c;使得应用程序能够分解为独立、松耦合的服务&#xf…

Nginx的负载均衡

Nginx 是一个高性能的 HTTP 和反向代理服务器&#xff0c;广泛用于负载均衡。负载均衡的目的是将客户端请求分配到多个后端服务器&#xff0c;以提高应用的可用性和性能。下面详细解释 Nginx 的负载均衡特性&#xff0c;包括其工作原理、配置方法、负载均衡算法等。 工作原理 …

贝锐蒲公英远程视频监控方案:4G入网无需公网IP,跨品牌统一管理

在部署视频监控并实现集中监看时&#xff0c;常常会遇到各种挑战。比如&#xff1a;部分监控点位布线困难、无法接入有线宽带&#xff0c;或是没有固定公网IP&#xff0c;难以实现远程集中监看&#xff1b;已有网络质量差&#xff0c;传输延迟大、丢包率高&#xff0c;远程实时…

Anti-honeypot - 自动识别Web蜜罐Chrome插件,附下载链接

在我们最近的一次攻防演习中&#xff0c;我和同事们发现了一些关于蜜罐的有趣现象。很多情况下&#xff0c;红队的攻击手法虽然高超&#xff0c;但他们往往因为一个小细节而暴露了真实身份。比如&#xff0c;有些黑客在使用浏览器时&#xff0c;没有开启隐身模式&#xff0c;结…

【拥抱AI】浅谈Prompt的书写规范及要点

Prompt是什么&#xff1f; Prompt是一种技术&#xff0c;它通过自然语言处理来引导用户与机器之间的交互。在人工智能领域&#xff0c;Prompt通常用于生成文本&#xff0c;例如对话系统、机器翻译和文本摘要等应用。它也用于训练模型&#xff0c;以使其能够理解和生成人类语言…

什么是COB超微小间距会议一体机?LED智能会议一体机重塑会议体验

在当今这个快节奏、高效率的时代&#xff0c;会议作为企业日常运营中不可或缺的一环&#xff0c;其效率与体验直接影响着企业的决策速度与团队协作能力。随着科技的飞速发展&#xff0c;传统的会议设备已难以满足现代会议室的多元化需求&#xff0c;LED智能会议一体机&#xff…

Linux:从入门到放弃

目录 一、基础巩固Linux&#xff1a;常用命令 二、实战应用Linux&#xff1a;CentOS7基础配置Linux&#xff1a;CentOS7安装MySQL 三、常见问题Linux&#xff1a;yum源失效问题 一、基础巩固 Linux&#xff1a;常用命令 二、实战应用 Linux&#xff1a;CentOS7基础配置 Lin…

Ubuntu 20 上安装 GitLab,配置 HTTPS,使用 DevOps

文章目录 在 Ubuntu 20 上安装 GitLab,并配置 HTTPS,开启容器镜像库,使用 GitLab DevOps 自动编译和部署 Java 服务到 CentOS 7 服务器1. 在 Ubuntu 20 上安装 GitLab2. 配置 HTTPS3. 开启容器镜像库4. 使用 GitLab CI/CD 自动编译和部署 Java 服务4.1 配置 CentOS 7 服务器…