这篇文章本来是打算使用pmm 进行数据库监控的,但是居然参考官方文档使用docker 运行起来有点问题,所以直接改用
exporter 进行处理,但是比pmm 弱好多

pmm 的参考架构

说明,以上图比较早了, 实际上也可以监控mongodb,同时也是使用exporter处理的,只是pmm 基于grafanna 的扩展比较多
对于系统分析指标更全

环境准备

  • docker-compose 文件
 
version: "3"
services: 
  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"
      - "3001:3000"
    volumes:
      - ./data/gogs:/data
  mysqlexporter:
    image: prom/mysqld-exporter
    ports: 
    - "9104:9104"
    environment: 
    - "DATA_SOURCE_NAME=root:dalongrong@(mysql:3306)/"
  grafana:
    image: grafana/grafana
    ports:
    - "3000:3000"
  prometheus:
    image: prom/prometheus
    volumes:
    - "./prometheus.yml:/etc/prometheus/prometheus.yml"
    ports:
    - "9090:9090" 
  mysql:
    image: mysql:5.7.16
    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:
    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 、pg 以及对应的exporter 同时还有一个gogs git 服务,同时也包含了一个mysql 到pg 迁移的工具pgloader
  • promethues 配置文件
 
scrape_configs:
  - job_name: pg
    metrics_path: /metrics
    scrape_interval: 10s
    scrape_timeout: 10s
    static_configs:
      - targets: ['pgexporter:9187']
  - job_name: mysql
    metrics_path: /metrics
    scrape_interval: 10s
    scrape_timeout: 10s
    static_configs:
      - targets: ['mysqlexporter:9104']
  • pg dockerfile
    这个是改动过的pg 镜像,添加了pmm client (测试用的),里面包含了与pmm 集成的配置,但是暂时没用到,后期会尝试使用
 
FROM postgres:latest
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 --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 init.sql /docker-entrypoint-initdb.d/
COPY initpmm.sh /root/

启动&&测试

  • 启动
docker-compose up -d
  • 配置grafanna
    主要是关于prometheus 以及dashboard json 文件的导入, 具体文件参考github 项目
  • 配置gogs git server
    打开 http://localhost:3001 就可以进行配置了
  • 运行数据导入操作
    目的很简单就是进行数据的一些操作,多些监控指标的数据
    docker-compose up pgloader-mysql
  • 效果

说明

以上是一个简单的集成,实际上pmm还是一个不错的选择,后边重新配置下,运行起来,pmm还是不错的数据库监控工具。

参考资料

https://grafana.com/grafana/dashboards/6742/revisions
https://grafana.com/grafana/dashboards/6239/revisions
https://github.com/rongfengliang/mysql-pg-exporter-prometheus-grafana-docker-compose

promethues exporter+ grafana 监控pg+mysql的更多相关文章

  1. 【开源监控】Prometheus+Node Exporter+Grafana监控linux服务器

    Prometheus Prometheus介绍 Prometheus新一代开源监控解决方案.github地址 Prometheus主要功能 多维 数据模型(时序由 metric 名字和 k/v 的 l ...

  2. [k8s]prometheus+grafana监控node和mysql(普罗/grafana均vm安装)

    https://github.com/prometheus/prometheus Architecture overview Prometheus Server Prometheus Server 负 ...

  3. Grafana+Prometheus系统监控之MySql

    架构 grafana和prometheus之前安装配置过,见:Grafana+Prometheus打造全方位立体监控系统 MySql安装 MySql的地位和重要性就不言而喻了,作为开源产品深受广大中小 ...

  4. 使用Prometheus+Grafana监控MySQL实践

    一.介绍Prometheus Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采 ...

  5. Prometheus+Grafana监控MySQL、Redis数据库

    俗话说,没有监控的系统就是在裸奔,好的监控就是运维人员的第三只手,第三只眼.本文将使用prometheus及Grafana搭建一套监控系统来监控主机及数据库(MySQL.Redis). 1.  安装G ...

  6. prometheus+grafana监控mysql

    prometheus+grafana监控mysql 1.安装配置MySQL官方的 Yum Repository(有mysql只需设置监控账号即可) [root@localhost ~]# wget - ...

  7. 初试 Prometheus + Grafana 监控系统搭建并监控 Mysql

    转载自:https://cloud.tencent.com/developer/article/1433280 文章目录1.Prometheus & Grafana 介绍1.1.Prometh ...

  8. 安装prometheus+grafana监控mysql redis kubernetes等

    1.prometheus安装 wget https://github.com/prometheus/prometheus/releases/download/v1.5.2/prometheus-1.5 ...

  9. [转帖]安装prometheus+grafana监控mysql redis kubernetes等

    安装prometheus+grafana监控mysql redis kubernetes等 https://www.cnblogs.com/sfnz/p/6566951.html plug 的模式进行 ...

随机推荐

  1. standard_init_linux.go:178: exec user process caused "no such file or directory"

    golang docker build 制作完进项后运行报错 出现该问题的原因是编译的环境和运行的环境不同,可能有动态库的依赖 1.默认go使用静态链接,在docker的golang环境中默认是使用动 ...

  2. 《即时消息技术剖析与实战》学习笔记3——IM系统如何保证消息的实时性

    IM 技术经历过几次迭代升级,如图所示: 从简单.低效的短轮询逐步升级到相对效率可控的长轮询: 全双工的 Websocket 彻底解决了服务端的推送问题: 基于 TCP 长连接衍生的 IM 协议,能够 ...

  3. MethodInvoker委托,跨线程访问

    Invoke(new MethodInvoker(delegate { textBox1.Enabled = true; })); 上面是简单缩写,也可以写成 private void btnOK_C ...

  4. oracle grant 授权语句

    --select * from dba_users; 查询数据库中的所有用户 --alter user TEST_SELECT account lock; 锁住用户 --alter user TEST ...

  5. System.ValueTuple 未定義或匯入預先定義的類型

    System.ValueTuple 没有定义或者导入 'System.ValueTuple´2´ is not defined or imported System.ValueTuple 未定義或匯入 ...

  6. Python基础8

    jupyter notebook 安装目录插件, 步骤

  7. js 对象克隆方法总结(不改变原对象)

    1.通用对象克隆: function clone(obj){ let temp = null; if(obj instanceof Array){ temp = obj.concat(); }else ...

  8. Fedora 29 安装 GitBook 教程

    Fedora 29 安装 GitBook 教程 本文原始地址:https://sitoi.cn/posts/53731.html 安装 nvm 安装 nvm curl -o- https://raw. ...

  9. 网络空间安全基础篇(1)----nmap的使用

    nmap工具通俗一点说,就是利用nmap工具来对靶机的所有端口及其开启的服务进行扫描,以便于黑客入侵靶机时,知道用什么漏洞去攻击. nmap常用的命令集(标为红色的一般为常用参数): sV 扫描版本O ...

  10. kubernetes(k8s)与其架构

    1. kubernetes简介 kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写.是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是 ...