PMM架构
PMM架构(Percona Monitoring and Management):
- 客户端(agent)向consul的kv中注册自己监控的服务信息
- 存储端(prometheus)从consul提供的服务发现服务地址去分别获取agent注册的信息,然后去一个个抽取exporter产生的监控数据
- Grafana通过读取存储端存储的数据进行展示
- 图中的地址不是直接对外暴露的,有一层nginx转发
- QAN的查询语句分析功能是通过另外的QAN服务单独进行分析并推入prometheus的
- 有一个MySQL实例用于存储整套系统的元数据信息。
- 还有一个大多数人不会投入使用的Orchestrator
PMM基本操作
pmm-admin config --server 192.168.1.22 --server-user test --server-password 123456 # 客户端与服务端连接
pmm-admin add linux:metrics # 添加监控
pmm-admin rm linux:metrics # 删除监控
pmm-admin ping # 检测服务端是否存活
pmm-admin list # 列出为本机添加的所有监控
pmm-admin info # 列出客户端的详细信息
pmm-admin stop | start | restart # 客户端 停止 | 启动 | 重启
PMM的安装与部署
实验环境
client | server | |
IP地址 | 192.168.1.11 | 192.168.1.22 |
客户端
安装MySQL
# 检测有没有安装MySQL的包,如果有移除
[root@client ~]# rpm -qa | grep mysql
[root@client ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
# 安装MySQL
[root@client ~]# rpm -ivh mysql-community-release-el6-5.noarch.rpm
[root@client ~]# yum -y install mysql-community-server
安装percona-toolkit
[root@client ~]# rpm -ivh percona-release-0.1-6.noarch.rpm
[root@client ~]# yum -y install percona-toolkit
安装pmm-client
[root@client ~]# rpm -ivh pmm-client-1.17.1-1.el7.x86_64.rpm
添加PMM监控
[root@client ~]# pmm-admin config --server 192.168.1.22 --server-user test --server-password 123456 # 客户端与服务端连接
[root@client ~]# pmm-admin add linux:metrics # 添加监控
修改MySQL配置文件
[root@localhost ~]# vim /etc/my.cnf
# 在最后添加
log_output=file
slow_query_log=ON
long_query_time=0
log_slow_rate_limit=100
log_slow_rate_type=query
log_slow_admin_statements=ON
log_slow_slave_statements=ON
slow_query_log_always_write_time=1
slow_query_log_use_global_control=all
innodb_monitor_enable=all
userstat=1
进入数据库操作
启动数据库
[root@client ~]# systemctl start mysqld
设置密码
[root@client ~]# mysqladmin -uroot password 123456
进入数据库
[root@client ~]# mysql -uroot -p123456
授权
mysql> grant all on *.* to 'pmm'@'192.168.1.11' identified by '123456';
添加MySQL监控
[root@client ~]# pmm-admin add mysql:metrics --user pmm --password 123456 --host 192.168.1.11 --port 3306
[root@client ~]# pmm-admin add mysql --query-source auto --user pmm --password 123456 --host 192.168.1.11 --port 3306
监控MySQL
[root@server ~]# firefox 192.168.1.22
服务端
安装docker并启动
[root@server ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
[root@server ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@server ~]# yum -y install docker-ce
[root@server ~]# systemctl start docker
启动percona/pmm-server容器
[root@server ~]# docker pull percona/pmm-server
[root@server ~]# docker create -v /opt/prometheus/data -v /opt/consul/data -v /var/lib/mysql -v /var/lib/grafana --name pmm-data percona/pmm-server
c9c6ba9c99dc15315b7fff73845eb4538a97d9fff16801511fb80ef01138ca09
[root@server ~]# docker run -d -p 80:80 --volumes-from pmm-data --restart always --name pmm-server -e SERVER_USER=test -e SERVER_PASSWORD=123456 percona/pmm-server
63d0cc6c04e55cb4b1d0076e1c975524bac099d828e5b2e460f6a2a80d31a5ad
访问网站
[root@server ~]# firefox 192.168.1.22