使用PMM監(jiān)控MySQL及MongoDB

目錄

一力穗、PMM介紹

二、PMM架構(gòu)解析

三气嫁、安裝運行PMM Server

四当窗、安裝運行PMM Client

五、添加MySQL監(jiān)控

六寸宵、查看監(jiān)控和管理平臺

七崖面、添加MongoDB監(jiān)控

八、儀表盤設(shè)置

九梯影、經(jīng)常問的問題巫员?

一、PMM介紹

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

PMM提供了對MyISAM、InnoDB救军、TokuDB和PXC/Glarera的監(jiān)控财异,另外也提供了Query Analytics的功能倘零,可以檢視執(zhí)行了哪些SQL指令唱遭,并對執(zhí)行效能較差的語法進行優(yōu)化。另外在新版本還支持了MySQL復制拓撲圖結(jié)構(gòu)構(gòu)造呈驶。Demo官網(wǎng):http://pmmdemo.percona.com

PMM版本變化

PMM 1.4版本時就把“MySQL Replication Topology Manager”拿掉了從主頁上面拷泽,而“Query Analytics”和“Metrics Monitor”更加人性化。

PMM 1.6版本時把“Query Analytics”頁面取消了袖瞻,從而把日志分析放到了Grafana里面展示司致。

PMM 1.8版本時直接把主頁拿掉了,默認主頁就是Grafana了聋迎,同時把日志分析也放到了Grafana脂矫。

PMM針對操作系統(tǒng)的部份也提供了硬盤、網(wǎng)絡(luò)霉晕、CPU和RAM的監(jiān)控庭再,特別的是它提供了Context switches、Processes和interrupts的監(jiān)控牺堰,Context Switches可以看到CPU上下切換文的狀況拄轻,Processes可以方便了解系統(tǒng)有多少程序在等待I/O。

二伟葫、PMM架構(gòu)解析

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

PMM Server是作為Docker鏡像distributed恨搓,而PMM Client就是一般的RPM,它需要安裝Server端和Client端軟件。

Server組件

Query Analytics(QAN)是用來搜集指令并作性能分析的斧抱,其組件分別說明如下:

QAN API:作為percona-qan-agent后端儲存和讀取Query資料用常拓。

QAN APP:提供圖形化分析介面。

Metrics Monitor(MM)組件提供了MySQL和MongoDB歷史監(jiān)控信息辉浦,其組件分別說明如下:

Prometheus:一個開源的服務(wù)監(jiān)控系統(tǒng)和時間序列數(shù)據(jù)庫墩邀,它連接到PMM Client上的exporter聚集DB的監(jiān)控數(shù)據(jù)。

– Consul:提供API讓PMM Client可以遠端替Prometheus新增盏浙、移除hosts眉睹,同時它也儲存了監(jiān)控的metadata。

Grafana:這是一個第三方Dashboard和圖形構(gòu)建器废膘,用于可視化Prometheus中聚合的數(shù)據(jù)竹海,以Web呈現(xiàn)。

– Percona Dashboards:是由Percona開發(fā)的一組用于Grafana的儀表板丐黄。

上述的2個Web頁面都能從PMM Landing Page(就是PMM首頁)直接連結(jié)斋配。

Client組件

ppm-admin:命令行的PMM Client管理工具,用來新增灌闺、移除監(jiān)控的資料Instance艰争。

percona-qan-agent:是一種管理QAN代理的服務(wù),收集查詢性能數(shù)據(jù)并將其發(fā)送到PMM服務(wù)器上的QAN API桂对。

