安装部署pmm2并监控mycat2

本文详细介绍了如何在CentOS7环境下安装部署Percona Monitoring and Management (PMM2)服务端和客户端,以及如何将mycat2的监控指标注册到PMM2,通过PMM2的web-ui(Grafana)进行监控。涉及的关键步骤包括Docker的安装、PMM2服务端和客户端的配置、mycat2监控指标的暴露和注册,以及监控面板的导入和调整。
摘要由CSDN通过智能技术生成

前言

pmm 全称 Percona Monitoring and Management, 是 percona 公司的开源数据库监视器,其架构可通过官网文档 https://docs.percona.com/percona-monitoring-and-management/details/architecture.html 去了解,本质还是 prometheus + grafana 模式,但是使用更便利了。
部署环境如下:
主机1:centos7, ip=192.168.1.20,hostname=h20,安装 pmm2 的服务端,
主机2:centos7, ip=192.168.1.30,hostname=h30,安装 mycat2 和 pmm2 的客户端
主机3:windows10, ip=192.168.1.10, 什么也不用装,用于测试访问服务端提供的web-ui

1. 安装 pmm2 服务端

pmm2服务器安装在 主机1,以下均为在主机1 内的操作

1.1 安装docker

具体安装步骤参考:Install Docker Engine on CentOS 以下列出了关键命令

yum install -y yum-utils
# 安装 docker 仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 启用稳定版
yum-config-manager --enable docker-ce-stable
# 列出历史版本
yum list docker-ce --showduplicates |sort -r

# 安装 docker
yum install -y docker-ce docker-ce-cli containerd.io
# 查看docke 版本
docker -v

# 查看docker服务 状态
systemctl status docker
# 设置开机自启动
systemctl enable docker
# 取消开机自启动
systemctl disable docker
# 启动docker 服务
systemctl start docker
# 关闭 docker 服务
systemctl stop docker

1.2 安装 pmm-server

参考:https://docs.percona.com/percona-monitoring-and-management/setting-up/server/docker.html
关键命令如下:

# 拉取镜像
docker images
docker pull percona/pmm-server

# 创建持久化数据容器
docker create --volume /srv --name pmm-data percona/pmm-server /bin/true

# 启动 PMM 服务器(注意网络模式为与宿主机共用网络:--network host)
docker run --detach --restart always --network host --volumes-from pmm-data \
--name pmm-server percona/pmm-server

# 检查数据卷是否是 /srv, 否则可能会导致 PMM 数据丢失
docker inspect pmm-data |grep Destination && docker inspect pmm-server |grep Destination

# 容器常用操作
docker ps -a
docker stop pmm-server
docker restart pmm-server
docker rm pmm-server pmm-data

# 进入容器
docker exec -it pmm-server bash

# 开放端口(易漏操作)
firewall-cmd --zone=public --permanent --add-port=7771-7773/tcp --add-port=80/tcp --add-port=443/tcp
firewall-cmd --reload

以下为进入容器内的操作

# 修改时区
cp  /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 查看时区是否为:CST
date

# 查看pmm-managed的错误日志
tail -100 /srv/logs/pmm-managed.log

1.3 登录web-ui(grafana)

在主机3浏览器打开: https://192.168.1.20,初始账号和密码都是 admin
在这里插入图片描述

2. 安装 pmm2 客户端

pmm2的客户端安装在mycat2 所在的主机上,用于收集mycat2的监控数据,

参考文档:https://docs.percona.com/percona-monitoring-and-management/setting-up/client/index.html
以下为使用yum安装方式,关键命令如下:

# 安装 percorna 系列产品的安装工具:percoan-release
yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
# 查看启用的 percona 库
percona-release show

# 启用 pmm2-client 库
percona-release enable pmm2-client
# 查看历史版本
yum search --showduplicates pmm2-client
# 安装 pmm2-client
yum install -y pmm2-client

# 查看是否安装成功
pmm-admin -v

3. 向 pmm-server注册mycat2开放的监控指标

3.1 打开 mycat2 的监控指标

参考:mycat2权威指南 - 监控 - Prometheus与Grafana监控

以下命令 在主机2(mycat2 所在的主机)操作:

# 开放端口
firewall-cmd --zone=public --permanent --add-port=7066/tcp
firewall-cmd --reload

# 进入 mycat2 安装目录(每个人的可能与此不同)
cd /usr/local/mycat

# 修改配置文件
vi conf/server.json

server.json

{
   
  "properties":{
   "prometheusPort":7066}, //关键
  "server": {
   
    "serverVersion": "8.0.27-mycat-2.0",
    "bufferPool": {
   },
    "ip": "0.0.0.0",
    "mycatId": 1,
    "port": 8066
  }
}

在主机3 浏览器查看是否能访问到这些指标
http://192.168.1.20:7066/metrics

在这里插入图片描述

3.2 向 pmm-server注册

以下命令 在主机2(mycat2 所在的主机)操作:

3.2.1 向pmm-server 注册mycat2 所在的主机节点

pmm-admin list
pmm-admin status

pmm-admin config --server-insecure-tls --server-url=https://admin:admin@192.168.1.20:443 192.168.1.20 generic h20

