搭建服务器监控平台: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;
![](https://img2022.cnblogs.com/blog/715975/202203/715975-20220328132345890-2022592237.png)
三、搭建流程
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
![](https://img2022.cnblogs.com/blog/715975/202204/715975-20220404164944571-566335335.png)
步骤4:安全组开放端口9100后,访问url(ip:9100/metrics),如下图,这些都是收集到的数据,有了它就可以做数据展示了
![](https://img2022.cnblogs.com/blog/715975/202204/715975-20220404165003270-271422646.png)
3.2 prometheus安装
- 步骤1:下载镜像包:docker pull prom/prometheus
- 步骤2:新建目录prometheus: mkdir /opt/prometheus
![](https://img2022.cnblogs.com/blog/715975/202204/715975-20220404165231164-278844641.png)
- 步骤3:cd进入prometheus目录下,编辑配置文件prometheus.yml:
cd /opt/prometheus/vim prometheus.yml
![](https://img2022.cnblogs.com/blog/715975/202204/715975-20220404165309559-551328512.png)
配置文件代码:注意修改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
![](https://img2022.cnblogs.com/blog/715975/202204/715975-20220404165423635-1639881443.png)
步骤5:浏览器访问url:ip+9090端口
![](https://img2022.cnblogs.com/blog/715975/202204/715975-20220404165437601-1935647743.png)
访问targets
![](https://img2022.cnblogs.com/blog/715975/202204/715975-20220404165456299-986338325.png)
特别说明:
1、如果prometheus没有采集到job,要检查下是不是改了配置文件后没有重启容器镜像
2、prometheus可以配置热加载配置,可百度
3.2 Grafana安装,展示数据
之前有演示过,这里不再详细说(可查看https://www.cnblogs.com/Chilam007/p/14982759.html),
本次用的数据源是prometheus,导入模板id为11074(有些数据没展示出来,后续需要详细研究下)
![](https://img2022.cnblogs.com/blog/715975/202203/715975-20220328133708934-67132894.png)
![](https://img2022.cnblogs.com/blog/715975/202203/715975-20220328133652632-1403022110.png)
![](https://img2022.cnblogs.com/blog/715975/202203/715975-20220328133637153-827581486.png)
9276模板——这个模板应该比较适用
1860模板