node_exporter:Prometheus exporter用于搜集一般系統(tǒng)信息(https://github.com/prometheus/node_exporter)甩卓。

mysqld_exporter:Prometheus exporter用于搜集MySQL Server的信息(https://github.com/percona/mysqld_exporter)。

mongodb_exporter:Prometheus exporter用于搜集MongoDB server的信息(https://github.com/percona/mongodb_exporter)蕉斜。

三逾柿、安裝運行PMM Server

3.1、安裝docker

yum install docker

3.2宅此、運行docker

systemctl start docker

systemctl enable docker

3.3机错、下載容器鏡像

docker pull percona/pmm-server:latest

3.4、建立數(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:latest /bin/true

3.5父腕、運行PMM Server

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

3.5查看Docker運行狀態(tài)

docker ps

CONTAINER ID????????IMAGE??????????????????????COMMAND??????????????????CREATED??????????????STATUS??????????????PORTS???????????????????????? NAMES

1295960891e1????????percona/pmm-server:1.4.1?? "/opt/entrypoint.sh"???? About a minute ago?? Up About a minute?? 0.0.0.0:80->80/tcp, 443/tcp?? pmm-server

通過使用運行容器的主機的IP地址連接到PMM Web界面來驗證PMM服務(wù)器是否正在運行弱匪,然后在要監(jiān)視的所有數(shù)據(jù)庫主機上安裝PMM Client。

3.4 驗證PMM服務(wù)器

運行PMM Server之后璧亮,你應該可以使用運行容器的主機的IP地址訪問PMM Web界面萧诫。例如,如果在默認端口80上運行10.10.0.188杜顺,則應該可以訪問以下內(nèi)容:

四财搁、安裝運行PMM Client

PMM Client是安裝在你要監(jiān)視的MySQL或MongoDB主機上的一組代理組件。組件收集關(guān)于一般系統(tǒng)和數(shù)據(jù)庫性能的各種數(shù)據(jù)躬络,并將該數(shù)據(jù)發(fā)送到相應的PMM服務(wù)器組件尖奔。

在數(shù)據(jù)庫主機上安裝PMM Client軟件包之前,請確保你的PMM Server主機可訪問。

你將需要在數(shù)據(jù)庫主機上使用root用戶訪問安裝PMM Client(以具有root權(quán)限的用戶身份登錄或能夠運行命令的sudo權(quán)限)提茁。

查詢分析(QAN)的最低要求是:

MySQL 5.1或更高版本(如果使用慢查詢?nèi)罩荆?/p>

MySQL 5.6.9或更高版本(如果使用性能模式)

PMM Client可以運行在任何Linux發(fā)行版上淹禾,但是Percona提供的PMM Client軟件包只能從Ubuntu或CentOS發(fā)行版的軟件倉庫進行自動安裝:

在Debian或Ubuntu上安裝PMM Client

在Red Hat或CentOS上安裝PMM Client

下面我們以在Red Hat或CentOS上安裝PMM Client。

4.1 安裝RMM Client

1

2

$ sudo yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

$ sudo yum install pmm-client

1$ wget http://repo.percona.com/release/latest/RPMS/x86_64/pmm-client-1.4.1-1.x86_64.rpm

安裝PMM Client之后茴扁,它不會自動連接到PMM Server铃岔。要將客戶端連接到PMM服務(wù)器,請使用該命令指定IP地址峭火。

1

2

3

4

5

6

$ pmm-admin config --server 10.10.0.188

OK, PMM server is alive.


PMM Server??????| 10.10.0.188

Client Name???? | tosa1-tcjf-db1

Client Address??| 10.100.172.240

注意毁习,如果在運行PMM Server時更改了默認端口80 ,請在服務(wù)器的IP地址之后指定卖丸。

4.2 PMM客戶端管理

使用pmm-admin工具來管理PMM客戶端纺且。該pmm-admin工具需要root訪問權(quán)限(你應該以具有root用戶權(quán)限的用戶身份登錄或者可以使用命令進行登錄sudo)。

用法:

1pmm-admin [OPTIONS] [COMMAND]

OPTIONS

以下選項可用于任何命令:

-c稍浆,--config-file

指定PMM配置文件的位置(默認/usr/local/percona/pmm-client/pmm.yml)载碌。

-h,--help

打印任何命令和退出的幫助衅枫。

-v嫁艇,--version

打印PMM客戶端版本

--verbose

打印詳細輸出弦撩。

COMMANDS

pmm-adminadd

添加監(jiān)控服務(wù)步咪。

pmm-admincheck-network

檢查PMM客戶端PMM服務(wù)器之間的網(wǎng)絡(luò)連接。

pmm-adminconfig

配置PMM Client如何與PMM服務(wù)器通信孤钦。

pmm-adminhelp

打印任何命令和退出的幫助歧斟。

pmm-admininfo

打印有關(guān)PMM客戶端的信息纯丸。

pmm-adminlist

列出為此PMM客戶端添加的所有監(jiān)控服務(wù)偏形。

pmm-adminping

檢查PMM服務(wù)器是否存活。

pmm-adminpurge

清除PMM服務(wù)器上的度量數(shù)據(jù)觉鼻。

pmm-adminremove俊扭,pmm-adminrm

刪除監(jiān)控服務(wù)。

pmm-adminrepair

刪除丟失連接的服務(wù)(如服務(wù)器端宕機了)坠陈。

pmm-adminrestart

重新啟動監(jiān)控服務(wù)萨惑。

pmm-adminshow-passwords

打印PMM Client使用的密碼(存儲在配置文件中)。

pmm-adminstart

開啟監(jiān)控服務(wù)仇矾。

pmm-adminstop

停止監(jiān)控服務(wù)庸蔼。

pmm-adminuninstall

在卸載之前清理PMM Client

五贮匕、添加MySQL監(jiān)控

5.1 連接PMM服務(wù)器

安裝PMM Client之后姐仅,它不會自動連接到PMM Server。要將客戶端連接到PMM服務(wù)器,請使用該命令指定IP地址掏膏。

1

2

3

4

5

6

$ pmm-admin config --server 10.10.0.188

OK, PMM server is alive.


PMM Server??????| 10.10.0.188

Client Name???? | tosa1-tcjf-db1

Client Address??| 10.100.172.240

5.2 需要先創(chuàng)建一個監(jiān)控賬號

1

2

3

mysql> GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD ON *.* TO 'monitor'@' localhost' IDENTIFIED BY '123456' WITH MAX_USER_CONNECTIONS 10;

mysql> GRANT SELECT, UPDATE, DELETE, DROP ON performance_schema.* TO 'monitor'@'localhost';

mysql> flush privileges;

mysql:metrics – 需要REPLICATION CLIENT權(quán)限劳翰。

mysql:queries – 需要SUPER權(quán)限。

具體參考 [What privileges are required to monitor a MySQL instance?(https://www.percona.com/doc/percona-monitoring-and-management/faq.html#id11)

5.3 添加MySQL監(jiān)控和主機監(jiān)控

這里將用linux:metrics和mysql-metrics和mysql:queries收集MySQL主機指標和實例指標和慢查詢的信息馒疹。

1

2

3

4

$ pmm-admin add mysql --user monitor --password '123456' --host localhost --port 3306

[linux:metrics] OK, now monitoring this system.

[mysql:metrics] OK, now monitoring MySQL metrics using DSN monitor:***@tcp(127.0.0.1:3306)

[mysql:queries] OK, now monitoring MySQL queries from slowlog using DSN monitor:***@tcp(127.0.0.1:3306)

監(jiān)控單主機多實例時如下配置即可:

1

2

$ pmm-admin add mysql --user monitor --password '123456' --host localhost --port 3306 instance-01

$ pmm-admin add mysql --user monitor --password '123456' --host localhost --port 3307 instance-02

查看exproter監(jiān)聽端口

1

2

3

$ netstat -nplt | grep export

tcp????????0??????0 10.100.172.240:42000????????0.0.0.0:*?????????????????? LISTEN??????16477/node_exporter

tcp????????0??????0 10.100.172.240:42002????????0.0.0.0:*?????????????????? LISTEN??????16856/mysqld_export

pmm-client可以按host和port進行配置佳簸,pmm-client是否無須部署到MySQL對應的機器上呢?

pmm-client收的監(jiān)控數(shù)據(jù)來源有這么幾方面:

a. MySQL所在機器的系統(tǒng)指標(linux:metrics).

b. MySQL的performance_schema(mysql:metrics).

c. MySQL慢查詢?nèi)罩荆╩ysql:queries).

5.4 查看配置后的結(jié)果

1

2

3

4

5

6

7

8

9

10

11

12

13

14

$ pmm-admin list

pmm-admin 1.4.1


PMM Server??????| 10.10.0.188

Client Name???? | tosa1-tcjf-db1

Client Address??| 10.100.172.240

Service Manager | unix-systemv


-------------- --------------- ----------- -------- -------------------------------------- ------------------------------------------

SERVICE TYPE?? NAME????????????LOCAL PORT??RUNNING??DATA SOURCE????????????????????????????OPTIONS??????????????????????????????????

-------------- --------------- ----------- -------- -------------------------------------- ------------------------------------------

mysql:queries??tosa1-tcjf-db1??-?????????? YES??????mysql_monitor:***@tcp(127.0.0.1:3306)??query_source=slowlog, query_examples=true

linux:metrics??tosa1-tcjf-db1??42000?????? YES??????-????????????????????????????????????????????????????????????????????????????????

mysql:metrics??tosa1-tcjf-db1??42002?????? YES??????mysql_monitor:***@tcp(127.0.0.1:3306)

如果我們想收集a和c中的指標的話颖变,最好還是將pmm-client部署在MySQL所在機器生均。

5.5 幫助信息

更多的設(shè)定內(nèi)容可以用下列指令查詢:

1

2

3

4

$ pmm-admin add mysql:metrics --help

Usage:

??pmm-admin add mysql [name] [flags]

??.....

以下選項可以與mysql:metrics別名一起使用:

--create-user

PMM客戶端(命名pmm)創(chuàng)建一個專用的MySQL用戶。

--create-user-maxconn

指定專用MySQL用戶的最大連接數(shù)(默認值為10)腥刹。

--create-user-password

指定專用MySQL用戶的密碼疯特。

--defaults-file

指定路徑my.cnf。

--disable-binlogstats

禁用二進制日志統(tǒng)計的收集肛走。

--disable-processlist

禁用進程狀態(tài)指標的收集漓雅。

--disable-tablestats

禁用表統(tǒng)計信息的收集。

--disable-tablestats-limit

指定啟用表統(tǒng)計信息集合的最大表數(shù)(默認情況下朽色,限制為1000表)邻吞。

--disable-userstats

禁用用戶統(tǒng)計信息的收集。

--force

強制創(chuàng)建或更新專用的MySQL用戶葫男。

--host

指定MySQL主機名抱冷,默認取Client Name。

--password

指定具有管理員權(quán)限的MySQL用戶的密碼梢褐。

--port

指定MySQL實例端口

--socket

指定MySQL實例套接字文件旺遮。

--user

指定具有管理員權(quán)限的MySQL用戶的名稱。

六盈咳、查看監(jiān)控和管理平臺

使用運行PMM Server的主機的IP地址訪問PMM Web界面耿眉。目標網(wǎng)頁鏈接到相應的PMM工具:

ComponentURL備注

PMM landing pagehttp://10.10.0.188PMM跳轉(zhuǎn)頁

Query Analytics (QAN web app)http://10.10.0.188/qanSQL慢日志分析

Metrics Monitor (Grafana)http://10.10.0.188/graphuser name: admin password: admin監(jiān)控指標圖表

Orchestratorhttp://10.10.0.188/orchestratorMySQL集群拓撲結(jié)構(gòu)

這些工具可以全面了解MySQL主機的性能。

6.1 指標監(jiān)控

該監(jiān)控工具提供對數(shù)據(jù)庫服務(wù)器的關(guān)鍵指標的歷史指標鱼响,基于時間的圖表通過主題分為儀表板:一些與MySQL或MongoDB相關(guān)鸣剪,其他則提供了一般的系統(tǒng)指標。

要訪問儀表板丈积,請?zhí)峁┠J用戶憑據(jù):

用戶: admin

密碼: admin

在主屏幕上筐骇,從可用的Dashboards列表中選擇一個儀表板。例如江滨,以下圖片顯示了系統(tǒng)相關(guān)指標:

MySQL指標監(jiān)控

6.2 慢查詢分析

該查詢分析工具铛纬,使數(shù)據(jù)庫管理員和應用程序開發(fā)人員分析一段時間內(nèi)的MySQL查詢和發(fā)現(xiàn)性能問題,查詢分析可以幫助你優(yōu)化數(shù)據(jù)庫性能唬滑。

PMM使用slow log作為查詢源(還可以以performance schema作為數(shù)據(jù)源)告唆,記得要需要開啟慢日志莫秆。

1

2

slow_query_log=1?? #開啟慢查詢?nèi)罩荆?/p>

long_query_time=0??#超過多少秒的查詢就寫入日志;

不然打開PMM Query Analytics會報 “QAN API error: “qh.Profile: No query classes for selected instance and time range.錯誤悔详。

以下圖片顯示了Query Analytics:

匯總表包含以%GTT (總計時間的百分比)排名的前十名查詢镊屎,這是MySQL服務(wù)器執(zhí)行特定查詢所花費的時間百分比,與在所選期間執(zhí)行所有查詢的總時間相比時間茄螃。

你可以通過選擇預定義的間隔(最后一小時缝驳,3小時,6小時归苍,12小時用狱,最后一天或5天)來選擇頂部的時間段,或者使用日歷圖標選擇特定的間隔拼弃。如果你有多個安裝了PMM Client的MySQL主機夏伊,則可以使用頂部的下拉列表在這些主機之間切換嚣州。

如果要配置使用PMM Client在MySQL主機上運行的QAN代理铜靶,請單擊頂部的齒輪圖標。

6.2.1 查詢詳情

如果你在匯總表中單擊查詢敏弃,你可以獲得查詢的詳細信息盯孙。詳細信息包含特定于該特定查詢的所有指標鲁森,例如發(fā)送的字節(jié)數(shù),鎖定時間振惰,發(fā)送的行數(shù)等歌溉。你可以查看查詢的第一次和最后一次查看,獲取查詢的示例以及其指紋骑晶。

詳細信息部分使您可以EXPLAIN直接從PMM Web界面(僅指定數(shù)據(jù)庫)在所選查詢上運行痛垛。

你可以在底部為所選查詢運行“表信息”,這使你能夠獲得桶蛔,以及通過直接從PMM Web界面查詢使用的每個表:SHOWCREATETABLESHOWINDEXSHOWTABLESTATUS

如果你的MySQL嚴格區(qū)分大小寫匙头,查看表信息可能會有問題。這個時候你可以在點擊”Add db.table to list”把你要查看的表添加進去羽圃。

6.2.2 Performance Schema

PMM的查詢數(shù)據(jù)的默認源是慢查詢?nèi)罩厩海贛ySQL 5.1及更高版本中可用。從MySQL 5.6(包括Percona Server 5.6及更高版本)開始朽寞,你可以選擇從Performance Schema中解析查詢數(shù)據(jù)。從MySQL 5.6.6開始斩郎,性能模式默認啟用(MariaDB 10.0&10.1默認關(guān)閉)脑融。

Performance Schema不像慢查詢?nèi)罩灸菢泳哂袛?shù)據(jù)豐富性,但它具有所有關(guān)鍵數(shù)據(jù)缩宜,并且通常更快地解析肘迎。如果你正在運行Percona Server甥温,則正確配置的慢查詢?nèi)罩緦⒁宰畹偷拈_銷提供最多的信息。否則妓布,使用Performance Schema可能會提供更好的結(jié)果姻蚓。

