Percona Monitoring and Management (PMM)是一款开源的用于管理和监控MySQL和MongoDB性能的开源平台,通过PMM客户端收集到的DB监控数据用第三方软件Grafana画图展示出来。在这个产品之前,Percona提供了Zabbix和Cacti的图形模板,也许是考虑到了用户部署起来繁琐等问题,Percona发布了PMM Docker镜像,用户只需要下载镜像运行就全部搞定,开箱即用相当easy!
PMM架构如下图所示:
模块说明:
-
Query Analytics (QAN):用来展示MySQL慢查询日志。
-
Prometheus:是一个开源的服务监控系统和时间序列数据库,用来聚集DB的监控数据。
-
Grafana:将Prometheus里面的数据画图展示出来。
三、部署
系统:CentOS-7.2
1、Docker安装
# yum install docker -y
2、PMM Server安装
(1)下载PMM Server Docker镜像
# 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 |
注意 要按自己的文件夹来 当然你要是默认安装 就最好了
(2)启动
# docker run -d\ -p 80:80 \ --volumes-from pmm-data\ --name pmm-server\ --restart always\ percona/pmm-server:latest |
注意 80:80 是端口映射的关系 如果不想用 可以这样
-p 8080:80
(3)查看Docker运行状态
(4)打开浏览器http://yourip即可
选第二个
Component | URL |
PMM首页 | http://yourip |
Query Analytics (慢日志分析) | http://yourip/qan/ |
Metrics Monitor (Grafana) | http://yourip/graph/ user name: admin password: admin |
Orchestrator | http://yourip/orchestrator |
3、PMM Client安装
(1)制作yum源
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
(2)连接PMM Server
# pmm-admin config --server yourip
pmm-admin config --server 192.168.100.1:8080 端口改了这么访问 |
(3)增加MySQL和MongoDB监控服务
# pmm-admin add mysql --user admin --password 123456 --host 192.168.148.21 # pmm-admin add mongodb --cluster rs1 --uri mongodb://admin:123456@localhost:27017 |
(4)查看
# pmm-admin list
五、监控页面展示
OS系统
MySQL
MySQL慢查询分析
MongoDB
六、Email报警
报警是通过Grafana发出的,内置有Email、Webhook、slack、pagerduty,可惜没有微信,老外应该没听过这个玩意,所以这里我介绍一下Email报警是如何配置的。
1、首先进入docker shell里,见下面截图:
# docker ps # docker exec -it 75d3be875849 /bin/bash |
2、修改/etc/grafana/grafana.ini配置文件:
#################################### SMTP / Emailing ########################## [smtp] enabled = true host = smtp.126.com:25 user = chunyang_he@126.com password = 123456 ;cert_file = ;key_file = ;skip_verify = false from_address = chunyang_he@126.com |
3、重启Docker生效
# docker stop 75d3be875849
# docker start 75d3be875849
4、页面配置
这一步步骤繁琐,具体请参考视频演示:http://pan.baidu.com/s/1i4OyGo1
效果如下图:
参考文献: