企业级资源监控方案落地:Prometheus+Grafana+Export

前言

性能测试的结果分析是作为性能测试工程师的必修课,特别是监控服务器的资源使用情况,对于分析服务器的性能非常关键。我们有高很多的Linux的命令可以去监控各种资源,比如top,vmstat,iostat,pidstat等,但是命令使用有一定的门槛,结果看起来也没那么直观,所以现在很多公司都用Prometheus+grafana+export方案来进行资源监控。今天我们就给大家详细介绍一下这套方案的实施落地。

1、Grafana

grafana之前已经有文章介绍过了,需要的同学可以去获取: Jmeter+influxdb+grafana 性能测试结果监控

安装好了之后,通过web页面访问grafana服务并登录进去:http://机器ip:3000,打开grafana的监控大屏页面。

2、Prometheus

Prometheus 是由 SoundCloud 开源监控告警解决方案。它用时序数据的方式存储数据,有独立的 PromQL (Prometheus Query Language) 数据查询语言。

特点:

安装:

注意:不要安装在被测服务器,会影响被测试服务器的性能资源。

3、Export

但是,我们需要注意的是Prometheus 本身不具有数据收集功能,只能存放数据 ,不能主动收集数据 。所以要从被测服务器上收集数据,需要通过其他的工具push数据进去,这个工具就是各种Export。

export是监控工具:主要用于收集服务器资源利用率情况,需要安装在被监听的服务器上。

下表是一些常用的Export类型以及其可以监控的数据:

图片.png

比如,我们要监控服务器的硬件资源,比如CPU、内存,磁盘IO等,就需要用到node_export工具安装部署在被测服务器上。

node_export的安装:

但是这个metric的数据查看起来非常不直观并且也不方便进行持久化存储,所以我们要把node_export的数据全部要传到prometheus数据库里去存储。

Prometheus存储export收集的数据:

思考问题:Node_export从被测服务器收集到数据,那么Prometheus如何知道这个node_exporter收集的数据呢?这个时候,我们需要修改prometheus的配置文件。步骤如下:

在Scrape_configs节点下增加(注意写法)
  - job_name: 'server-data'
    static_configs:
    - targets: ['192.168.61.136:9100']

注意:

1、job_name :这个名字只要不重复,自己随便取,但是建议见名知意;server_data 或者node_export都可以

2、如果要加多个目标机器,逗号隔开就可以: - targets: ['192.168.61.136:9100','192.168.61.137:9100'];

图片.png

4、Prometheus+ Grafana集成

因为prometheus自己的监控数据看起来不够直观,所以我们会使用grafana进行展示。

注意:确定安装Prometheus和Grafana的两个服务器之间的网络是通的,可以放在同一个机器上进行安装。

在grafana的访问页面上做如下配置:

图片.png

图片.png

第二步:导入grafana的模板 :配置面板 12884

图片.png

第三步: 打开面板后,可以查看服务器的硬件的数据监控,如下图。

图片.png

以上就完成了Prometheus+Grafana+Node_Export的部署和方案落地了。

如果要进行其他的数据监控,替换exporter文件就可以了。Prometheus里的配置文件也做对应的修改即可。

你想用 Prometheus监控平台,去监控其他的服务, 可以去找服务对应的 exporter,按照安装说明,进行配置。

方案的常见的问题以及其解决办法:

监控界面不显示数据:

很多同学配置完成后Prometheus的页面不会出现数据,排查步骤如下:

1、数据源的配置出现连接不上问题,报错连接失败: 基本上是服务启动的问题或者prometheus的配置文件的问题,可以检查一下;

2、数据源的配置没有出现连接不上问题,所有的pannel都是 N/A None的空数据:

1 操作
tricy 在 2024-05-29 15:10:17 更新了该帖
回帖
请输入回帖内容 ...