PMM--簡介與部署
一、PMM架構
Percona Monitoring and Management是percona一款開源的用於管理和監控MySQL 和MongoDB效能的開源平臺,透過PMM客戶端收集到的DB監控資料用第三方軟體Grafana畫圖展示出來,包括兩個部分:
PMM client:部署在每個監控資料庫主機。蒐集主機,資料庫和查詢分析資料等。
PMM Server:彙集資料並展示。提供表,dashboards和graph的web介面。
其架構如下圖所示:
PMM Client由以下部分組成:
pmm-admin:提供命令列互動介面管理pmm client,包括新增、刪除資料庫例項等。
pmm-mysql-query-0: 管理 mysql QAN代理的服務,從資料庫例項蒐集查詢效能資料併傳送到pmm server上的QAN API。
pmm-mongdb-query-0:管理mongdb QAN代理的服務。
node_exporter:蒐集系統效能資料,基於prometheus exporter。更多資訊查詢:
mysqld_exporter:mysql效能蒐集。 mongodb_exporter:mongodb效能蒐集。 proxysql_exporter:ProxySQL效能資料蒐集。 PMM Server執行在中央監控資料上,目前可以基於容器,虛擬機器或者AMI(amazon machine image)部署。 pmm server包含以下工具: QAN(Query Analytics):分析mysql資料庫的查詢效能,相對於qan agent,它包含: —qan api:後端儲存和獲取由agent採集的查詢效能資料。 —qan web:提供資料展示。 metrics monitor:提供mysql和mongodb的歷史效能資料查詢。 —prometheus:第三方的時序資料庫,連線到pmm client的exporter並彙集資料。consul給pmm client提供api用於遠端list,新增,刪除prometheus上的配置主機,並儲存監控的後設資料。 —grafana:第三方的圖形展示介面。 Orchestrator:提供mysql複製的拓撲工具和圖形介面。 參考: 埠:以下埠必須在pmm server和client之間開放; pmm server需要開放80或443埠用於pmm client訪問pmm web。 pmm client端必須開放以下預設埠採集資料,可以透過pmm-admin addc命令進行修改。 42000 For PMM to collect genenal system metrics. 42001 This port is used by a service which collects query performance data and makes it available to QAN. 42002 For PMM to collect MySQL server metrics. 42003 For PMM to collect MongoDB server metrics. 42004 For PMM to collect ProxySQL server metrics. 二、PMM部署 1、安裝PMM Server PMM安裝有三種方式:docker、虛擬機器和AWS marketplace。 本文主要透過容器方式部署,pmm server容器映象釋出在,docker版本必須高於1.12.6。pmm server部署範圍三步:獲取映象,建立持久化的pmm data映象以及建立啟動pmm server映象。 從dock hub拉取最新的映象版本 $ docker pull percona/pmm-server:latest 建立持久化的pmm-data映象 $ 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 create:該命令指示Docker守護程式從映像建立容器。 -v:該選項初始化資料卷的容器。 --name:該選項為你可以用於引用Docker網路中的容器的容器分配一個自定義名稱。 percona/pmm-server:latest :是匯出容器的映象名稱和版本標籤。 /bin/true :是容器執行的命令。 注:該映象不啟動,只為了保證pmm server的資料持久化以用於版本升級等場景。注意不要移動或者重新建立該映象,除非確保資料不再需要。 注:確保映象-v的資料卷存在,並最好是單獨繫結掛載。 建立並啟動pmm-server容器 $docker run -d -p 80:80 --volumes-from pmm-data --name pmm-server --restart always percona/pmm-server:latest 引數說明: docker run:該命令指示守護程式從映象執行容器。 -d:該選項在分離模式(即後臺)中啟動容器。 -p:該選項對映用於訪問PMM伺服器 Web UI的埠。例如-p 8080:80,如果埠80不可用,則可以使用登陸頁面對映到埠8080 。 --volumes-from:該選項從pmm-date容器中裝入卷。 --name:該選項為你可以用於引用Docker網路中的容器分配一個自定義名稱。 --restart:該選項定義容器的重新啟動策略,設定它以always確保Docker守護程式在啟動時啟動容器,並在容器退出時重新啟動它。 其他引數說明: 透過docker run的-e引數可以增加pmm-server啟動的額外功能 啟用Orchestrator複製拓撲: $ docker run ... -e ORCHESTRATOR_ENABLED=true ... percona/pmm-server:latest 關閉telemetry(pmm server資料每24小時會上報percona.com,包括pmm server ID、pmm version、作業系統、資料庫版本、perl版本等): $ docker run ... -e DISABLE_TELEMETRY=true ... percona/pmm-server:latest 關閉更新,可以透過web介面關閉,也可以透過命令列關閉: $ docker run ... -e DISABLE_UPDATES=true ... percona/pmm-server:latest PMM Server訪問方式: 元件URL PMM home pagehttp://192.168.100.1 QANhttp://192.168.100.1/qan/ Metrics Monitor (MM)http://192.168.100.1/graph/ User name: admin Password: admin Orchestratorhttp://192.168.100.1/orchestrator 2、安裝PMM Client PMM client可以透過rpm包安裝,新增percona repository,直接執行yum或者apt-get安裝: sudo yum install pmm-client 同樣提供了tar包和原始碼方式安裝: Generic tarball 解壓縮後執行install指令碼安裝 原始碼壓縮包解壓後安裝 3、PMM Client連線到PMM Server 使用pmm-admin config --server命令新增客戶端,假如伺服器端地址為192.168.100.1,客戶端地址為192.168.200.1,新增命令如下(需要root或者sudo許可權): $ pmm-admin config --server 192.168.100.1 OK, PMM server is alive. PMM Server | 192.168.100.1 Client Name | ubuntu-amd641 Client Address | 192.168.200.1 如果修改了預設的80埠,則需要在ip後面加上自定義埠,如: $ pmm-admin config --server 192.168.100.1:8080 4、蒐集效能資料 使用pmm-admin add命令新增所需要監控的服務名。 如監控主機、mysql以及mysql的慢查詢,命令如下(需要root或者sudo許可權): $ sudo pmm-admin add mysql 監控mongodb主機、資料庫和慢查詢: $sudo pmm-admin add mongodb 監控ProxySQL效能: $ sudo pmm-admin add proxysql:metrics 檢視被監控項: $ sudo pmm-admin list
作者:zyxchaos
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4548/viewspace-2816692/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Jumpserver簡介,部署使用Server
- 01 . MongoDB簡介及部署配置MongoDB
- Chaosblade簡介及安裝部署
- SparkSQL部署與簡單使用SparkSQL
- LNMP架構介紹與部署LNMP架構
- Systemd簡介與使用
- JQuery簡介與使用jQuery
- VBS與JS簡介JS
- HBA與lun簡介
- 01 . ELK Stack簡介原理及部署應用
- etcd簡介及叢集安裝部署使用
- HTTP 與 HTTPS 簡介HTTP
- iOS KVC與KVO簡介iOS
- Spark GraphX簡介與教程Spark
- Hystrix Turbine簡介與使用
- Varnish(一)簡介與原理
- Rancher簡介與安裝
- 棧與佇列簡介佇列
- JRE與JDK簡介JDK
- Docker簡介與入門Docker
- 01 . 全鏈路監控CAT簡介及部署
- LAMP平臺服務簡介、部署及應用LAMP
- 持續整合、持續交付、持續部署簡介
- WebSocket簡介與最佳實踐Web
- MySQL檢視簡介與操作MySql
- Oracle RAC簡介與要點Oracle
- Git 簡介與倉庫使用Git
- scrapy的簡介與安裝
- Zookeeper簡介與叢集搭建
- Redis簡介與安裝(Windows)RedisWindows
- Zabbix 簡介與yum安裝
- InfluxDB簡介與php用法UXPHP
- 負載均衡簡介與搭建負載
- jQuery-簡介與基本使用jQuery
- RxJava簡介與入門(一)RxJava
- MySQL簡介與啟動MySqlMySql
- fuser與lsof命令使用簡介
- MFC,QT與WinForm,WPF簡介QTORM