管理和監(jiān)控MySQL和MongoDB性能的開源平臺Percona

Percona監(jiān)控和管理概述

Percona監(jiān)控和管理(PMM)是一個用于管理和監(jiān)控MySQL和MongoDB性能的開源平臺饰及。 它由Percona與托管數(shù)據(jù)庫服務(wù),支持和咨詢領(lǐng)域的專家合作開發(fā)。 PMM是一個免費的開源解決方案贮乳,您可以在自己的環(huán)境中運行霜幼,以實現(xiàn)最大的安全性和可靠性。 它為MySQL和MongoDB服務(wù)器提供全面的基于時間的分析潮改,以確保您的數(shù)據(jù)盡可能高效地工作狭郑。

Percona監(jiān)控和管理架構(gòu)

PMM平臺基于簡單的客戶端 - 服務(wù)器模型,可實現(xiàn)高效的可擴展性汇在。它包括以下模塊:

  • PMM Client安裝在您要監(jiān)視的每個數(shù)據(jù)庫主機上翰萨。它收集服務(wù)器指標,一般系統(tǒng)指標和查詢分析數(shù)據(jù)糕殉,以獲得完整的性能概述亩鬼。收集的數(shù)據(jù)發(fā)送到PMM服務(wù)器殖告。
  • PMM Server是PMM的核心部分,它聚合收集的數(shù)據(jù)雳锋,并以Web界面的表格黄绩,儀表板和圖形的形式呈現(xiàn)。

PMM是旨在無縫協(xié)同工作的工具集合玷过。一些是由Percona開發(fā)的爽丹,一些是第三方開源工具。

  • 下圖說明了PMM當前的結(jié)構(gòu):
這里寫圖片描述
這里寫圖片描述

PMM Client

PMM客戶端軟件包適用于大多數(shù)流行的Linux發(fā)行版:

  • Red Hat Enterprise Linux衍生產(chǎn)品的RPM(包括CentOS辛蚊,Oracle Linux粤蝎,Amazon Linux等)
  • DEB用于基于Debian的發(fā)行版(包括Ubuntu等)

PMM客戶端軟件包包含以下內(nèi)容:

  • pmm-admin是用于管理PMM客戶端的命令行工具,例如袋马,添加和刪除要監(jiān)視的數(shù)據(jù)庫實例初澎。
  • percona-qan-agent是一種在收集查詢性能數(shù)據(jù)時管理查詢分析(QAN)代理的服務(wù)。它還與PMM服務(wù)器中的QAN API連接飞蛹,并發(fā)送收集的數(shù)據(jù)谤狡。
  • node_exporter是收集一般系統(tǒng)指標的Prometheus exporter。有關(guān)詳細信息卧檐,請參閱https://github.com/prometheus/node_exporter墓懂。
  • mysqld_exporter是收集MySQL服務(wù)器指標的Prometheus exporter。有關(guān)詳細信息霉囚,請參閱https://github.com/percona/mysqld_exporter捕仔。
  • mongodb_exporter是收集MongoDB服務(wù)器指標的Prometheus exporter。有關(guān)詳細信息盈罐,請參閱https://github.com/percona/mongodb_exporter榜跌。
  • proxysql_exporter是收集ProxySQL性能指標的Prometheus exporter。有關(guān)詳細信息盅粪,請參閱https://github.com/percona/proxysql_exporter钓葫。

PMM Server

PMM服務(wù)器將作為您的中央監(jiān)控主機的機器運行。它通過以下方式作為設(shè)備分發(fā):

  • 可以用于運行容器的Docker映像
  • 可以在VirtualBox或其他管理程序中運行
  • 可以通過Amazon Web Services(AWS)運行的Amazon Machine Image(AMI)

PMM服務(wù)器由以下工具組成:

  • 查詢分析(QAN)使您能夠在一段時間內(nèi)分析MySQL查詢性能票顾。除客戶端QAN代理外础浮,還包括以下內(nèi)容:

    • QAN API是用于存儲和訪問在PMM客戶端上運行的percona-qan-agent收集的查詢數(shù)據(jù)的后端
    • QAN Web App是用于可視化收集的Query Analytics數(shù)據(jù)的Web應(yīng)用程序。
  • 度量監(jiān)視器(MM)提供對MySQL或MongoDB服務(wù)器實例至關(guān)重要的度量的歷史視圖奠骄。它包括以下內(nèi)容:

    • Prometheus是一個第三方時間序列數(shù)據(jù)庫豆同,連接到在PMM客戶端上運行的出口商,并匯總了收集的指標.
    • Consul提供一個PMM客戶端可以遠程列出含鳞,添加和刪除Prometheus主機的API影锈。
    • Grafana是一個第三方儀表板和圖形構(gòu)建器,用于在直觀的Web界面中可視化由Prometheus匯總的數(shù)據(jù).
    • Percona儀表板是由Percona開發(fā)的Grafana儀表板
  • Orchestrator是MySQL復(fù)制拓撲管理和可視化工具。

