部署Prometheus+Grafana监控平台实践

 更新时间:2026年01月26日 09:25:06   作者:ICT董老师  
文章介绍了如何在宿主机上配置Prometheus和Grafana,并使用NodeExporter监控Linux服务器,通过Docker部署Prometheus和Grafana,并在Prometheus中添加NodeExporter作为数据源,最后,通过Grafana导入仪表盘来可视化监控数据

可视化监控方案

在宿主机上编写Prometheus配置文件

mkdir /etc/prometheus
vi /etc/prometheus/prometheus.yml

文件配置内容如下:

global:
  scrape_interval: 15s
  evaluation_interval: 15s
alerting:
  alertmanagers:
    - static_configs:
      - targets:
        # - alertmanager:9093
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]

使用Docker创建Prometheus容器

docker network create monitoring
docker run -d --name=prometheus --net=monitoring -v /etc/prometheus:/etc/prometheus/ -v prometheus-data:/prometheus -p 9090:9090 prom/prometheus:latest

在浏览器中访问“http://<宿主机IP地址>:9090”,可以看到Prometheus的首页。

使用Docker部署Grafana

docker run -d --name=grafana --net=monitoring -v grafana-data:/var/lib/grafana -p 3000:3000 grafana/grafana:latest

在浏览器中访问“http://<宿主机IP地址>:3000”,可以看到Grafana登陆页面,默认用户名和密码均为“admin”,第一次登陆需设置新的密码。然后进入Grafana首页。

在Grafana中添加Prometheus作为数据源

DATA SOURCES->Add your first data source->Prometheus,进入数据源配置页面,在Connection中Prometheus server URL输入Prometheus的访问地址“http://<宿主机IP地址>:9090”,单击Save&test按钮进行保存和测试。添加成功后,可以在Connections中的Data sources查看数据源。

Prometheus监控案例–监控Linux服务器

Node Exporter用于采集和暴露本机的系统性能数据,包括但不限于CPU、内存、硬盘、网络接口等指标。

在监控主机上部署Node Exporter

Node Export支持多种安装方式,包括Docker和二进制。如果目标监控主机已安装Docker,则建议使用Docker容器部署;反之,则使用二进制的方式部署。

下面演示通过二进制方式部署:

在官网上下载Node Exporter安装包

wget https://github.com/prometheus/node_exporter/releases/download/v1.10.2/node_exporter-1.10.2.linux-amd64.tar.gz
tar zxvf node_exporter-1.10.2.linux-amd64.tar.gz
mv node_exporter-1.10.2.linux-amd64 /usr/local/node_exporter

使用Systemd管理node_exporter程序,创建服务文件

vi /usr/lib/systemd/system/node_exporter.service

文件配置内容如下:

[Unit]
Description=Prometheus Node Exporter
After=network.target
[Service]
Type=simple
User=nobody
Group=nobody
ExecStart=/usr/local/node_exporter/node_exporter
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

启动并设置开机启动

#  重新加载 systemd
systemctl daemon-reload
#  重置失败计数器
systemctl reset-failed node_exporter
#  禁用SELinux
setenforce 0
#  启动服务
systemctl start node_exporter
#  开机启动
systemctl enable node_exporter

Node Exproter默认监听9100端口,可以通过浏览器访问被监控服务器“http://192.168.1.76:9100/metrics”查看采集的指标数据。

Prometheus添加监控目标

为了将上面的被监控Linux服务器加入Prometheus监控中,需要在Prometheus配置文件(/etc/prometheus/prometheus.yml)中添加监控目标,配置如下

vi /etc/prometheus/prometheus.yml
global:
  scrape_interval: 15s
  evaluation_interval: 15s
alerting:
  alertmanagers:
    - static_configs:
      - targets:
        # - alertmanager:9093
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]
  - job_name: "Linux-Server"
    # metrics_path: '/metrics'
    # scheme: http
    static_configs:
      - targets: ["192.168.1.75:9100","192.168.1.76:9100"]

