pmm 对于proxysql 的管理是基于metrics的进行处理的,使用的是proxysql exporter
对于proxysql exporter的添加,比较简单,我们可以通过独立的额容器运行exporter 服务

pmm 参考架构

方便大家对于pmm 加深印象

环境准备

  • docker-compose文件
    内容比较多,包含了mysql,postgres 的配置,以及exporter
 
version: "3"
services: 
  proxysql-metrics:
    build: 
      context: ./proxysql
      dockerfile: Dockerfile
    image: dalongrong/proxysql-metrics
  proxysql:
    image: proxysql/proxysql:2.0.6
    volumes: 
    - "./proxysql.cnf:/etc/proxysql.cnf"
    - "./db:/var/lib/proxysql"
    ports:
    - "6033:6033"
    - "6032:6032"
  pgloader-mysql:
    image: dimitri/pgloader
    command: pgloader mysql://root:dalongrong@mysql/gogs postgresql://postgres:dalong@postgres:5432/appdemo
  gogs:
    image: gogs/gogs
    ports:
      - "10022:22"
      - "3000:3000"
  pmmserver:
    image: percona/pmm-server:1.17
    ports: 
    - "80:80"
  mysqlexporter:
    image: prom/mysqld-exporter
    ports: 
    - "9104:9104"
    environment: 
    - "DATA_SOURCE_NAME=root:dalongrong@(mysql:3306)/"
  mysql:
    image: dalongrong/pmm-mysql
    build: 
     context: ./mysql
     dockerfile: Dockerfile
    ports:
      - 3306:3306
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: dalongrong
      MYSQL_DATABASE: gogs
      MYSQL_USER: gogs
      MYSQL_PASSWORD: dalongrong
      TZ: Asia/Shanghai
  postgres:
    image: dalongrong/pmm-postgres
    build: 
     context: ./pg
     dockerfile: Dockerfile
    ports:
    - "5432:5432"
    environment:
    - "POSTGRES_PASSWORD:dalong"
  pgexporter:
    image: wrouesnel/postgres_exporter:latest
    ports:
    - 9187:9187
    environment:
    - DATA_SOURCE_NAME=postgresql://postgres:dalong@postgres:5432/postgres_exporter?sslmode=disable
  • 说明
    对于mysql 以及postgres 的配置以及dockerfile 就不介绍了,可以参考https://www.cnblogs.com/rongfengliang/p/11306210.html
    proxysql-metrics dockerfile 说明,内容比较简单,就是基于debian 集成pmm client ,为了方便运行添加了一个echo 的服务,方便
    容器一直运行,同时进行操作
