PMM--簡介與部署

一、PMM架構(gòu)

Percona Monitoring and Management是percona一款開源的用于管理和監(jiān)控MySQL 和MongoDB性能的開源平臺,通過PMM客戶端收集到的DB監(jiān)控數(shù)據(jù)用第三方軟件Grafana畫圖展示出來,包括兩個部分:

PMM client:部署在每個監(jiān)控數(shù)據(jù)庫主機。搜集主機,數(shù)據(jù)庫和查詢分析數(shù)據(jù)等。

PMM Server:匯集數(shù)據(jù)并展示。提供表,dashboards和graph的web界面。

其架構(gòu)如下圖所示:


PMM Client由以下部分組成:

pmm-admin:提供命令行交互界面管理pmm client,包括新增、刪除數(shù)據(jù)庫實例等。

pmm-mysql-query-0: 管理 mysql QAN代理的服務(wù),從數(shù)據(jù)庫實例搜集查詢性能數(shù)據(jù)并發(fā)送到pmm server上的QAN API。

pmm-mongdb-query-0:管理mongdb QAN代理的服務(wù)。

node_exporter:搜集系統(tǒng)性能數(shù)據(jù),基于prometheus exporter。更多信息查詢:https://github.com/percona/node_exporter.

mysqld_exporter:mysql性能搜集。

mongodb_exporter:mongodb性能搜集。

proxysql_exporter:ProxySQL性能數(shù)據(jù)搜集。

PMM Server運行在中央監(jiān)控數(shù)據(jù)上,目前可以基于容器,虛擬機或者AMI(amazon machine image)部署。

pmm server包含以下工具:

QAN(Query Analytics):分析mysql數(shù)據(jù)庫的查詢性能,相對于qan agent,它包含:

—qan api:后端存儲和獲取由agent采集的查詢性能數(shù)據(jù)。

—qan web:提供數(shù)據(jù)展示。

metrics monitor:提供mysql和mongodb的歷史性能數(shù)據(jù)查詢。

—prometheus:第三方的時序數(shù)據(jù)庫,連接到pmm client的exporter并匯集數(shù)據(jù)。consul給pmm client提供api用于遠程list,添加,刪除prometheus上的配置主機,并存儲監(jiān)控的元數(shù)據(jù)。

—grafana:第三方的圖形展示界面。

Orchestrator:提供mysql復(fù)制的拓撲工具和圖形界面。

參考:

端口:以下端口必須在pmm server和client之間開放;

pmm server需要開放80或443端口用于pmm client訪問pmm web。

pmm client端必須開放以下默認端口采集數(shù)據(jù),可以通過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容器鏡像發(fā)布在https://hub.docker.com/r/percona/pmm-server/tags/,docker版本必須高于1.12.6。pmm server部署范圍三步:獲取鏡像,創(chuàng)建持久化的pmm data鏡像以及創(chuàng)建啟動pmm server鏡像。

從dock hub拉取最新的鏡像版本

$ docker pull percona/pmm-server:latest

創(chuàng)建持久化的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

參數(shù)說明:

docker?create:該命令指示Docker守護程序從映像創(chuàng)建容器。

-v:該選項初始化數(shù)據(jù)卷的容器。

--name:該選項為你可以用于引用Docker網(wǎng)絡(luò)中的容器的容器分配一個自定義名稱。

percona/pmm-server:latest?:是導出容器的鏡像名稱和版本標簽。

/bin/true?:是容器運行的命令。

注:該鏡像不啟動,只為了保證pmm server的數(shù)據(jù)持久化以用于版本升級等場景。注意不要移動或者重新創(chuàng)建該鏡像,除非確保數(shù)據(jù)不再需要。

注:確保鏡像-v的數(shù)據(jù)卷存在,并最好是單獨綁定掛載。

創(chuàng)建并啟動pmm-server容器

$docker run -d -p 80:80 --volumes-from pmm-data --name pmm-server --restart always percona/pmm-server:latest

參數(shù)說明:

docker?run:該命令指示守護程序從鏡像運行容器。

-d:該選項在分離模式(即后臺)中啟動容器。

-p:該選項映射用于訪問PMM服務(wù)器?Web UI的端口。例如-p?8080:80,如果端口80不可用,則可以使用登陸頁面映射到端口8080 。

--volumes-from:該選項從pmm-date容器中裝入卷。

--name:該選項為你可以用于引用Docker網(wǎng)絡(luò)中的容器分配一個自定義名稱。

--restart:該選項定義容器的重新啟動策略,設(shè)置它以always確保Docker守護程序在啟動時啟動容器,并在容器退出時重新啟動它。

其他參數(shù)說明:

通過docker run的-e參數(shù)可以增加pmm-server啟動的額外功能

啟用Orchestrator復(fù)制拓撲:

$ docker run ... -e ORCHESTRATOR_ENABLED=true ... percona/pmm-server:latest

關(guān)閉telemetry(pmm server數(shù)據(jù)每24小時會上報percona.com,包括pmm server ID、pmm version、操作系統(tǒng)、數(shù)據(jù)庫版本、perl版本等):

$ docker run ... -e DISABLE_TELEMETRY=true ... percona/pmm-server:latest

關(guān)閉更新,可以通過web界面關(guān)閉,也可以通過命令行關(guān)閉:

$ 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,直接執(zhí)行yum或者apt-get安裝:

sudo yum install pmm-client

同樣提供了tar包和源碼方式安裝:

Generic tarball 解壓縮后執(zhí)行install腳本安裝

源碼壓縮包解壓后安裝

3、PMM Client連接到PMM Server

使用pmm-admin? config --server命令添加客戶端,假如服務(wù)器端地址為192.168.100.1,客戶端地址為192.168.200.1,添加命令如下(需要root或者sudo權(quán)限):

$ 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、搜集性能數(shù)據(jù)

使用pmm-admin add命令添加所需要監(jiān)控的服務(wù)名。

如監(jiān)控主機、mysql以及mysql的慢查詢,命令如下(需要root或者sudo權(quán)限):

$ sudo pmm-admin add mysql

監(jiān)控mongodb主機、數(shù)據(jù)庫和慢查詢:

$sudo pmm-admin add mongodb

監(jiān)控ProxySQL性能:

$ sudo pmm-admin add proxysql:metrics

查看被監(jiān)控項:

$ sudo pmm-admin list

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容