0 修改docker默认存储路径
vim /etc/sysconfig/docker 在启动项OPTIONS=添加 --graph = "datadir" 并重启服务
1 server端执行
curl -sSL https://get.daocloud.io/docker | sh
docker pull percona/pmm-server
创建数据卷容器
docker create -v /opt/prometheus/data(监控数据) -v /opt/consul-data(元数据) -v /var/lib/mysql (mysql数据) -v /var/lib/grafana(grafana)数据 --name pmm-onlinedata percona/pmm-server:latest /bin/true
运行容器,使用数据卷容器
docker run -d -p 80:80 -p 9090:9090 --volumes-from pmm-data -e METRICS_RETENTION=168h(设置保留时间) --name pmm-server --restart always percona/pmm-server:latest
2 频率调整
sed -i 's/scrape_interval: 1s/scrape_interval: 1m/g' prometheus.yml
2 client端执行
1 创建用户
GRANT SELECT, RELOAD, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'pmm'@'localhost' IDENTIFIED BY 'PMM';
GRANT SELECT, UPDATE, DELETE, DROP ON `performance_schema`.* TO 'pmm'@'localhost';
2 执行命令
yum install https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-4.noarch.rpm && yum install pmm-client -y
mysql -e 'set global innodb_monitor_enable=all;'
pmm-admin config --client-name hostaname --server pmm-server 配置通信
3 访问链接
http://pmm-server
4 web界面认证
1 禁止匿名登录
docker exec -it pmm-server bash
vi /etc/grafana/grafana.ini
[auth.anonymous]
# enable anonymous access
#enabled = True
2 更新管理员账号
sqlite3 /var/lib/grafana/grafana.db
update user set password='59acf18b94d7eb0694c61e60ce44c110c7a683ac6a8f09580d626f90f4a242000746579358d77dd9e570e83fa24faa88a8a6', salt ='F3FAxVm33R' where login ='admin';//密码为admin
3 重启服务
systemctl restart 容器ID
4 mysql监控
方法1 pmm-admin add mysql --user --password --host --port 3306 --query-source perfschema hostname --disable-queryexamples //开启性能模式 会采用QAN-API 这里禁掉
方法2 pmm-admin add mysql:metrics --user --password --host --port 3306 开启性能模式 不查询PSF库
pmm-admin add mysql:queries --user --password --host --port 3306 --disable-queryexamples 查询PFS库 禁掉QAN-API
注意 1 这里的PMM-CLIENT代替了mysql_exporter作用,已经做了封装
2 采用--query-source后会采用QAN-API接口,然后分析pfs库的慢日志和一些其他已经收集的指标 确保 statement_digest 已经开启慢日志采样
3 说明
1 mysql (Add complete monitoring for MySQL instance (linux and mysql metrics, queries).)
2 linux:metrics (Add this system to metrics monitoring)
3 mysql:metrics (Add MySQL instance to metrics monitoring).
4 mysql:queries (Add MySQL instance to Query Analytics.)
5 proxysql监控
pmm-admin add proxysql --dsn "stats:stats@tcp(localhost:6032)/"
6 mongodb监控
pmm-admin add mongodb --uri mongodb://host:port/ shard1
pmm-admin add mongodb --uri mongodb://host:port/ cluster
7 redis监控
redis服务机器:nohup ./redis_exporter -redis.addr host:port -web.listen-address 0.0.0.0:port1 -redis.alias hostname
监控机器 :pmm-admin add external:metrics hostname host:port1 --interval 1s --timeout 1s
注意 因为PMM本身只是为了监控mysql而生,所以需要手动执行redis_exporter
8 注意点
1 不使用配置PMM的Query Analytics
2 清理主模板.防止grafana出现卡顿
3 PMM-CLIENT分为本地监控+远程监控两种模式,一旦建立远程监控模式,就只能监控远程数据库而无法监控Linux本机,适合阿里云环境的本机监控,物理机建议还是采用本地监控方式
4 如何修改PMM的监控数据保留时间
1 进入容器修改 /etc/supervisord.d/pmm.ini 的--storage.local.retention
2 重启整个容器
3 观察整个磁盘容量是否减少,到了过期时间是会自动清理的
5 如果通过pmm-admin 更改source ip 有问题 可直接修改 /usr/local/percona/pmm-client/pmm.yml