手把手教你搭建服务器监控平台(性能测试干货) - 知乎

你好,我是测试开发工程师——臻叔。
欢迎和我交流测试领域相关问题(测试入门、技术、python交流都可以)

我们在做性能测试的时候,需要监控服务器的各项性能指标。

除了吞吐率和响应时间之外,我们还需要关注服务器的系统性能指标。

系统性能指标包括:CPU使用率、内存使用率、硬盘、硬盘读写IO、带宽和流量等等。

相信大部分人一看到系统性能指标的采集,脑海里马上会条件反射般浮现:top、free、vmstat、netstat、mpstat、du、df...等等命令。

但是现在互联网架构,基本上都是分布式架构(服务器集群化)。

假设一个搜索服务集群有30台实例,如果我们要用top命令去观测30台服务器的性能,那么我们得创建30个ssh连接,然后在30个终端窗口中,输入top命令去观测,就算有100只眼睛,也很难看得过来。

观测的成本实在是太高了!

我们有没有什么好的解决方案,可以有效的观测服务器的系统性能数据呢?

当然有,那就是 prometheus + Grafana。

接下来,我将带大家一同搭建基于prometheus + Grafana 的服务器监控平台。

第一步:安装 prometheus

Prometheus是一个开源的系统监控和警报工具包,最初是在SoundCloud上构建的。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。

在 Prometheus + Grafana 的体系架构下,Prometheus 相当于一个注册中心。

1.1 下载 prometheus

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

1.2 解压

tar xvfz prometheus-2.27.1.linux-amd64.tar.gz 
 

1.3 查看配置文件(一开始可以不用做任何修改)

用 Vim 打开 prometheus.yml

# 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'] 
 

我们可以看到,prometheus 的默认端口号是:9090

1.4 启动 prometheus

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

通过浏览器输入:http://your_ip:9090

假如能够跳转到如下页面,说明 prometheus 安装启动成功。

第二步:安装 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 
 

2.2 解压

tar xvfz node_exporter-1.1.2.linux-amd64.tar.gz 
 

2.3 启动 node_exporter

默认端口是:9100

./node_exporter 
 

通过浏览器输入:http://your_ip:9100/metrics

假如能够跳转到如下页面,则说明 node_exporter 安装启动成功。

2.4 修改 prometheus.yml 配置

到这里,我们还需要修改一下 prometheus.yml 配置,

回到prometheus的目录下,通过

vim prometheus.yml 
 

来修改 prometheus.yml 配置文件。

# 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: 'server' 
    static_configs: 
    - targets: ['localhost:9100'] 
 

2.5 重启 Prometheus

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

第三步:安装Grafna

3.1 下载 Grafna

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

3.2 解压

tar xvzf grafana-8.0.1.linux-amd64.tar.gz 
 

3.3 启动 Grafna

./bin/grafana-server web 
 

通过浏览器输入:http://your_ip:3000

进入Grafna的监控平台。

一开始会让你输入用户名和密码,默认用户名和密码都是 admin。

随后,你需要重新设置一个密码。

登陆之后,会进入到 Grafna 的欢迎页面。

第四步:配置 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 模版

“8919” 是一个中文的 Dashboard 模版的ID,输入后,点击 Load

如果想用别的 Dashboard,也可以上官网去自由选择别的展示面板,

链接: https://grafana.com/dashboards

输入自定义的 Dashboad 名称,

选择 VictoriaMetrics 下拉框为:Prometheus

然后点击 Import,

这样就完成了 Dashboard 的配置。

4.3 完成后的画面

有木有十分的酷炫屌炸天!?

拓展

因为篇幅有限,本文只是展示最简单的搭建性能监控平台,

Prometheus还可以添加 MySQL监控、MQ监控、Redis监控、告警管理工具等等插件,这里就不一一演示了。

感兴趣的小伙伴可以参考以下博客进行搭建。

https://blog.csdn.net/qq_37128049/article/details/108143110

    • *

我是专注分享测试干货的臻叔,喜欢的可以关注哦~

其他精华文章——

UI自动化:

贝壳找房:移动端的UI自动化测试实战分享(真实案例)62 赞同 · 6 评论文章

接口测试:

程序员臻叔:全网最详细的接口测试实战案例!小白必看!154 赞同 · 12 评论文章

抖音测试面试题答案:

面试官:你来设计一下抖音直播功能测试用例吧!143 赞同 · 6 评论文章

百度测试开发面试题答案:

程序员臻叔:8000字-百度测试开发面试题答案(臻叔)214 赞同 · 10 评论文章

❤既然都看到这里啦,请你帮个忙:

1、点赞,让更多小伙伴看到;
2、关注我,持续更新测试干货。

关注我,免费咨询测试问题→→​www.zhihu.com/people/nethuangdz

最后,感谢您的阅读。

你的盛赞就是对创作者最大的支持!


原网址: 访问
创建于: 2023-06-13 10:21:08
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论