配置完成后,重启Prometheus容器或者向Prometheus进程发送“SIGHUP”信号以重新加载配置文件:

docker exec -it prometheus kill -HUP 1

在浏览器中访问“http://<宿主机IP地址>:9090”,打开Prometheus的页面,单击导航栏中的“Status->Target health”,可以看到被监控的服务器状态为“UP”,表明已成功监控。

Prometheus会定期收集从“Endpoint”显示的地址中获取指标数据并对该数据进行存储。在页面导航栏“Graph”中,可以使用PromQL查询语句检索存储在Prometheus中的指标数据。

例如,查看与CPU相关的指标,输入“node_cpu_seconds_total{instance=“192.168.1.75:9100”}”即可查询。

Grafana导入仪表盘

在浏览器中访问“http://<宿主机IP地址>:3000”,进入Grafana页面,按以下方式配置:

home->Dashboards->Create dashboard->import dashboard输入仪表盘ID"12633",单击Load按钮加载,进入仪表盘配置界面,在这里设置仪表盘的名称和Prometheus数据源,单击Import完成导入,将看到仪表盘界面。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker时间不一致,时区设置方式

    Docker时间不一致,时区设置方式

    这篇文章主要介绍了Docker时间不一致,时区设置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Docker Compose Start命令优雅重启容器服务详解

    Docker Compose Start命令优雅重启容器服务详解

    Docker Compose Start 是用于重启已停止容器的轻量级命令,优势在于快速恢复服务、保持容器状态及资源节约,这篇文章主要介绍了Docker Compose Start命令优雅重启容器服务的相关资料,需要的朋友可以参考下
    2025-08-08
  • 彻底搞懂Docker镜像分层的实现

    彻底搞懂Docker镜像分层的实现

    本文我们会深入的学习Docker的镜像分层的原理和实现,通过实例和与git的类比,帮助我们加深对镜像的理解,对Docker镜像分层相关知识感兴趣的朋友一起看看吧
    2022-02-02
  • Docker镜像存储overlayfs的使用

    Docker镜像存储overlayfs的使用

    这篇文章主要介绍了Docker镜像存储overlayfs的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Docker容器使用方法详解

    Docker容器使用方法详解

    容器是基于镜像创建的,容器中的进程依赖于镜像中的文件,那么本篇文章我们就来深入学习容器的基本操作方法,通过示例来加深各位看官对docker容器操作的理解以及记忆,需要的朋友可以参考下
    2022-07-07
  • 基于Docker实现MySQL主从复制的详细教程

    基于Docker实现MySQL主从复制的详细教程

    这篇博客整理了如何在Docker环境下配置MySQL主从复制,通过创建和命名两个MySQL容器,设置独立IP,并详细说明了在宿主机上持久化数据、开启root远程访问及添加复制用户的过程,需要的朋友可以参考下
    2024-10-10
  • 教你docker方式部署nacos

    教你docker方式部署nacos

    Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理,下面通过本文给大家讲解docker方式部署nacos的过程,感兴趣的朋友一起看看吧
    2022-05-05
  • OpenWRT如何解决Docker空间不足的问题

    OpenWRT如何解决Docker空间不足的问题

    由于OpenWRT成品机的磁盘未完全分配,导致Docker空间不足,通过OpenWRT系统的磁盘管理创建新的ext4分区,并将Docker运行路径修改至该分区,可以有效解决空间问题,具体步骤包括在OpenWRT创建分区,终端操作创建文件夹,修改Docker的daemon.json文件及Docker根目录配置
    2024-10-10
  • 基于windows10安装docker及遇到的问题

    基于windows10安装docker及遇到的问题

    这篇文章主要介绍了基于windows10安装docker及遇到的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 一文打你掌握Docker镜像层(Layer)原理与优化

    一文打你掌握Docker镜像层(Layer)原理与优化

    Docker镜像是多层只读文件的堆叠,每一层记录文件系统的变更差异,本文主要为大家详细介绍了Docker镜像层的核心原理与优化,感兴趣的小伙伴可以了解下
    2026-05-05

最新评论