要使用性能模式:

1. 確保performance_schema變量設(shè)置為ON

1

2

3

4

5

6

7

mysql> SHOW VARIABLES LIKE 'performance_schema';

+--------------------+-------+

| Variable_name??????| Value |

+--------------------+-------+

| performance_schema | ON????|

+--------------------+-------+

1 row in set (0.02 sec)

如果沒有,請?zhí)砑右韵滦衜y.cnf并重新啟動MySQL(不支持動態(tài)啟動目前):

1

2

[ mysql ]

performance_schema = ON

注意:默認情況下匣沼,MySQL 5.6.6及更高版本中啟用了Performance Schema檢測狰挡,在5.6之前的MySQL版本中完全不可用。

2. 配置QAN代理從Performance Schema收集數(shù)據(jù)

如果實例已經(jīng)運行:

在Query Analytics網(wǎng)絡(luò)用戶界面中释涛,點擊頂部的齒輪按鈕加叁。

在“ 查詢分析”下,從 “Collect from”下拉列表中選擇“Performance Schema?”唇撬。

單擊Apply以保存更改它匕。

如果要使用pmm-admin工具添加新的監(jiān)控實例,請使用該選項窖认,例如:--query-sourceperfschema

1$ pmm-admin add mysql --user root --password root --create-user --query-source perfschema

