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