可以看到多了一条node记录
在这里插入图片描述

3.2.2 向pmm-server 注册mycat2 的监控指标

# 注意 service-name=mycat-jvm,这个名称要与后面讲到的json 面板中设置的一致,所有不用改变这个名称
pmm-admin add external --scheme=http --listen-port=7066 --metrics-path=/metrics --service-name=mycat-jvm 

可以看到多了一条 service
在这里插入图片描述

3.2.3 检测是否能查询到mycat2的监控指标

在菜单“Explorer ” 中查询 mycat2 的 指标 jvm_info ,点 Run query 看是否有结果
在这里插入图片描述

3.3 导入mycat2的监控面板

依次单击菜单 +Importupload json file,上传 mycat2 提供的面板文件(先下载):Mycat2-monitor.json
在这里插入图片描述
在这里插入图片描述
导入之后的效果如下,可见这个面板是有问题的,需要简单修改下面板文件
在这里插入图片描述

删掉之前的面板,重新导入我修改后的面板文件(在文章末尾),修改后的面板显示效果如下
在这里插入图片描述
我修改后的面板文件(Mycat2-monitor-update.json):

{
   
  "annotations": {
   
    "list": [
      {
   
        "builtIn": 1,
        "datasource": "-- Grafana --",
        "enable": true,
        "hide": true,
        "iconColor": "rgba(0, 211, 255, 1)",
        "name": "Annotations & Alerts",
        "type": "dashboard"
      }
    ]
  },
  "description": "0.01",
  "editable": true,
  "gnetId": null,
  "graphTooltip": 0,
  "id": 15,
  "iteration": 1593676032267,
  "links": [],
  "panels": [
    {
   
      "datasource": "Metrics",
      "fieldConfig": {
   
        "defaults": {
   
          "custom": {
   
            "align": null
          },
          "mappings": [],
          "thresholds": {
   
            "mode": "absolute",
            "steps": [
              {
   
                "color": "green",
                "value": null
              },
              {
   
                "color": "red",
                "value": 80
              }
            ]
          }
        },
        "overrides": []
      },
      "gridPos": {
   
        "h": 7,
        "w": 24,
        "x": 0,
        "y": 0
      },
      "id": 30,
      "interval": "1m",
      "maxDataPoints": 100,
      "options": {
   
        "orientation": "auto",
        "reduceOptions": {
   
          "calcs": [
            "mean"
          ],
          "fields": "",
          "values": false
        },
        "showThresholdLabels": false,
        "showThresholdMarkers": true
      },
      "pluginVersion": "7.0.4",
      "targets": [
        {
   
          "expr": "mycat_cpu_utility{service_name=\"$service_name\",instance=\"$instance\"}",
          "interval": "",
          "legendFormat": "",
          "refId": "A"
        }
      ],
      "timeFrom": "1h",
      "timeShift": null,
      "title": "CPU利用率",
      "type": "gauge"
    },
    {
   
      "aliasColors": {
   },
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "Metrics",
      "description": "mycat2 客户端数量",
      "fieldConfig": {
   
        "defaults": {
   
          "custom": {
   
            "align": null
          },
          "mappings": [],
          "thresholds": {
   
            "mode": "absolute",
            "steps": [
              {
   
                "color": "green",
                "value": null
              },
              {
   
                "color": "red",
                "value": 80
              }
            ]
          }
        },
        "overrides": []
      },
      "fill": 1,
      "fillGradient": 0,
      "gridPos": {
   
        "h": 6,
        "w": 24,
        "x": 0,
        "y": 7
      },
      "hiddenSeries": false,
      "id": 8,
      "interval": "1m",
      "legend": {
   
        "avg": false,
        "current": false,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": false
      },
      "lines": true,
      "linewidth": 1,
      "maxDataPoints": 1000,
      "nullPointMode": "null",
      "options": {
   
        "dataLinks": []
      },
      "percentage": false,
      "pluginVersion": "7.0.4",
      "pointradius": 2,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
   
          "expr": "client_connection{service_name=\"$service_name\",instance=\"$instance\"}",
          "format": "time_series",
          "interval": "",
          "legendFormat": "",
          "refId": "B"
        }
      ],
      "thresholds": [],
      "timeFrom": "1h",
      "timeRegions": [],
      "timeShift": null,
      "title": "连接mycat2 客户端数量",
      "tooltip": {
   
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
   
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
   
          "$$hashKey": "object:1081",
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        },
        {
   
          "$$hashKey": "object:1082",
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ],
      "yaxis": {
   
        "align": false,
        "alignLevel": null
      }
    },
    {
   
      "aliasColors": {
   },
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "Metrics",
      "description": "",
      "fieldConfig": {
   
        "defaults": {
   
          "custom": {
   },
          "mappings": [],
          "thresholds": {
   
            "mode": "absolute",
            "steps": [
              {
   
                "color": "green",
                "value": null
              },
              {
   
                "color": "red",
                "value": 80
              }
            ]
          }
        },
        "overrides": []
      },
      "fill": 1,
      "fillGradient": 0,
      "gridPos": {
   
        "h": 8,
        "w": 24,
        "x": 0,
        "y"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值