另外豫柬,打開Query Analytics,點擊view database and server summary info按鈕應該會顯示如下信息:

解決方法:需要安裝percona-toolkit包即可

1$ yum install percona-toolkit

6.3?Orchestrator

Orchestrator是MySQL復制拓撲管理和可視化工具(它是一個獨立的工具扑浸,不與PMM集成)轮傍,你可以使用PMM服務(wù)器地址/orchestrator后的URL訪問它∈鬃埃或者创夜,你可以單擊主PMM服務(wù)器著陸頁上的MySQL復制拓撲管理器按鈕。

要使用它仙逻,在所有管理實例上為Orchestrator創(chuàng)建一個MySQL用戶:

1GRANT SUPER驰吓,PROCESS,REPLICATION SLAVE系奉,RELOAD ON *檬贰。* TO'orc_client_user'@'%'IDENTIFIED BY'orc_client_password';

注意:示例中的憑據(jù)是默認值,如果使用不同的用戶名或密碼缺亮,則必須使用以下選項在運行PMM Server時傳遞它們 :

1-e ORCHESTRATOR_USER = name -e ORCHESTRATOR_PASSWORD = pass

然后翁涤,您可以使用Orchestrator Web界面中的Discover頁將實例添加到拓撲。

七萌踱、添加MongoDB監(jiān)控

