目录

  • 一、背景介绍
  • 二、具体步骤
    • 1. 安装prometheus
    • 2. 安装 node_exporter
    • 3. 安装grafana
    • 4. 配置 Grafna
    • 5. 配置监控多台服务器
    • 6. 监控mysql

一、背景介绍

压测过程中,我们需要监控服务器、数据库的各项性能指标。最简单的方式,我们可以在服务器上通过一些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

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

1.2 解压并启动

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

通过浏览器输入: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

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

2.2 解压并启动

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

通过浏览器输入:http://your_ip:9100/metrics,能够跳转到如下页面,则说明 node_exporter 安装启动成功

2.3 修改 prometheus.yml 配置

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

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']# 在这里,把 node_exporter 的 ip 和端口号填上- job_name: 'server1'static_configs:- targets: ['localhost:9100']

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

2.4 重启prometheus

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

重启后在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

3.2 解压并启动

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

同样,如果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
# 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']

然后在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

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

6.2 解压并运行

解压

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

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

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

vim .my.cnf

填入mysql的连接信息:

[client]host=localhostport=3306user=xxxxpassword=xxxx

运行mysql_exporter

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

6.3 加入Prometheus.yml配置

 - job_name: mysqlstatic_configs:- targets: ['mysql的ip地址:9104']

配好后保存重启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的页面展示如下:

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

扫码关注程序员杨叔的微信公众号,免费获取更多全栈测试干货内容资料:

prometheus+grafana搭建监控平台监控压测服务器mysql性能相关推荐

  1. 搭建Prometheus+Grafana的云平台监控系统

    1.1 Prometheus和Grafana概述 1.1.1 Prometheus概述 Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由Soun ...

  2. 视频教程-Prometheus+Grafana搭建全方位的监控告警系统-Linux

    Prometheus+Grafana搭建全方位的监控告警系统 高级运维工程师.资深DevOps工程师,精通kubernetes容器编排工具,熟练使用linux操作系统,多年线上线下教学经验 韩先超 ¥ ...

  3. sysbench性能压测以及mysql性能压测

    sysbench性能压测以及mysql性能压测 一.Sysbench是一个模块化的.跨平台.多线程基准测试工具,主要用于各种不同系统的参数下的数据库负载情况. 主要测试方式 cpu性能 磁盘io性能 ...

  4. Prometheus+Grafana 搭建全方位的监控告警系统

    一.Prometheus介绍 Prometheus是一个最初在SoundCloud上构建的监控系统.自2012年成为社区开源项目,拥有非常活跃的开发人员和用户社区.为强调开源及独立维护,Prometh ...

  5. 基于Prometheus+Grafana搭建监控平台-(5)实现监控Solr服务

    基于Prometheus+Grafana搭建监控平台-(1)搭建基础环境,实现监控JVM 基于Prometheus+Grafana搭建监控平台-(2)实现监控elink服务器EIMServer 基于P ...

  6. 基于Prometheus+Grafana搭建监控平台-(2)实现监控elink服务器EIMServer

    EIMServer是由北京华夏易联科技开发有限公司研发的一款可以私有部署的即时通讯服务平台E-Link,服务器是基于OSGI框架研发的java服务器程序,所以也可以通过Prometheus+Grafa ...

  7. 技术实践丨Prometheus+Grafana搭建HBase监控仪表盘

    摘要:Grafana+Prometheus是目前非常流行的监控方案,图形化展示非常强大. 本文分享自华为云社区<Prometheus+Grafana搭建HBase监控仪表盘>,原文作者:L ...

  8. 使用Prometheus+grafana打造高逼格监控平台

    前言: 笔者看来, 监控不应该只是监控,除了及时有效的报警,更应该"好看",因为视觉上的感受更能给我们直观的感受,更能从绚丽的走势中发现异常, 如果你觉得监控就应该像老牌监控nag ...

  9. 搭建 Apache Jmeter 分布式压测与监控

    1.前言 对于运维工程师来说,需要对自己维护的服务器性能瓶颈了如指掌,比如我当前的架构每秒并发是多少,我服务器最大能接受的并发是多少,是什么导致我的性能有问题:如果当前架构快达到性能瓶颈了,是横向扩容 ...

  10. (四) prometheus + grafana + alertmanager 配置Kafka监控

    安装请看https://blog.51cto.com/liuqs/2027365 ,最好是对应的版本组件,否则可能会有差别. (一)prometheus + grafana + alertmanage ...

最新文章

  1. Failed at the node-sass@4.14.0 postinstall script. npm ERR! This is probably not a problem with npm
  2. C# DateTimePicker控件如何精确设置显示时分秒
  3. git bash打印当前文件结构_6 个方便的 Git 脚本
  4. jvm虚拟机 基于栈_守护基于JVM的应用程序
  5. 并发-分布式锁质量保障总结
  6. android ddmlib,通过 ddmlib 使用 adb,构建框架基础库
  7. 6. 添加权限管理模块
  8. Java写file文件上传,在线预览思路
  9. 人工智能与深度学习概念(5)——目标检测-RCNN
  10. javaWeb框架开发
  11. 迅雷手机版苹果版_手机迅雷安卓版下载2019_迅雷手机版下载最新版
  12. 取消全部呼叫转移代码_中国移动的卡取消呼叫转移的快捷方式是什么?
  13. 一些提供代理服务器IP列表的链接
  14. 今日学习在线编程题:小码哥的手下
  15. JQuery 的click失效,无法触发
  16. Vue报错 component lists rendered with v-for should have explicit keys.
  17. 计算机基础1杨石答案第五章,计算机基础课程教学改革与实践
  18. 6.亿级流量电商详情页系统实战
  19. 智能座舱数据存储技术浅析
  20. launch4j使用

热门文章

  1. 中兴2016笔试题答案Java_中兴Java笔试题
  2. iOS播放器SDK-基于FFmpeg解码OpenGL渲染-CYPlayer
  3. 向《天真的女孩投降》观后感
  4. Unix平台下的常用命令技巧之资源与性能
  5. 计算机网络实验报告双机互联,双机互联实验报告.docx
  6. Xcode 报错及解决办法汇总
  7. codeforces 760B B. Frodo and pillows(二分)
  8. 解决:RuntimeError: Tensor for ‘out‘ is on CPU, Tensor for argument #1 ‘self‘ is on CPU, but expected t
  9. Current_Path 获取脚本所在路径(当前路径),取当前时间做文件名(uformat)
  10. Windows 7装机必备 - 主流品牌驱动大集合