title: MySQL:6.Percona Monitoring and Management監(jiān)控MySQL性能
categories: 數(shù)據(jù)庫
tags:
- MySQL
timezone: Asia/Shanghai
date: 2019-03-10
簡介
Percona Monitoring and Management (PMM)是一款開源的用于管理和監(jiān)控MySQL和MongoDB性能的開源平臺,通過PMM客戶端收集到的DB監(jiān)控數(shù)據(jù)用第三方軟件Grafana畫圖展示出來。
PMM提供了對MyISAM、InnoDB、TokuDB和PXC/Glarera的監(jiān)控,另外也提供了Query Analytics的功能,可以檢視執(zhí)行了哪些SQL指令,并對執(zhí)行效能較差的語法進行優(yōu)化。另外在新版本還支持了MySQL復制拓撲圖結構構造。
PMM針對操作系統(tǒng)的部份也提供了硬盤、網絡、CPU和RAM的監(jiān)控,特別的是它提供了Context switches、Processes和interrupts的監(jiān)控,Context Switches可以看到CPU上下切換文的狀況,Processes可以方便了解系統(tǒng)有多少程序在等待I/O。
PMM Server是作為Docker鏡像distributed,而PMM Client就是一般的RPM,它需要安裝Server端和Client端軟件。
Server組件
默認情況下,Metrics Monitor的保留期設置為30天,PMM Query Analytics的保留期設置為8天。
Query Analytics(QAN)是用來搜集指令并作性能分析的,其組件分別說明如下:
- QAN API:作為percona-qan-agent后端儲存和讀取Query資料用。
- QAN APP:提供圖形化分析介面。
Metrics Monitor(MM)組件提供了MySQL和MongoDB歷史監(jiān)控信息,其組件分別說明如下:
Prometheus:一個開源的服務監(jiān)控系統(tǒng)和時間序列數(shù)據(jù)庫,它連接到PMM Client上的exporter聚集DB的監(jiān)控數(shù)據(jù)。
– Consul:提供API讓PMM Client可以遠端替Prometheus新增、移除hosts,同時它也儲存了監(jiān)控的metadata。
Grafana:這是一個第三方Dashboard和圖形構建器,用于可視化Prometheus中聚合的數(shù)據(jù),以Web呈現(xiàn)。
– Percona Dashboards:是由Percona開發(fā)的一組用于Grafana的儀表板。
上述的2個Web頁面都能從PMM Landing Page(就是PMM首頁)直接連結。
Client組件
- ppm-admin:命令行的PMM Client管理工具,用來新增、移除監(jiān)控的資料Instance。
- percona-qan-agent:用于搜集QAN查詢效能性能資料,同時連結和傳送資料給PMM Server中的QAN API。
- node_exporter:Prometheus exporter用于搜集一般系統(tǒng)信息(https://github.com/prometheus/node_exporter)。
- mysqld_exporter:Prometheus exporter用于搜集MySQL Server的信息(https://github.com/percona/mysqld_exporter)。
- mongodb_exporter:Prometheus exporter用于搜集MongoDB server的信息(https://github.com/percona/mongodb_exporter)。
環(huán)境
[root@centos181003 ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
curl http://11.11.11.63/ping
{"version":"1.17.1"}
第一步:安裝服務端
https://hub.docker.com/r/percona/pmm-server
概覽:用一臺A服務器運行監(jiān)控程序,監(jiān)控程序是基于Docker構建的。
PMM服務器的Docker映像公開托管在https://hub.docker.com/r/percona/pmm-server。
## 1.拉取PMM Server鏡像
docker pull percona/pmm-server
## 2.創(chuàng)建一個容器用來保存PMM Server數(shù)據(jù)
## 此容器不運行,它只是用于確保在升級到較新的PMM Server映像時保留所有PMM數(shù)據(jù)。
## 除非您打算清除所有PMM數(shù)據(jù)并重新開始,否則請勿刪除或重新創(chuàng)建此容器。
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
## 3.運行PMM Server鏡像
docker run -d \
-p 80:80 \
--volumes-from pmm-data \
--name pmm-server \
--restart always \
percona/pmm-server:latest
## 4.打開瀏覽器登錄管理頁面
http://11.11.11.63
## 5.獲取診斷日志
https://<address-of-your-pmm-server>/managed/logs.zip
第二步:安裝客戶端
客戶端下載地址:https://www.percona.com/downloads/pmm/
## 1.下載并安裝
wget https://www.percona.com/downloads/pmm/1.17.1/binary/redhat/7/x86_64/pmm-client-1.17.1-1.el7.x86_64.rpm
yum install -y pmm-client-1.17.1-1.el7.x86_64.rpm
## 2.連接到服務器
pmm-admin config --server 11.11.11.63:80
## 3.添加監(jiān)控項MySQL
pmm-admin add mysql --user root --password Xiaoliu123!
## 4.查看監(jiān)控項
pmm-admin list
## 5.測試網絡
pmm-admin check-network
附錄:
PMM部署文檔:https://www.percona.com/doc/percona-monitoring-and-management/deploy/index.html