天天看點

Percona Monitoring and Management (PMM) 監控MongoDB

Percona監控和管理(PMM)是一個用于管理和監控MySQL和MongoDB性能的開源平台。 它由Percona與托管資料庫服務,支援和咨詢領域的專家合作開發。 PMM是一個免費的開源解決方案,您可以在自己的環境中運作,以實作最大的安全性和可靠性。 它為mysql和mongodb伺服器提供全面的基于時間的分析,以確定您的資料盡可能高效地工作。

PMM平台基于簡單的用戶端 - 伺服器模型,可實作高效的可擴充性。它包括以下子產品: 

PMM Client安裝在您要監視的每個資料庫主機上。它收集伺服器名額,一般系統名額和查詢分析資料,以獲得完整的性能概述。收集的資料發送到PMM伺服器。 

PMM Server是PMM的核心部分,它聚合收集的資料,并以Web界面的表格,儀表闆和圖形的形式呈現。 

PMM是旨在無縫協同工作的工具集合。一些是由Percona開發的,一些是第三方開源工具。 

下圖說明了PMM目前的結構:

<a href="https://s1.51cto.com/wyfs02/M00/9C/3D/wKioL1lt0iWh8IT2AAEmCUkPjUs149.png" target="_blank"></a>

PMM用戶端軟體包适用于大多數流行的Linux發行版:

Red Hat Enterprise linux衍生産品的RPM(包括CentOS,Oracle Linux,Amazon Linux等)

DEB用于基于Debian的發行版(包括Ubuntu等)

PMM用戶端軟體包包含以下内容: 

pmm-admin是用于管理PMM用戶端的指令行工具,例如,添加和删除要監視的資料庫執行個體。 

percona-qan-agent是一種在收集查詢性能資料時管理查詢分析(QAN)代理的服務。它還與PMM伺服器中的QAN API連接配接,并發送收集的資料。 

PMM伺服器将作為您的中央監控主機的機器運作。它通過以下方式作為裝置分發: 

可以用于運作容器的Docker映像 

可以在VirtualBox或其他管理程式中運作 

可以通過Amazon Web Services(AWS)運作的Amazon Machine Image(AMI) 

PMM伺服器由以下工具組成: 

查詢分析(QAN)使您能夠在一段時間内分析MySQL查詢性能。除用戶端QAN代理外,還包括以下内容:

QAN API是用于存儲和通路在PMM用戶端上運作的percona-qan-agent收集的查詢資料的後端 

QAN Web App是用于可視化收集的Query Analytics資料的Web應用程式。 

度量螢幕(MM)提供對MySQL或MongoDB伺服器執行個體至關重要的度量的曆史視圖。它包括以下内容:

Prometheus是一個第三方時間序列資料庫,連接配接到在PMM用戶端上運作的出口商,并彙總了收集的名額. 

Consul提供一個PMM用戶端可以遠端列出,添加和删除Prometheus主機的API。 

Grafana是一個第三方儀表闆和圖形建構器,用于在直覺的Web界面中可視化由Prometheus彙總的資料. 

Percona儀表闆是由Percona開發的Grafana儀表闆 

Orchestrator是MySQL複制拓撲管理和可視化工具。 

參考: 

安裝指令如下:

請確定有安裝成功結果:

顯示部分的安裝包:

這裡我們安裝MongoDB3.4版本

如果您已經啟用SELinux,則需要做配置相關,這裡不做詳細說明。我是禁用SELinux狀态。

MongoDB預設配置檔案<code>/etc/mongod.conf</code>,資料目錄預設是<code>/var/lib/mongodb/</code> 。有需要,請自行修改配置檔案。

檢視MongoDB是否啟動:

以下過程介紹如何正确部署PMM: 

在主機上運作PMM Server,用于通路收集的資料,檢視基于時間的圖表,并執行性能分析。

以下安裝的選項可用:

使用Docker運作PMM伺服器

使用VirtualBox運作PMM伺服器

