搭建服务器监控平台:Prometheus+node_exporter+Grafana
一、前言
之前搭建了监控jmeter接口指标的grafana看板,但平时性能测试时也要关注服务器性能指标,所以也了解了下怎么搭建服务器监控,虽说这些是运维的工作,但多少懂一点也是好的。本次的prometheus和exporter是用docker部署的,顺便也实操下docker的基础知识。
二、工具简介
Prometheus Server: Prometheus服务端,由于存储及收集数据,提供相关api对外查询用。
Exporter: 类似传统意义上的被监控端的agent,有区别的是,它不会主动推送监控数据到server端,而是等待server端定时来手机数据,即所谓的主动监控。
Pushagateway: 用于网络不可直达而居于exporter与server端的中转站。
引用一张官方的架构图,原理大概是:
1、prometheus是用于收集数据,主动拉取组件监控到的数据(比如mysql,nginx,node_exporter);
2、node_exporter用于监控数据,监控服务器主机数据(哪些服务器需要监控的,就在服务器上安装这个组件);
3、grafana用于展示数据,数据源选取prometheus;

三、搭建流程
3.1 node_exporter安装
- 步骤1:下载镜像包:docker pull prom/node-exporter
- 步骤2:启动镜像包:docker run -d -p 9100:9100 --name node-exporter prom/node-exporter:latest
- 步骤3:查看已启动的镜像:docker ps

步骤4:安全组开放端口9100后,访问url(ip:9100/metrics),如下图,这些都是收集到的数据,有了它就可以做数据展示了

3.2 prometheus安装
- 步骤1:下载镜像包:docker pull prom/prometheus
- 步骤2:新建目录prometheus: mkdir /opt/prometheus

- 步骤3:cd进入prometheus目录下,编辑配置文件prometheus.yml:
cd /opt/prometheus/vim prometheus.yml

配置文件代码:注意修改IP地址,这里的192.168.91.132就是本机地址
global: scrape_interval: 60s evaluation_interval: 60s scrape_configs: - job_name: prometheus static_configs: - targets: ['localhost:9090'] labels: instance: prometheus - job_name: linux static_configs: - targets: ['192.168.91.132:9100'] labels: instance: localhost
步骤4:启动镜像
命令也可以用:
docker run -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

步骤5:浏览器访问url:ip+9090端口

访问targets

特别说明:
1、如果prometheus没有采集到job,要检查下是不是改了配置文件后没有重启容器镜像
2、prometheus可以配置热加载配置,可百度
3.2 Grafana安装,展示数据
之前有演示过,这里不再详细说(可查看https://www.cnblogs.com/Chilam007/p/14982759.html),
本次用的数据源是prometheus,导入模板id为11074(有些数据没展示出来,后续需要详细研究下)



9276模板——这个模板应该比较适用
1860模板
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了