Percona Monitoring and Management (PMM)是Percona Server一款开源的用于管理和监控MySQL和MongoDB性能的开源平台,通过PMM客户端收集到的DB监控数据用第三方软件Grafana画图展示出来。在这个产品之前,Percona提供了Zabbix和Cacti的图形模板,也许是考虑到了用户部署起来繁琐等问题,Percona发布了PMM Docker镜像,用户只需要下载镜像运行就全部搞定,开箱即用。其架构如下:
因此pmm监控由两部分组成。
1、首先从https://www.percona.com/software/database-tools/percona-monitoring-and-management下载pmm server和pmm client。pmm server提供docker镜像。pmm client为rpm包或二进制包,需要注意下载对应的操作系统的版本。
2、docker安装。安装docker需要3.10之后的内核,也就是rhel/centos 7.x的版本。最新的版本又对container-selinux有版本要求,可能会导致无源的情况,如centos 7.2安装docker 19.03就有依赖找不到。所以最好是安装指定版本的docker如17.12。
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
yum install docker-ce-17.12.0.ce-1.el7.centos
3、加载本地镜像。
cat pmm-server-2.1.0.docker | docker import – pmm-server:2.1.0
[root@bigdata ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
percona/pmm-server 2.1.0 3d05a877b5d7 4 weeks ago 1.49GB
4、创建镜像。
docker create\
-v /opt/prometheus/data\
-v /opt/consul-data\
-v /var/lib/mysql\
-v /var/lib/grafana\
–name pmm-data\
percona/pmm-server:2.1.0 /bin/true
5、启动容器
docker run -d\
-p 80:80 \
–volumes-from pmm-data\
–name pmm-server\
–restart always\
percona/pmm-server:latest
6、查看docker进程。
[root@bigdata ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7dc83eb892e4 percona/pmm-server:2.1.0 “/opt/entrypoint.sh” 12 hours ago Up 12 hours 443/tcp, 0.0.0.0:9999->80/tcp pmm-server
7、打开http://yourip。
PMM客户端安装
安装很简单,只需要rpm -ivh pmm包即可。
但是在pmm-admin执行的时候,报了下列错误:
[root@bigdata ~]# pmm-admin config –server-insecure-tls –server-url=https://admin:123456@172.17.0.1:443
Checking local pmm-agent status…
pmm-agent is not running. Please re-run `pmm-agent setup` with –config-file flag.
检查进行,pmm-agent又是在运行的,如下:
[root@bigdata ~]# ps axu | grep pmm-agent
root 11586 0.0 0.0 112708 968 pts/3 S+ 12:56 0:00 grep –color=auto pmm-agent
root 32005 0.0 0.0 1141056 8324 ? Sl Dec15 1:02 /usr/sbin/pmm-agent –config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml