1、PMM 架构简介
简单说 PMM 是一个数据库性能监控系统,可以监控mysql,mongo,redis,以及percona其他数据库,
监控分俩端应用,监控台(PMM Server),,上报端(PMM Clients)
PMM Server有docker版本 开箱即用,需要安装的是PMM Clients,并且连接上PMM Server
1、燥起来 安装监控台(PMM Server)
全自动
$ curl -fsSL https://raw.githubusercontent.com/percona/pmm/master/get-pmm.sh -o get-pmm.sh
$ sh get-pmm.sh
OR 手动创建启动容器
$ 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
默认端口80如需要改动修改容器启动参数即可
例如8083:80
2、安装上报端(PMM Clients)
上报端要安装在数据库机器上,并且要能ping通监控台安装机器的ip,并且安装需要有sudo权限的linux用户权限
条件满足即可安装
yum install pmm-client
3、上报端(PMM Clients)添加监控台连接 192.168.100.1:8080为监控台访问地址
pmm-admin config --server 192.168.100.1:8080
添加成功显示如下
3、上报端添加mysql实例
先准备一个专门为监控用的mysql用户pmm,去mysql执行以下代码
GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD ON *.* TO 'pmm'@' localhost' IDENTIFIED BY 'pass' WITH MAX_USER_CONNECTIONS 10;
GRANT SELECT, UPDATE, DELETE, DROP ON performance_schema.* TO 'pmm'@'localhost';
用户建好以后,添加该用户访问的mysql实例
$ sudo pmm-admin add mysql --user pmm --password pass
检查一下 都添加上了 cool
pmm-admin list
可以看到mysql实例已经添加上
但是sql语句分析始终没有出现 根据提示 像这样:
我们打开配置文件
vim /etc/percona-server.conf.d/mysqld.cnf
按照mysql的不同版本 加上如下部分内容:
Percona Server官方推荐如下配置
log_output=file
slow_query_log=ON
long_query_time=0
log_slow_rate_limit=100
log_slow_rate_type=query
log_slow_verbosity=full
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
MySQL 5.6+ or MariaDB 10.0+推荐如下配置,但是这样
innodb_monitor_enable=all
performance_schema=ON
MySQL 5.5 or MariaDB 5.5会因为全量分析日志过多,占用磁盘空间,可以只分析慢查询日志,但是会影响分析质量
log_output=file
slow_query_log=ON
long_query_time=0
log_slow_admin_statements=ON
log_slow_slave_statements=ON
添加完内容重启mysql
systemctl restart mysql.service
sql分析出现
点击详情有具体的sql语句 执行计划 耗时分析等