FROM debian:stretch
RUN set -ex; \
    apt-get update; \
  apt-get install -y gnupg apt-transport-https; \
  echo 'deb https://repo.percona.com/apt stretch main' > /etc/apt/sources.list.d/percona.list; \
  apt-get update && apt-get install -y --fix-missing --allow-unauthenticated pmm-client; \
  apt-get remove --purge -y gnupg apt-transport-https; \
  apt-get autoremove -y --purge; \
  rm -rf /var/lib/apt/lists/* \
  true
COPY initpmm.sh /root/
COPY entrypoint.sh /root/
RUN chmod +x /root/entrypoint.sh
ENTRYPOINT [ "/root/entrypoint.sh" ]

entrypoint.sh 容器入口

#!/bin/bash
while true; 
 do echo hello world; 
 sleep 1; 
done

initpmm.sh 配置pmm

#!/bin/sh
while ! pmm-admin config --client-name myproxysql --server pmmserver
do
    sleep 1
done

## 启动&&测试

  • 启动
docker-compose up -d
  • 添加proxysql metrics
配置pmm server
docker-compose exec proxysql-metrics sh /root/initpmm.sh
添加metrics 到pmm
docker-compose exec proxysql-metrics  pmm-admin add proxysql:metrics --dsn "radmin:radmin@tcp(proxysql:6032)/"
  • 效果

prometheus target

监控信息

说明

以上对于proxysql 的使用很简单,同时使用pmm 可以快速的进行监控,查看系统状态

参考资料

https://github.com/rongfengliang/proxysql-docker-compose
https://github.com/rongfengliang/pmm-learning
https://www.percona.com/doc/percona-monitoring-and-management/index.html

pmm 添加proxysql metrics的更多相关文章

  1. 【DB宝42】MySQL高可用架构MHA+ProxySQL实现读写分离和负载均衡

    目录 一.MHA+ProxySQL架构 二.快速搭建MHA环境 2.1 下载MHA镜像 2.2 编辑yml文件,创建MHA相关容器 2.3 安装docker-compose软件(若已安装,可忽略) 2 ...

  2. .net core使用App.Metrics+InfluxDB+Grafana进行APM监控

    一.InfluxDB 1.下载InfluxDB wget https://dl.influxdata.com/influxdb/releases/influxdb-1.5.2.x86_64.rpm 2 ...

  3. mysql读写分离——中间件ProxySQL的简介与配置

    mysql实现读写分离的方式 mysql 实现读写分离的方式有以下几种: 程序修改mysql操作,直接和数据库通信,简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配,需要开发人员协助. am ...

  4. ProxySQL 部署 Single Writer Failover 读写分离 (PXC)

    主机信息: Proxysql: 如果你忽略了ProxySQL会报告主机组的变化,我建议把它设置为0,除非你试图调试"某些东西",否则你的日志将很快变得巨大.UPDATE globa ...

  5. 深入理解Flink ---- Metrics的内部结构

    从Metrics的使用说起 Flink的Metrics种类有四种Counters, Gauges, Histograms和Meters. 如何使用Metrics呢? 以Counter为例, publi ...

  6. mysql中间件proxysql实现mysql读写分离

    目录 1. mysql实现读写分离的方式 2. ProxySQL简介 3. ProxySQL安装 4. ProxySQL的Admin管理接口 5. 和admin管理接口相关的变量 5.1 admin- ...

  7. MySQL使用ProxySQL实现读写分离

    1 ProxySQL简介: ProxySQL是一个高性能的MySQL中间件,拥有强大的规则引擎.官方文档:https://github.com/sysown/proxysql/wiki/下载地址:ht ...

  8. 使用App Metrics实现性能监控

    App Metrics监控需要安装InfluxDB时序数据库和Grafana可视化分析工具 1.安装InfluxDB 下载地址:https://portal.influxdata.com/downlo ...

  9. PMM--简介与部署

    一.PMM架构 Percona Monitoring and Management是percona一款开源的用于管理和监控MySQL 和MongoDB性能的开源平台,通过PMM客户端收集到的DB监控数 ...

随机推荐

  1. SQL系列(四)—— 唯一值(distinct)

    有时需要查询某列上的不重复的数据,如: SELECT name FROM student; 结果: name lxy lxy lxy lxy 这样的结果显然不符合我们的需求.如何对列数据进行去重,查询 ...

  2. 100道MySQL常见面试题总结

    原文链接:https://juejin.im/post/5d351303f265da1bd30596f9 前言 本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐 ...

  3. OpenStack 中 RabbitMQ 的使用

    OpenStack 中 RabbitMQ 的使用 本文是 OpenStack 中的 RabbitMQ 使用研究 两部分中的第一部分,将介绍 RabbitMQ 的基本概念,即 RabbitMQ 是什么. ...

  4. maven中pom的继承以及dependencies与dependencyManagement的区别

    https://blog.csdn.net/zzm3280/article/details/84952623 分类专栏: maven   本文转自:https://blog.csdn.net/liut ...

  5. lnmp1.4安装包

    https://lnmp.org/install.html nginx中虚拟机中的配置 location ~ .*\.(php|php5)?$ { try_files $uri =404; fastc ...

  6. dotnet打包类库

    打包类库成Nuget包:dotnet pack --configuration Release --include-source --include-symbols --no-build,注意,需要在 ...

  7. (原创)使用C#开发PLC上位机监控系统客户端应用程序

    PLC客户端监控系统的特点: 0.客户端系统软件可部署在 多个管理层的PC机上,或者需要部署在距离服务器较远区域的PC机上,通过网线连接到服务器端的交换机. 1应用范围: (1)所有客户端都只有监视功 ...

  8. c# Windows服务管理

    .NET Framework中提供的类库可以很方便的实现对windows服务的安装.卸载.启动.停止.获取运行状态等功能.这些类都在System.ServiceProcess命名空间下. 所以,在开始 ...

  9. 将fileupload标签的值清空

    在开发中遇到了这样一个问题,在一个form表单中,有一个fileupload标签,新增,修改都是同一个form,当我第一次选择了上传文件路径,并且提交之后,第二次再使用这个form,这次没有选择上传文 ...

  10. java List深拷贝示例

    示例一 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; import java ...