使用Amazon Machine Image(AMI)運作PMM伺服器

這裡我們選擇使用Docker運作PMM伺服器。

使用docker運作PMM Server 

一般CentOS需要安裝<code>epel</code>源,我這裡是aws ec2 linux,是以直接使用如下指令安裝:

注意:  使用pmm-server映像時,請使用特定的版本标簽,而不是最新的标簽。目前的最新穩定版本是1.2.0。

要建立持久PMM資料的容器,請運作以下指令:

運作結果:

這個容器不運作,它隻是為了確定在更新到更新的PMM - server映像時保留所有PMM資料。不要删除或重新建立這個容器,除非您打算删除所有PMM資料并從頭開始。

前面的指令解釋: 

<code>docker create</code>指令表示docker守護程序從鏡像中建立容器。 

<code>- v</code>選項對<code>volumes</code>進行指定初始化 。 

<code>--name</code>選項為容器指定一個自定義名稱,用于在Docker網絡中引用容器。例如名字:<code>pmm-server</code>。 

<code>percona/pmm-server:1.2.0</code>是自源的鏡像的名字和版本辨別。 

<code>/bin/true</code>容器進行運作的指令。

要運作PMM伺服器,請使用以下指令:

<code>docker run</code>指令運作一個docker守護程序以運作容器。 

<code>- d</code>選項以分離模式(即在背景)啟動容器。 

<code>- p</code>選項用于映射通路PMM伺服器web UI的端口。如果端口80不可用,您可以使用<code>- p 8080:80</code>将登入頁面映射到端口8080。 

<code>--volumes-from</code>表示挂載容器來自前面步驟指定的<code>pmm-data</code>。 

<code>--restart</code>選項定義容器的重新啟動政策。設定它始終確定Docker守護程序在啟動時啟動容器,如果容器退出,則重新啟動它。 

<code>percona/pmm-server:1.2.0</code>是自源的鏡像的名字和版本辨別。

使用如下指令确認PMM 安裝運作是否正确:

通過使用運作容器的主機的IP位址連接配接到PMM Web界面來驗證PMM伺服器是否正在運作,然後在要監視的所有資料庫主機上安裝PMM Client 

Component URL 

PMM用戶端是安裝在您要監視的MySQL或MongoDB主機的用戶端和資料提供采集方。 元件收集關于一般系統和資料庫性能的各種資料,并将該資料發送到相應的PMM伺服器元件。

不應該在具有相同主機名的資料庫伺服器上安裝代理,因為PMM伺服器使用主機名來辨別收集的資料。

安裝PMM用戶端

安裝pmm-client軟體包

将PMM用戶端連接配接到PMM伺服器

使用<code>pmm-admin config --help</code>,檢視幫助

<code>pmm-admin config --server 172.31.27.176:80</code>

從以下操作也可以看出,pmm并不支援代理,是C/S構架。

<code>pmm-admin check-network</code>檢查結果:

防火牆開啟與docker容器通信:

<code>pmm-admin check-network</code>再次檢視結果,則通信正常。

管理PMM用戶端的一些指令說明:

<a href="https://s2.51cto.com/wyfs02/M00/9C/3D/wKioL1lt0mWwHqZ1AAG6ChvAw9I154.png" target="_blank"></a>

<a href="https://s1.51cto.com/wyfs02/M01/9C/3E/wKiom1lt0mbzNtX0AAHvyodG73A344.png" target="_blank"></a>

<a href="https://s2.51cto.com/wyfs02/M02/9C/3E/wKiom1lt0meSZbyAAAGnYVTeEd8325.png" target="_blank"></a>

<a href="https://s2.51cto.com/wyfs02/M02/9C/3D/wKioL1lt0miga5NTAAHWsp7brKo304.png" target="_blank"></a>

本文轉自 ygqygq2 51CTO部落格,原文連結:http://blog.51cto.com/ygqygq2/1948675,如需轉載請自行聯系原作者