当前位置:   article > 正文

prometheus+grafana搭建监控平台监控压测服务器&mysql性能_grafana+prometheus

grafana+prometheus

一、背景介绍

压测过程中,我们需要监控服务器、数据库的各项性能指标。最简单的方式,我们可以在服务器上通过一些linux命令,比如:top, free, netstat等等。这些命令虽然方便,但也有明显的缺陷:

  • 这些命令只能呈现实时的数据,没办法呈现一个时间段内的数据趋势;
  • 现在的互联网架构,基本上都是分布式集群架构,一个系统的服务集群可能有几十台服务器实例,要通过几十个ssh连接窗口,使用命令去观测看几十台服务器实例的数据指标,根本观测不过来;

因此我们需要有更智能更方便的监控平台来监控数据,本次给大家推荐的是prometheus + grafana搭建监控平台:

在这里插入图片描述

二、具体步骤

1. 安装prometheus

Prometheus是一个开源的系统监控和警报工具包,在 Prometheus + Grafana 的体系架构下,Prometheus 相当于一个注册中心。

1.1 下载prometheus
在linux服务器上下载prometheus

wget https://github.com/prometheus/prometheus/releases/download/v2.27.1/prometheus-2.27.1.linux-amd64.tar.gz
  • 1

现在GitHub有时直接访问不了,需要FQ才能下载。无法FQ的同学也可以通过我上传的资源下载:prometheus-2.27.1.linux-amd64.tar.gz

1.2 解压并启动

tar xvfz prometheus-2.27.1.linux-amd64.tar.gz
  • 1
./prometheus --config.file=prometheus.yml
  • 1

通过浏览器输入:http://your_ip:9090,能够跳转到如下页面,说明 prometheus 安装启动成功
在这里插入图片描述

2. 安装 node_exporter

node_exporter 是 prometheus 的一个监控插件,用于监控各个服务器的系统指标。

2.1 下载 node_exporter

wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
  • 1

同样,如果github下载不了,可以通过我上传的资源下载:node_exporter-1.1.2.linux-amd64.tar.gz

2.2 解压并启动

tar xvfz node_exporter-1.1.2.linux-amd64.tar.gz
  • 1
./node_exporter
  • 1

通过浏览器输入:http://your_ip:9100/metrics,能够跳转到如下页面,则说明 node_exporter 安装启动成功
在这里插入图片描述
2.3 修改 prometheus.yml 配置

回到上面解压的prometheus的目录下,修改一下 prometheus.yml 配置,加上node_exporter的配置内容

vim prometheus.yml
  • 1
# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# 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: ['localhost:9090']
  
  # 在这里,把 node_exporter 的 ip 和端口号填上
  - job_name: 'server1'
    static_configs:
    - targets: ['localhost:9100']
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

注意:如果是在一台linux机器上安装的prometheus,另一台linux机器上安装的node_exporter, 则上面配置文件中node_exporter的targets填对应机器的IP,而不是localhost。

2.4 重启prometheus

./prometheus --config.file=prometheus.yml
  • 1

重启后在prometheus的页面上,点击Status》Targets, 可以查看到对应的server已经添加成功(up则表示添加成功)
在这里插入图片描述
在这里插入图片描述

3. 安装grafana

Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计。

3.1 下载grafana

wget https://dl.grafana.com/oss/release/grafana-8.0.1.linux-amd64.tar.gz
  • 1

3.2 解压并启动

tar xvzf grafana-8.0.1.linux-amd64.tar.gz
  • 1
./bin/grafana-server web
  • 1

同样,如果github下载不了,可以通过我上传的资源下载:grafana安装包

通过浏览器输入:http://your_ip:3000,进入Grafna的监控平台。
页面会让你输入用户名和密码,默认用户名和密码都是 admin:
在这里插入图片描述
登录后,会要求重置密码:
在这里插入图片描述
重置密码后,会进入到 Grafna 的欢迎页面:
在这里插入图片描述

4. 配置 Grafna

