Percona監控和管理(PMM)是一個用於管理和監控MySQL和MongoDB性能的開源平臺。 它由Percona與託管數據庫服務,支持和諮詢領域的專家合做開發。 PMM是一個免費的開源解決方案,您能夠在本身的環境中運行,以實現最大的安全性和可靠性。 它爲MySQL和MongoDB服務器提供全面的基於時間的分析,以確保您的數據儘量高效地工做。html
PMM平臺基於簡單的客戶端 - 服務器模型,可實現高效的可擴展性。它包括如下模塊:node
PMM是旨在無縫協同工做的工具集合。一些是由Percona開發的,一些是第三方開源工具。mysql
PMM客戶端軟件包適用於大多數流行的Linux發行版:linux
PMM客戶端軟件包包含如下內容:git
PMM服務器將做爲您的中央監控主機的機器運行。它經過如下方式做爲設備分發:github
PMM服務器由如下工具組成:web
查詢分析(QAN)使您可以在一段時間內分析MySQL查詢性能。除客戶端QAN代理外,還包括如下內容:sql
度量監視器(MM)提供對MySQL或MongoDB服務器實例相當重要的度量的歷史視圖。它包括如下內容:mongodb
部署方案(https://www.percona.com/doc/p...docker
參考:
[1] https://prometheus.io/docs/in...
[2] https://www.consul.io/docs/
[3] https://www.consul.io/docs/
[4] https://github.com/outbrain/o...
如下過程介紹如何正確部署PMM:
如下選項可用:
PMM服務器的Docker映像公開託管在https://hub.docker.com/r/perc...。 若是要從Docker映像運行PMM Server,則主機必須可以運行Docker 1.13或更高版本,並具備網絡訪問權限。 有關使用Docker的更多信息,請參閱Docker文檔(https://docs.docker.com/)。
yum --enablerepo=epel -y install docker-io /etc/rc.d/init.d/docker start chkconfig docker on
注:使用pmm-server映像時,請使用特定的版本標籤,而不是最新的標籤。目前的穩定版本是1.1.3。
docker create \ -v /opt/prometheus/data \ -v /opt/consul-data \ -v /var/lib/mysql \ -v /var/lib/grafana \ --name pmm-data \ percona/pmm-server:1.1.3 /bin/true
docker run -d \ -p 666:80 \ --volumes-from pmm-data \ --name pmm-server \ --restart always \ percona/pmm-server:1.1.3
注意:這裏666端口是自定義的,由於筆者實驗機80已被佔用
經過使用運行容器的主機的IP地址鏈接到PMM Web界面來驗證PMM服務器是否正在運行,而後在要監視的全部數據庫主機上安裝PMM Client
Component | URL |
---|---|
PMM landing page | http://192.168.0.99:port |
Query Analytics (QAN web app) | http://192.168.0.99/qan/ |
Metrics Monitor (Grafana) | http://192.168.0.99/graph/User name: admin Password: admin |
Orchestrator | http://192.168.0.99/orchestrator |
在中止和刪除PMM服務器以前,請確保相關的PMM客戶端不經過刪除全部監視的實例來收集任何數據,如刪除監控服務中所述。
docker stop pmm-server && docker rm pmm-server docker rm pmm-data # 刪除pmm數據容器
docker stop pmm-server # 先停 docker rm pmm-server # 再刪,若是如要保留收集數據,不要執行此操做 docker run -d \ -p 999:80 \ --volumes-from pmm-data \ --name pmm-server \ --restart always \ --init \ percona/pmm-server:1.1.3
PMM客戶端是安裝在您要監視的MySQL或MongoDB主機上的一組代理和出口商。 組件收集關於通常系統和數據庫性能的各類數據,並將該數據發送到相應的PMM服務器組件。
注:不該該在具備相同主機名的數據庫服務器上安裝代理,由於PMM服務器使用主機名來標識收集的數據。
PMM客戶端應該運行在任何現代的Linux發行版上,可是Percona提供的PMM客戶端軟件包只能從最受歡迎的Linux發行版的軟件倉庫進行自動安裝:
sudo yum install https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-4.noarch.rpm
sudo yum install pmm-client -y
使用pmm-admin config --help,查看幫助
[root@backup-server ~]# sudo pmm-admin config --server 192.168.0.99:666 OK, PMM server is alive. PMM Server | 192.168.0.99:666 Client Name | backup-server Client Address | 192.168.0.47
將客戶端鏈接到PMM服務器後,經過添加監控服務,從數據庫實例啓用數據收集。
要啓用通常系統度量,MySQL指標和查詢分析,請運行:
# 添加監控服務 pmm-admin add # 檢查PMM客戶端和PMM服務器之間的網絡鏈接。 pmm-admin check-network # 配置PMM Client如何與PMM服務器通訊。 pmm-admin config # 打印任何命令和退出的幫助 pmm-admin help # 打印有關PMM客戶端的信息 pmm-admin info # 出爲此PMM客戶端添加的全部監控服務 pmm-admin list # 檢查PMM服務器是否存活 pmm-admin ping # 檢查PMM服務器是否存活。 pmm-admin purge # 清除PMM服務器上的度量數據 pmm-admin remove, pmm-admin rm # 刪除監控服務 pmm-admin repair # 重啓pmm pmm-admin restart # 打印PMM Client使用的密碼 pmm-admin show-passwords # 開啓監控服務 pmm-admin start # 中止監控服務 pmm-admin stop # 在卸載以前清理PMM Client pmm-admin uninstall
默認狀況下不存在初始的被pmm-client使用的mysql用戶,須要本身建立,筆者是登陸到mysql中建立的用戶,感興趣的同窗可使用pmm-admin提供的參數建立默認用戶
GRANT ALL PRIVILEGES ON *.* TO 'pmm'@'192.168.0.47' IDENTIFIED BY 'pmmpassword'; # 建立用戶成功 [root@backup-server ~]# sudo pmm-admin add mysql:metrics --user pmm --password pmmpassword --host 192.168.0.47 # 使用建立的用戶添加監控mysql服務 OK, now monitoring MySQL metrics using DSN pmm:***@tcp(192.168.0.47:3306) [root@backup-server ~]# sudo pmm-admin add mysql:queries --user pmm --password pmmpassword --host 192.168.0.47
[root@backup-server ~]# pmm-admin list pmm-admin 1.1.3 PMM Server | 192.168.0.99:666 Client Name | backup-server Client Address | 192.168.0.47 Service Manager | unix-systemv -------------- -------------- ----------- -------- ------------------------------- ------------------------------------------ SERVICE TYPE NAME LOCAL PORT RUNNING DATA SOURCE OPTIONS -------------- -------------- ----------- -------- ------------------------------- ------------------------------------------ mysql:queries backup-server - YES pmm:***@tcp(192.168.0.47:3306) query_source=slowlog, query_examples=true linux:metrics backup-server 42000 YES - mysql:metrics backup-server 42002 YES pmm:***@tcp(192.168.0.47:3306) tablestats=OFF
QAN API error: "qh.Profile: No query classes for selected instance and time range. Please check whether your MySQL settings match the recommended.".Check the /var/log/qan-api.log file in docker container for more information
# mysql 開啓慢日誌查詢 yum install percona-toolkit -y # 建議安裝 # slow_query_log = 1 long_query_time = 2 # 重啓mysql(mysql5.6) /etc/init.d/mysql restart
繼續訪問http://192.168.0.99:666,查看監控mysql的狀態
後續補充監控MongoDB的教程。。。