7.1 連接PMM服務(wù)器

安裝PMM Client之后葵礼,它不會自動連接到PMM Server。要將客戶端連接到PMM服務(wù)器并鸵,請使用該命令指定IP地址鸳粉。

1

2

3

4

5

6

$ pmm-admin config --server 10.10.0.188

OK, PMM server is alive.


PMM Server??????| 10.10.0.188

Client Name???? | tosa1-tcjf-db1

Client Address??| 10.100.172.240

7.2 添加MongoDB監(jiān)控

這將創(chuàng)建pmm-mongodb-metrics-42003收集此特定MongoDB實例的本地MongoDB指標的服務(wù)。

1$ pmm-admin add mongodb --cluster rs1 --uri mongodb://admin:123456@localhost:27017

八园担、儀表盤設(shè)置

默認情況下届谈,儀表盤中不是所有的dashboard都可以正確顯示枯夜,有一些是專門為Percona或MariaDB提供的監(jiān)控指標〖枭剑或者有一些需要專門的插件支持才可以正確顯示湖雹。

但是收集圖表的指標和統(tǒng)計信息會增加性能開銷,所以你可以一直不斷收集和繪制低開銷的指標曙搬,只有在排除問題時才去啟用高開銷指標摔吏。

MySQL InnoDB Metrics