4.1 配置数据源(Data sources)
在这里插入图片描述
点击 Add data source:
在这里插入图片描述
选择数据源为 Prometheus,点击 Select:
在这里插入图片描述
在 “Settings” Tab下,填写 Name 和 URL,URL 为 Prometheus 的服务地址:
在这里插入图片描述
填写完毕后,点击 Save & test:
在这里插入图片描述
随后,再点击上边的 “Dashboards” Tab,把 Prometheus Stats、Prometheus 2.0 Stats、Grafana metrics 都 import 进来:
在这里插入图片描述
至此,数据源就已经配置好了。

4.2 配置 Dashboard 模版
点击+号,选择Import:
在这里插入图片描述
在Import via grafana.com文本框填入一个系统资源监控的Dashboard模板ID,比如:8919,点击Load:
在这里插入图片描述
输入自定义的 Dashboad 名称,选择 VictoriaMetrics 下拉框为Prometheus,然后点击 Import,这样就完成了 Dashboard 的配置:
在这里插入图片描述
Dashboard的页面展示如下:
在这里插入图片描述
在这里插入图片描述
如果想用别的 Dashboard,也可以上grafana官网去自由选择别的展示面板,
链接: https://grafana.com/dashboards

5. 配置监控多台服务器

实际环境中,现在的系统应用通常不止一台服务器,需要监控多台服务器则需要:

  • 在对应的服务器上安装并启动node_exporter;
  • 在prometheus的配置文件上增加对应服务器的配置;
vim prometheus.yml
  • 1
# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# 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: ['localhost:9090']
  
  # 要监控的server1的node_exporter 的 ip 和端口号填上
  - job_name: 'server1'
    static_configs:
    - targets: ['server1的IP:9100']
    
  # 要监控的server2的node_exporter 的 ip 和端口号填上
  - job_name: 'server2'
    static_configs:
    - targets: ['server2的IP:9100']
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

然后在grafana的监控页面的Job下拉列表选择对应的server,就能看到对应server的监控数据了:
在这里插入图片描述

6. 监控mysql

6.1 下载mysqld_exporter

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gz
  • 1

同样,如果github下载不了,可以通过我上传的资源下载:mysqld_exporter安装包

6.2 解压并运行

解压

tar -xvf mysqld_exporter-0.10.0.linux-amd64.tar.gz
  • 1

为 mysql_exporter 创建一个指定账户用来连接数据库。当然,也可以直接用 现有的数据库有权限的账户,不过建议创建一个专有账户。本文直接用现有的账户。

配置数据库连接认证信息并启动 Exporter。首先在解压出来的mysqld_exporter目录下创建配置文件.my.cnf:

vim .my.cnf
  • 1

填入mysql的连接信息:

[client]
   host=localhost
   port=3306
   user=xxxx
   password=xxxx
  • 1
  • 2
  • 3
  • 4
  • 5

运行mysql_exporter

./mysqld_exporter -config.my-cnf=".my.cnf" &
  • 1

6.3 加入Prometheus.yml配置

 - job_name: mysql
    static_configs:
      - targets: ['mysql的ip地址:9104']
  • 1
  • 2
  • 3

配好后保存重启Prometheus。Prometheus页面点击Status->Targets,如果发现mysql的State为Up 状态,则说明已经配置好了。如果没有配置好,则可以注意一下是否mysql开启了远程访问。

6.4 配置 Dashboard 模版

点击+号,选择Import:
在这里插入图片描述
在Import via grafana.com文本框填入一个mysql监控的Dashboard模板ID,比如:7362,点击Load:
在这里插入图片描述
输入自定义的 Dashboad 名称,选择 VictoriaMetrics 下拉框为Prometheus,然后点击 Import,这样就完成了 Dashboard 的配置:
在这里插入图片描述

Dashboard的页面展示如下:
在这里插入图片描述
在这里插入图片描述

==============================================================================
以上,希望对你有帮助!

扫码关注程序员杨叔的微信公众号,免费获取更多全栈测试干货内容资料:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/517460
推荐阅读
相关标签
  

闽ICP备14008679号