性能压测环境部署和搭建

一、Promethues(普罗米修斯)监控架构简介

下面是官方给出的架构图:
在这里插入图片描述

2. 各个组件介绍

下面是对于里面主要的组件的介绍:

  • 用于采集和存取时间序列数据的 Prometheus server
  • 用于监测应用的客户w端库 client lib,在客户端这里,图中没有标出)
  • 用于支持短期的作业(Short-lived jobs)的 push gateway(下面有Short-lived jobs和push gateway的定义)
  • 诸如 HAProxy,StatsD,Graphite 等服务的专用 exporter (下面有他的定义)
  • 用于处理告警的 alertmanager
  • PromQL是Prometheus内置了一个强大的数据查询语言。
  • Grafana是可视化的工具。
  • docker镜像是有Prometheus的,所以Prometheus能够在K8s上迅速的部署
  • Exporters/Jobs:Prometheus的数据采集组件,负责收集目标对象(host, container…)的性能数据,并通过HTTP接口提供给Prometheus Server。支持数据库、硬件、消息中间件、存储系统、http服务器、jmx等。
  • Short-lived jobs:瞬时任务的场景,无法通过pull方式拉取,需要使用push方式,与PushGateway搭配使用
  • PushGateway:应对部分push场景的组件可选组件,这部分监控数据先推送到Push Gateway上,然后再由Prometheus Server端拉取 。用于存在时间较短,可能在Prometheus来拉取之前就消失了的 jobs

由于Prometheus基于Golang编写,所以是原生支持go的。
此外还有以下特点:

  1. 定义了开放指标数据标准:支持pull和push两种方式的数据采集,以基于HTTP的Pull方式采集时序数据,只有实现了prometheus监控数据格式才可以被prometheus采集;以Push方式向中间网关(Gateway)推送时序数据,能更灵活地应对各种监控场景。
  1. 支持通过静态文件配置和动态发现机制发现监控对象,自动完成数据采集。prometheus目前已经支持Kubernetes、Consul等多种服务发现机制,可以减少运维人员的手动配置环节。

所以,如果你是在k8s(Kubernetes)上面部署Prometheus监控,**可以通过对外暴露服务(service的方式,利用Prometheus进行监控。

开始安装软件,探索之旅

1、go环境安装

wget https://go.dev/dl/go1.17.6.linux-amd64.tar.gz

tar -xvf go1.17.6.linux-amd64.tar.gz -C /usr/local/

vim /etc/profile

export PATH=$PATH:/usr/local/go/bin

source /etc/profile


返回值 go version go1.16 linux/amd64

2、Prometheus 安装

1.1在linux服务器上下载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
./prometheus --config.file=prometheus.yml
通过浏览器输入:http://your_ip:9090,能够跳转到如下页面,说明 prometheus 安装启动成功

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

1.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

1.2 解压并启动

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

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

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的监控平台。

3.3配置数据源(Data sources

3.4配置Dashboard 配置

4、配置监控多台服务器

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的监控数据了

5、监控mysql

5.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下载不了,可以web下载:mysqld_exporter安装包

5.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=localhost
   port=3306
   user=xxxx
   password=xxxx

运行mysql_exporter

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

5.3 加入Prometheus.yml配置

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

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

6.4 配置 Dashboard 模版
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值