InnoDB指標提供有關(guān)InnoDB操作的詳細信息,雖然你可以選擇僅捕獲特定計數(shù)器织鲸,但即使所有這些計數(shù)器始終啟用舔腾,它們的開銷也很低。要啟用所有InnoDB指標搂擦,請將全局innodb_monitor_enable變量設(shè)置為all:

1mysql> SET GLOBAL innodb_monitor_enable = all;

MySQL User Statistics

用戶統(tǒng)計信息是Percona Server和MariaDB中可用的功能稳诚,它提供有關(guān)用戶活動,單獨表和索引訪問的信息瀑踢。在某些情況下扳还,收集用戶統(tǒng)計信息可能會導致高開銷,因此請謹慎使用此功能橱夭。要啟用用戶統(tǒng)計信息氨距,請將userstat變量設(shè)置為1即可。

MySQL Performance Schema

使用MySQL 5.6或更高版本棘劣,默認情況下啟用性能模式檢測俏让。如果未啟用某些儀器,則在“ MySQL Performance Schema”儀表板中將看不到相應的圖形茬暇。要啟用完整的儀器設(shè)置首昔,請將–performance_schema_instrument選項設(shè)置’%=on’為啟動時:

注意:此選項可能導致額外的開銷,應謹慎使用糙俗。

MySQL Query Response Time

查詢響應時間分配是Percona Server中可用的功能(MariaDB部分可用)勒奇,它提供有關(guān)不同查詢組的查詢響應時間更改的信息,通常允許在導致嚴重問題之前發(fā)現(xiàn)性能問題巧骚。

注意:此功能導致非常高的開銷赊颠,特別是在每秒處理超過10,000個查詢的系統(tǒng)上,僅在故障排除問題時暫時使用它劈彪。

啟用查詢響應時間的收集:

1. 安裝QUERY_RESPONSE_TIME插件

1

2

3

4

