使用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復(fù)制拓撲圖結(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之后,你應(yīng)該可以使用運行容器的主機的IP地址訪問PMM Web界面。例如,如果在默認端口80上運行10.10.0.188,則應(yīng)該可以訪問以下內(nèi)容:

四、安裝運行PMM Client

PMM Client是安裝在你要監(jiān)視的MySQL或MongoDB主機上的一組代理組件。組件收集關(guān)于一般系統(tǒng)和數(shù)據(jù)庫性能的各種數(shù)據(jù),并將該數(shù)據(jù)發(fā)送到相應(yīng)的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)限(你應(yīng)該以具有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對應(yīng)的機器上呢?

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)頁鏈接到相應(yī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ù)庫管理員和應(yīng)用程序開發(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í)行所有查詢的總時間相比時間。

你可以通過選擇預(yù)定義的間隔(最后一小時,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)罩?,它在MySQL 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按鈕應(yīng)該會顯示如下信息:

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

1$ yum install percona-toolkit

6.3?Orchestrator

Orchestrator是MySQL復(fù)制拓撲管理和可視化工具(它是一個獨立的工具,不與PMM集成),你可以使用PMM服務(wù)器地址/orchestrator后的URL訪問它?;蛘撸憧梢詥螕糁鱌MM服務(wù)器著陸頁上的MySQL復(fù)制拓撲管理器按鈕。

要使用它,在所有管理實例上為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)控指標?;蛘哂幸恍┬枰獙iT的插件支持才可以正確顯示。

但是收集圖表的指標和統(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)計信息可能會導(dǎo)致高開銷,因此請謹慎使用此功能。要啟用用戶統(tǒng)計信息,請將userstat變量設(shè)置為1即可。

MySQL Performance Schema

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

注意:此選項可能導(dǎo)致額外的開銷,應(yīng)謹慎使用。

MySQL Query Response Time

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

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

啟用查詢響應(yī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ù)塊占用的預(yù)期內(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)控實例相對應(yīng)的單個服務(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)建相應(yī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)控應(yīng)用時,其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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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