目錄
一力穗、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ā)行版的軟件倉庫進行自動安裝:
下面我們以在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
添加監(jiān)控服務(wù)步咪。
檢查PMM客戶端和PMM服務(wù)器之間的網(wǎng)絡(luò)連接。
配置PMM Client如何與PMM服務(wù)器通信孤钦。
打印任何命令和退出的幫助歧斟。
打印有關(guān)PMM客戶端的信息纯丸。
列出為此PMM客戶端添加的所有監(jiān)控服務(wù)偏形。
檢查PMM服務(wù)器是否存活。
清除PMM服務(wù)器上的度量數(shù)據(jù)觉鼻。
刪除監(jiān)控服務(wù)。
刪除丟失連接的服務(wù)(如服務(wù)器端宕機了)坠陈。
重新啟動監(jiān)控服務(wù)萨惑。
打印PMM Client使用的密碼(存儲在配置文件中)。
開啟監(jiān)控服務(wù)仇矾。
停止監(jiān)控服務(wù)庸蔼。
在卸載之前清理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保護
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