mysql> INSTALL??PLUGIN??QUERY_RESPONSE_TIME_AUDIT??SONAME??'query_response_time.so';

mysql> INSTALL??PLUGIN??QUERY_RESPONSE_TIME??SONAME??'query_response_time.so';

mysql> INSTALL??PLUGIN??QUERY_RESPONSE_TIME_READ??SONAME??'query_response_time.so';

mysql> INSTALL??PLUGIN??QUERY_RESPONSE_TIME_WRITE??SONAME??'query_response_time.so';

2. 將全局query_response_time_stats變量設(shè)置為ON

1mysql> SETGLOBALquery_response_time_stats=ON;

九竣蹦、經(jīng)常問的問題?

9.1 如何控制Prometheus的內(nèi)存消耗粉臊?

默認情況下草添,PMM Server中的Prometheus最多可以使用256MB的內(nèi)存來存儲最近使用的數(shù)據(jù)塊。根據(jù)進入普羅米修斯的數(shù)據(jù)量扼仲,你可能需要更高的限制才能避免限制數(shù)據(jù)吞吐远寸,或者如果其他進程需要更少的內(nèi)存消耗。

你可以通過METRICS_MEMORY在創(chuàng)建和運行PMM Server容器時傳遞環(huán)境變量來控制Prometheus允許的內(nèi)存消耗屠凶。要設(shè)置環(huán)境變量驰后,請使用該-e選項。該值必須以千字節(jié)為單位傳遞矗愧。例如灶芝,將限制設(shè)置為4GB內(nèi)存:

1-e METRICS_MEMORY=4194304

注意:限制僅影響為數(shù)據(jù)塊保留的內(nèi)存,普羅米修斯的實際RAM使用率更高唉韭,建議使用比數(shù)據(jù)塊占用的預期內(nèi)存至少三倍的內(nèi)存夜涕。

9.2 如何控制Prometheus的數(shù)據(jù)保留?

默認情況下属愤,PMM服務(wù)器中的Prometheus將時間序列數(shù)據(jù)存儲30天女器,根據(jù)可用的磁盤空間和您的要求,您可能需要調(diào)整數(shù)據(jù)保留時間住诸。

您可以通過METRICS_RETENTION在創(chuàng)建和運行PMM Server容器時傳遞環(huán)境變量來控制Prometheus的數(shù)據(jù)保留時間驾胆。要設(shè)置環(huán)境變量,請使用該-e選項贱呐。該值以小時丧诺,分鐘和秒的組合傳遞。例如奄薇,默認值為30天720h0m0s驳阎。你可能不需要比數(shù)字小時更精確,所以你可以丟棄分鐘和秒馁蒂。例如呵晚,將保留期限減少到8天:

1-e METRICS_RETENTION = 192h

9.3 常見的性能考慮是什么?

如果MySQL服務(wù)器有很多模式或表远搪,建議在添加實例時禁用每個表的指標:

1$ sudo pmm-admin add mysql --disable-tablestats

注意:如果有超過1000個表劣纲,表統(tǒng)計信息將自動禁用。

9.4 可以一次停止所有服務(wù)嗎谁鳍?

是的癞季,你可以使用pmm-admin啟動和停止與添加的監(jiān)控實例相對應的單個服務(wù),或者一次啟動所有這些服務(wù)倘潜。

啟動和停止所有服務(wù):

1

2

$ sudo pmm-admin stop --all

$ sudo pmm-admin start --all

9.5 PMM客戶端日志文件位于哪里绷柒?

pmm-admin添加監(jiān)控實例時創(chuàng)建的每個服務(wù)都有一個單獨的日志文件/var/log/。文件名具有以下語法:pmm--.log涮因。

例如废睦,QAN監(jiān)控服務(wù)的日志文件是/var/log/pmm-mysql-queries-0.log。所以有問題看日志即可养泡。

9.6 PMM客戶端創(chuàng)建的服務(wù)在哪里嗜湃?

使用該pmm-admin工具添加監(jiān)控實例時奈应,會創(chuàng)建相應的服務(wù)。該服務(wù)的名稱具有以下語法: pmm--

例如:pmm-mysql-metrics-42002购披。

服務(wù)的位置取決于服務(wù)管理器:

systemd:/etc/systemd/system/

upstart:/etc/init/

systemv:/etc/init.d/