部署方案(https://www.percona.com/doc/percona-monitoring-and-management/architecture.html#id13)

參考:

[1] https://prometheus.io/docs/introduction/overview/

[2] https://www.consul.io/docs/

[3] https://www.consul.io/docs/

[4] https://github.com/outbrain/orchestrator/wiki/Orchestrator-Manual

部署Percona監(jiān)控和管理

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

  • 在主機上運行PMM Server鸭廷,用于訪問收集的數(shù)據(jù)枣抱,查看基于時間的圖表,并執(zhí)行性能分析靴姿。

    以下選項可用:

    • 使用Docker運行PMM服務(wù)器
    • 使用VirtualBox運行PMM服務(wù)器
    • 使用Amazon Machine Image(AMI)運行PMM服務(wù)器

安裝運行PMM Server(使用Docker運行PMM服務(wù)器)

  • 使用docker運行PMM Server

PMM服務(wù)器的Docker映像公開托管在https://hub.docker.com/r/percona/pmm-server/沃但。 如果要從Docker映像運行PMM Server,則主機必須能夠運行Docker 1.13或更高版本佛吓,并具有網(wǎng)絡(luò)訪問權(quán)限。 有關(guān)使用Docker的更多信息垂攘,請參閱Docker文檔(https://docs.docker.com/)维雇。

  • CentOS 6 安裝Docker
yum --enablerepo=epel -y install docker-io
/etc/rc.d/init.d/docker start
chkconfig docker on

注:使用pmm-server映像時,請使用特定的版本標簽晒他,而不是最新的標簽吱型。目前的穩(wěn)定版本是1.1.3。

第一步. 創(chuàng)建一個PMM數(shù)據(jù)容器

  • 要創(chuàng)建持久PMM數(shù)據(jù)的容器陨仅,請運行以下命令:
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
  • 此容器不運行津滞,只需升級到較新的pmm服務(wù)器映像時,確保您保留所有PMM數(shù)據(jù)灼伤。不要刪除或重新創(chuàng)建此容器触徐,除非您打算清除所有PMM數(shù)據(jù)并重新開始。

第二步狐赡、創(chuàng)建并運行PMM服務(wù)器容器

  • 要運行PMM服務(wù)器撞鹉,請使用以下命令:
docker run -d \
   -p 666:80 \
   --volumes-from pmm-data \
   --name pmm-server \
   --restart always \
   percona/pmm-server:1.1.3

注意:這里666端口是自定義的,因為筆者實驗機80已被占用

確認PMM 安裝運行是否正確

通過使用運行容器的主機的IP地址連接到PMM Web界面來驗證PMM服務(wù)器是否正在運行颖侄,然后在要監(jiān)視的所有數(shù)據(jù)庫主機上安裝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服務(wù)器

在停止和刪除PMM服務(wù)器之前鸟雏,請確保相關(guān)的PMM客戶端不通過刪除所有監(jiān)視的實例來收集任何數(shù)據(jù),如刪除監(jiān)控服務(wù)中所述览祖。

docker stop pmm-server && docker rm pmm-server
docker rm pmm-data # 刪除pmm數(shù)據(jù)容器

升級PMM服務(wù)器

docker stop pmm-server  # 先停
docker rm pmm-server    # 再刪孝鹊,如果如要保留收集數(shù)據(jù),不要執(zhí)行此操作
docker run -d \
   -p 999:80 \
   --volumes-from pmm-data \
   --name pmm-server \
   --restart always \
   --init \
   percona/pmm-server:1.1.3

在Red Hat和CentOS上安裝PMM客戶端

PMM客戶端是安裝在您要監(jiān)視的MySQL或MongoDB主機上的一組代理和出口商展蒂。 組件收集關(guān)于一般系統(tǒng)和數(shù)據(jù)庫性能的各種數(shù)據(jù)又活,并將該數(shù)據(jù)發(fā)送到相應(yīng)的PMM服務(wù)器組件。
注:不應(yīng)該在具有相同主機名的數(shù)據(jù)庫服務(wù)器上安裝代理玄货,因為PMM服務(wù)器使用主機名來標識收集的數(shù)據(jù)皇钞。

安裝PMM客戶端

PMM客戶端應(yīng)該運行在任何現(xiàn)代的Linux發(fā)行版上,但是Percona提供的PMM客戶端軟件包只能從最受歡迎的Linux發(fā)行版的軟件倉庫進行自動安裝:

  • 系統(tǒng)事先無percona的yum源松捉,需要新增
sudo yum install https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-4.noarch.rpm
  • 安裝pmm-client軟件包
sudo yum install pmm-client -y

將PMM客戶端連接到PMM服務(wù)器

使用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

開始數(shù)據(jù)收集

將客戶端連接到PMM服務(wù)器后,通過添加監(jiān)控服務(wù),從數(shù)據(jù)庫實例啟用數(shù)據(jù)收集可柿。
要啟用一般系統(tǒng)度量鸠踪,MySQL指標和查詢分析,請運行:

管理PMM客戶端

# 添加監(jiān)控服務(wù)
pmm-admin add
# 檢查PMM客戶端和PMM服務(wù)器之間的網(wǎng)絡(luò)連接复斥。
pmm-admin check-network
# 配置PMM Client如何與PMM服務(wù)器通信营密。
pmm-admin config
# 打印任何命令和退出的幫助
pmm-admin help
# 打印有關(guān)PMM客戶端的信息
pmm-admin info
# 出為此PMM客戶端添加的所有監(jiān)控服務(wù)
pmm-admin list
# 檢查PMM服務(wù)器是否存活
pmm-admin ping
# 檢查PMM服務(wù)器是否存活。
pmm-admin purge
# 清除PMM服務(wù)器上的度量數(shù)據(jù)
pmm-admin remove, pmm-admin rm
# 刪除監(jiān)控服務(wù)
pmm-admin repair
# 重啟pmm
pmm-admin restart
# 打印PMM Client使用的密碼
pmm-admin show-passwords
# 開啟監(jiān)控服務(wù)
pmm-admin start
# 停止監(jiān)控服務(wù)
pmm-admin stop
# 在卸載之前清理PMM Client
pmm-admin uninstall
  • 添加MySQL查詢分析服務(wù)

默認情況下不存在初始的被pmm-client使用的mysql用戶目锭,需要自己創(chuàng)建评汰,筆者是登錄到mysql中創(chuàng)建的用戶,感興趣的同學(xué)可以使用pmm-admin提供的參數(shù)創(chuàng)建默認用戶

GRANT ALL PRIVILEGES ON *.* TO 'pmm'@'192.168.0.47' IDENTIFIED BY 'pmmpassword';
# 創(chuàng)建用戶成功
[root@backup-server ~]# sudo pmm-admin add mysql:metrics --user pmm --password pmmpassword --host 192.168.0.47
# 使用創(chuàng)建的用戶添加監(jiān)控mysql服務(wù)
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
  • 查看當前服務(wù)器監(jiān)控的服務(wù)
[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

繼續(xù)訪問http://192.168.0.99:666痢虹,查看監(jiān)控mysql的狀態(tài)

這里寫圖片描述
這里寫圖片描述
這里寫圖片描述

后續(xù)補充監(jiān)控MongoDB的教程被去。。奖唯。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惨缆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子丰捷,更是在濱河造成了極大的恐慌坯墨,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件病往,死亡現(xiàn)場離奇詭異捣染,居然都是意外死亡,警方通過查閱死者的電腦和手機荣恐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門液斜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人叠穆,你說我怎么就攤上這事少漆。” “怎么了硼被?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵示损,是天一觀的道長。 經(jīng)常有香客問我嚷硫,道長检访,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任仔掸,我火速辦了婚禮脆贵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘起暮。我一直安慰自己卖氨,他們只是感情好,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著筒捺,像睡著了一般柏腻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上系吭,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天五嫂,我揣著相機與錄音,去河邊找鬼肯尺。 笑死沃缘,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的则吟。 我是一名探鬼主播孩灯,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼逾滥!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起败匹,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤寨昙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后掀亩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舔哪,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年槽棍,在試婚紗的時候發(fā)現(xiàn)自己被綠了捉蚤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡炼七,死狀恐怖缆巧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情豌拙,我是刑警寧澤陕悬,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站按傅,受9級特大地震影響捉超,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜唯绍,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一拼岳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧况芒,春花似錦惜纸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽痊乾。三九已至,卻和暖如春椭更,著一層夾襖步出監(jiān)牢的瞬間哪审,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工虑瀑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留湿滓,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓舌狗,卻偏偏與公主長得像叽奥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子痛侍,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容