Percona Monitoring and Management (PMM)是一款开源的用于管理和监控MySQL和MongoDB性能的开源平台
通过PMM客户端收集到的DB监控数据用第三方软件Grafana画图展示出来
PMM提供了对MyISAM、InnoDB、TokuDB和PXC/Glarera的监控,另外也提供了Query Analytics的功能,可以
检视执行了哪些SQL指令,并对执行效能较差的语法进行优化。另外在新版本还支持了MySQL复制拓扑图结构构造
1 安装
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache yum install -y epel-release yum install docker -y systemctl start docker docker pull percona/pmm-server:latest
查看镜像
[root@jenkins opt]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/percona/pmm-server latest deac61541b67 5 months ago 1.08 GB
[root@jenkins opt]# docker version Client: Version: 1.13.1 API version: 1.26 Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64 Go version: go1.10.3 Git commit: 7f2769b/1.13.1 Built: Mon Aug 5 15:09:42 2019 OS/Arch: linux/amd64 Server: Version: 1.13.1 API version: 1.26 (minimum version 1.12) Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64 Go version: go1.10.3 Git commit: 7f2769b/1.13.1 Built: Mon Aug 5 15:09:42 2019 OS/Arch: linux/amd64 Experimental: false
--关闭防火墙,禁用selinux
groupadd docker
useradd -g docker docker
创建容器
[docker@jenkins ~]$ docker create \ > -v /opt/prometheus/data \ > -v /opt/consul-data \ > -v /var/lib/mysql \ > -v /var/lib/grafana \ > --name pmm-data \ > docker.io/percona/pmm-server /bin/true fc92bd7d4bcc2e2014cbb5a03584ea269e8cea0e268aca4901a6827cf4570529
启动容器
[docker@jenkins ~]$ docker run -d -p 8090:80 --volumes-from pmm-data --name pmm-server --restart always docker.io/percona/pmm-server 8d925d326813083143c04ff6155617738624f4a9e8c6792ae6200bd78e05a214
安装pmm-client
[root@jenkins opt]# rpm -ivh pmm-client-1.17.1-1.el7.x86_64.rpm warning: pmm-client-1.17.1-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY Preparing... ################################# [100%] Updating / installing... 1:pmm-client-1.17.1-1.el7 ################################# [100%]
配置server
[root@jenkins opt]# pmm-admin config --server 192.168.19.229:8090 OK, PMM server is alive. PMM Server | 192.168.19.229:8090 Client Name | jenkins Client Address | 192.168.19.229
创建mysql监控账号
(root@localhost:mysql.sock) [(none)]> create user 'monitor'@'%' identified by '***'; Query OK, 0 rows affected (0.47 sec) (root@localhost:mysql.sock) [(none)]> grant all privileges on *.* to 'monitor'@'%'; Query OK, 0 rows affected (0.02 sec) (root@localhost:mysql.sock) [(none)]> flush privileges; Query OK, 0 rows affected (0.21 sec)
添加remote mysql实例
[root@jenkins opt]# pmm-admin add mysql --user monitor --password *** --host 10.15.7.29 [linux:metrics] OK, now monitoring this system. [mysql:metrics] OK, now monitoring MySQL metrics using DSN monitor:***@tcp(10.15.7.29:3306) [mysql:queries] OK, now monitoring MySQL queries from perfschema using DSN monitor:***@tcp(10.15.7.29:3306) [root@jenkins opt]# pmm-admin list pmm-admin 1.17.1 PMM Server | 192.168.19.229:8090 Client Name | jenkins Client Address | 192.168.19.229 Service Manager | linux-systemd -------------- -------- ----------- -------- --------------------------------- --------------------------------------------- SERVICE TYPE NAME LOCAL PORT RUNNING DATA SOURCE OPTIONS -------------- -------- ----------- -------- --------------------------------- --------------------------------------------- mysql:queries jenkins - YES monitor:***@tcp(10.15.7.29:3306) query_source=perfschema, query_examples=true linux:metrics jenkins 42000 YES - mysql:metrics jenkins 42002 YES monitor:***@tcp(10.15.7.29:3306)
[root@jenkins opt]# pmm-admin check-network PMM Network Status Server Address | 192.168.19.229:8090 Client Address | 192.168.19.229 * System Time NTP Server (0.pool.ntp.org) | 2019-08-08 06:25:51 +0000 UTC PMM Server | 2019-08-08 06:25:50 +0000 GMT PMM Client | 2019-08-08 14:25:52 +0800 CST PMM Server Time Drift | OK PMM Client Time Drift | OK PMM Client to PMM Server Time Drift | OK * Connection: Client --> Server -------------------- ------- SERVER SERVICE STATUS -------------------- ------- Consul API OK Prometheus API OK Query Analytics API OK Connection duration | 372.087µs Request duration | 5.621825ms Full round trip | 5.993912ms * Connection: Client <-- Server -------------- -------- --------------------- ------- ---------- --------- SERVICE TYPE NAME REMOTE ENDPOINT STATUS HTTPS/TLS PASSWORD -------------- -------- --------------------- ------- ---------- --------- linux:metrics jenkins 192.168.19.229:42000 OK YES - mysql:metrics jenkins 192.168.19.229:42002 OK YES -