要查看系統(tǒng)上使用哪個服務(wù)管理器杖挣,請運行:pmm-admin info

9.7 PMM如何配置安全訪問模式?

你可以使用以下安全功能來保護PMM免受未經(jīng)授權(quán)的訪問:

HTTP密碼保護在訪問PMM服務(wù)器 Web界面時添加身份驗證

SSL加密保護PMM客戶端和PMM服務(wù)器之間的流量

9.7.1 啟用密碼保護

你可以在創(chuàng)建和運行PMM Server容器時傳遞環(huán)境變量來設(shè)置訪問PMM Server Web界面的密碼刚陡。要設(shè)置環(huán)境變量惩妇,請使用該選項。例如筐乳,要設(shè)置密碼為:

1SERVER_PASSWORD -e pass1234

默認情況下歌殃,用戶名為pmm。你可以通過傳遞SERVER_USER變量來改變它蝙云。

例如:

1

2

3

4

5

6

7

8

docker run -d -p 80:80 \

??--volumes-from pmm-data \

??--name pmm-server \

??-e SERVER_USER=admin \

??-e SERVER_PASSWORD=admin \

??--restart always \

??--init \

??percona/pmm-server:1.4.1

PMM客戶端使用相同的憑據(jù)與PMM服務(wù)器進行通信氓皱,如果按照所述設(shè)置用戶名和密碼,請在將PMM Client連接到PMM服務(wù)器時指定它們:

1$ pmm-admin config --server 10.10.0.188 --server-user admin --server-password admin

9.7.2 啟用SSL保護

PMM中的安全功能

9.8 PMM-Client設(shè)置Client Name

在PMM客戶端使用pmm-admin list查看監(jiān)控應用時贮懈,其NAME字段的名稱取自“Client Name”匀泊,而“Client Name”來自HOSTNAME。所以這個某些時候會有問題朵你,比如在Web中顯示PMM-Client名字幾個數(shù)據(jù)庫都是localhost.localostdoman各聘,這就很不好分辨了。另外可能你想在Web界面直接顯示主機IP地址抡医,這時就需要調(diào)整默認方式了躲因。有兩種方法可以解決。

一:直接修改“Client Name”

1

2

3

4

$ pmm-admin add mysql --help

.....

Global Flags:

??-c, --config-file string?? PMM config file (default "/usr/local/percona/pmm-client/pmm.yml")

在文件/usr/local/percona/pmm-client/pmm.yml中可以修改“Client Name”忌傻。

二大脉、添加監(jiān)控時指定名稱

1$ pmm-admin add mysql --user monitor --password '123456' --host localhost --port 3306 172.18.16.1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市水孩,隨后出現(xiàn)的幾起案子镰矿,更是在濱河造成了極大的恐慌,老刑警劉巖俘种,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秤标,死亡現(xiàn)場離奇詭異,居然都是意外死亡宙刘,警方通過查閱死者的電腦和手機苍姜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悬包,“玉大人衙猪,你說我怎么就攤上這事。” “怎么了垫释?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵丝格,是天一觀的道長。 經(jīng)常有香客問我饶号,道長铁追,這世上最難降的妖魔是什么季蚂? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任茫船,我火速辦了婚禮,結(jié)果婚禮上扭屁,老公的妹妹穿的比我還像新娘算谈。我一直安慰自己,他們只是感情好料滥,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布然眼。 她就那樣靜靜地躺著,像睡著了一般葵腹。 火紅的嫁衣襯著肌膚如雪高每。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天践宴,我揣著相機與錄音鲸匿,去河邊找鬼。 笑死阻肩,一個胖子當著我的面吹牛带欢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播烤惊,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼乔煞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了柒室?” 一聲冷哼從身側(cè)響起渡贾,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎雄右,沒想到半個月后空骚,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡不脯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年府怯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片防楷。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡牺丙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情冲簿,我是刑警寧澤粟判,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站峦剔,受9級特大地震影響档礁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吝沫,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一呻澜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惨险,春花似錦羹幸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至恭朗,卻和暖如春屏镊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背痰腮。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工而芥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人诽嘉。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓蔚出,卻偏偏與公主長得像,于是被迫代替她去往敵國和親虫腋。 傳聞我的和親對象是個殘疾皇子骄酗,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

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