搭建监控基础设施

2022-12-03 12:15:46 浏览数 (1)

在性能测试的过程中,需要关注到各个不同维度的资源变化趋势的过程,比如操作系统中CPU与内存以及平均负载资源变化的趋势,当然还有很多的指标。主要需要关注的是DB资源,操作系统资源,被测服务的资源,以及其他涉及到的中间件(RabbitMQ,Kafka,Nginx,Redis等)的资源。那么针对这些涉及到的资源需要进行监控和关注,这样的好处是在最终分析性能测试的结果中可以结合各个不同资源来分析存在的问题。比如请求一个列表耗时非常长,那么过程到底是数据库的问题,还是服务本身的问题以及服务对应的操作系统资源瓶颈导致的问题,其实在这个过程中,这些都是存在可能性的,所以在具体排查的过程中,就需要知道在这个过程中各个资源的变化趋势,可以借助这些信息来定位到底是什么导致了请求耗时长的问题。因此,在性能测试的过程中,针对资源的监控是非常重要的。

监控的步骤具体总结就是两部分:数据收集和数据展示,那么它的详细流程以及涉及到的组件具体如下所示。

具体描述就是使用Prometheus来收集被监控对象的数据(如操作系统等),最后在Grafana平台中数据源使用Prometheus,然后在Grafana平台把Prometheus收集到的数据通过可视化的方式展示出来,这样在数据分析的过程中能够看到数据从性能测试开始到性能测试结束这个过程中数据的变化趋势和详细的变化过程。

清楚了监控的必要性以及监控需要的组件以及监控的流程后,下来详细的阐述下这部分的环境搭建以及详细的配置过程。首先来安装Grafana,通过如下命令进行下载和安装:

代码语言:javascript复制
wget https://dl.grafana.com/oss/release/grafana-6.1.6-1.x86_64.rpm 
yum  localinstall  grafana-6.1.6-1.x86_64.rpm  -y

#安装成功后,使用如下命令来启动grafana的服务
systemctl restart grafana-server

Grafana启动成功后(监听的端口是3000),在浏览器访问就会显示如下界面:

下来接着搭建Prometheus,通过如下的命令来进行下载以及安装和配置,具体如下所示。

代码语言:javascript复制
wget prometheus-2.31.1.linux-amd64.tar.gz](https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz
#把prometheus-2.31.1.linux-amd64.tar.gz移动到/usr/local的目录下进行解压,解压后它的目录为
[root@k8s-master prometheus]# ls
console_libraries  data     NOTICE      prometheus.yml
consoles           LICENSE  prometheus  promtool
#下来在prometheus.yml文件中配置被监控的对象,如监控101.43.158.84服务器的系统资源,配置信息如下
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["47.95.142.233:9090"]

  #监控Linux资源
  - job_name: "腾讯云Linux"
    static_configs:
      - targets: ["101.43.158.84:9100"]
#配置完成后,通过如下命令来启动prometheus,具体如下所示。
./prometheus  --config.file=prometheus.yml

Prometheus启动成功后(监听的端口是9090),然后就可以在浏览器中进行访问,具体如下所示。

使用Prometheus收集数据,需要在被收集目标的对象上部署Exporter,因为收集的是Linux服务器的资源,所以需要在目标服务器上下载安装node_exporter-1.2.2.linux-amd64.tar.gz,下载成功后进行解压,解压后的目录如下所示。

代码语言:javascript复制
[root@k8s-node1 node_exporter-linux]# ls
LICENSE  node_exporter  NOTICE
#在当前目录下启动
./node_exporter

启动目标服务器上的Exporter后,就可以在Prometheus平台上看到连接的信息,具体如下所示。

这样在Prometheus就能够看到收集到目标服务器的资源信息了,如查询手机到的CPU的信息,具体如下所示。

做好如上的信息后,在Grafana平台配置基于Prometheus的数据源,具体如下所示。

做好这些准备好后,在Grafana平台会有很多的可视化的模板,如下模板是展示收集到的目标服务器的系统资源信息。

如上所示,把收集到的系统资源信息可视化地展示到Grafana的平台上。这样在性能测试的过程中,如是由于系统资源导致客户端请求耗时,那么可以在这个平台上详细的看到那个时间点系统的资源是处于瓶颈最后导致程序请求耗时。当然针对其他组件以及中间件的资源监控,后期详细的阐述。

0 人点赞