PMM部署方案

安装包准备

PMM 有两种安装方式:

  • 使用Docker进行部署
  • 直接下载官方提供的集成了PMM的OVF文件

部署环境

  1. 操作系统: Centos 7
  2. 内存:3G
  3. 硬盘:30GB

逻辑架构

部署步骤

  • 操作系统是部署Docker
    1
    2
    3
    yum -y install docker
    systemctl start docker.service
    systemctl enable docker.service
  • Docker上部署PMM
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    docker pull percona/pmm-server:latest

    docker create \
       -v /opt/prometheus/data \
       -v /opt/consul-data \
       -v /var/lib/mysql \
       -v /var/lib/grafana \
       --name pmm-data \
       percona/pmm-server:latest /bin/true

     docker run -d \
       -p 80:80 \
       --volumes-from pmm-data \
       --name pmm-server \
       --restart always \
       percona/pmm-server:latest

至此PMM基于Docker上的安装就结束了
默认密码是admin/admin

配置

  • 监控告警通知工具

    1
    2
    3
    4
    5
    6
        集成有多种告警通知方案,dingding,telegram,email等等,实时性较高的telegram;在这里,主要就telegram来进行配置:
    登录系统后,进入[Alerting]----[Notification channels]----[+new channels]
    输入name之后,在type栏选择telegram,然后去申请telegram api进行配置。
    telegram bot api 需要关注@BotFather之后按提示进行操作,创建好bot之后,新建一个聊天群组,将bot与需要接收通知的人加入到群组中。之后发送/hello @dbotibot,之后通过这个方法获取到chat_id
    https://api.telegram.org/botxxx:xxx/getUpdates
    将获取到底id配置到配置项里面,测试发送,能正常收到信息即可。
  • 配置监控对象

    1
    2
    3
    4
    5
    6
    在上报端安装需要安装client并且进行配置,才能够将信息提交到PMM服务器上。
    yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
    yum -y install pmm-client

    完成安装之后可以使用pmm-admin命令行模式进行管理
    pmm-admin config --server x.x.x.x 命令将被监控端数据提交到监控端。
  • 添加相关监控项

    1
    2
    3
    4
    5
    pmm-admin add xxxx name option添加监控到视图

    如需要监控mysql:

    pmm-admin add mysql --user=xxx --password=xxx --host=x.x.x.x(如果在上报端执行,则此处填写本机ip;如果在收集端执行,此处执行mysql端ip)
  • 监控MYSQL需要安装percona-tookit,需要提前安装环境包:

    1
    2
    yum -y install perl-Digest-MD5 perl-DBI  perl-DBD-MySQL  perl-TermReadKey perl-devel perl-Time-HiRes perl-IO-Socket-SSL
    yum -y install percona-toolkit

验收

验收其实很简单,打开home dashboard,查看监控项是否已经被加入,数据是否能正常被更新

1
http://x.x.x.x/graph/打开平台网址

需要针对性检查:

  • Query analytics
  • Mysql
  • PMM
    每项都必须进行校验数据是否被收集更新,另外,可以对数据库或者服务器进行一个压力测试,以检测数据是否被正常收集。