mysql pmm 布署_给 mysql 安装 pmm 监控
PMM 說明
PMM(Percona Monitoring and Management) 是一款監控和分析 MySQL 服務的一套工具,可以從圖形化的方式看到 MySQL 服務的各種性能指標,慢查詢分析、連接數、線程狀態、查詢信息、緩存信息等等,對分析 MySQL 運行時問題很有幫助。
PMM 由兩部分軟件組成,PMM Client 和 PMM Server,前者負責在運行 MySQL 服務的地方收集信息,后者則獲取由 PMM Client 收集的信息進行匯總聚合并呈現最終的表格圖形到 Web 瀏覽器等。PMM Client 和 PMM Server 可以不用運行在同一臺服務器,可能需要運行多個 PMM Client,如 MySQL 運行在集群模式下,需要在每臺 MySQL 服務器部署 PMM Client 軟件,將信息發送到 PMM Server 運行的服務器上。如果僅簡單的跑一個 MySQL 實例,也可以將 PMM Client 和 PMM Server 都部署在 MySQL 服務器上。
下面這張是 PMM 的架構圖:
PMM Client 軟件包這邊包含了幾個軟件,這里逐個解析:pmm-admin: PMM Client 安裝之后,這個命令行工具就是需要來配置 PMM Client 和 PMM Server 連接以及配置收集 MySQL 服務。
node_exporter: Prometheus exporter 用于搜集一般系統信息。Prometheus 是一套開源的監控系統,采用時序數據庫保存采集的監控數據,有多種 exporter 將第三方服務的監控信息發送到 Prometheus。PMM 工具安裝的時候會就會安裝好 Prometheus 的這些軟件。
mysqld_exporter: 收集 MySQL 服務的 Prometheus exporter。
mongodb_exporter: PMM 也可以監控 MongoDB 服務,所以也帶了 mongodb_exporter。
proxy_exporter: 收集 ProxySQL 信息的 exporter。
pmm-mysql-queries-0: 收集 MySQL 的查詢性能信息,發送到 PMM Server 端的 QAN API。
PMM Server 軟件包由包含以下組件:QAN API: 一個后端服務存儲 PMM Client 發送過來的查詢信息。
QAN APP: QAN Web 服務可視化查詢分析數據。
Prometheus: PMM Server 包含 Prometheus 服務。
Grafana: 第三方的可視化圖表軟件使用 Prometheus 源提供數據。
看到 PMM 工具需要這么多軟件并不需要擔心,Percona 已經將 PMM Server 打包在 Docker 鏡像,PMM Client 也在一個軟件包安裝,安裝配置非常方便快速。
PMM 的安裝
以下基于 Ubuntu 18.04 介紹如何將 PMM 安裝在 MySQL 的服務器上。
PMM Server 安裝
官方已經將 PMM Server 軟件打包在 Docker 鏡像,安裝很簡單。Ubuntu 18.04 已經有 Docker 服務。
1. 拉取最新的 PMM Server 鏡像
tag 1 是 PMM Server 最新的鏡像。
$ docker pull percona/pmm-server:1
2. 創建一個 pmm-data 容器
該容器用來初始化數據卷來保存數據,不要刪除這個 pmm-data 容器。
$ 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 /bin/true
3. 創建和啟動 pmm-server 容器
使用的數據卷為 pmm-data 容器設置的,其中端口可以設置為自己所需要的。
$ docker run -d
-p 8001:80
--volumes-from pmm-data
--name pmm-server
-e SERVER_USER=jsmith
-e SERVER_PASSWORD=pass1234
--restart always
percona/pmm-server:1
4. 查看 Docker 運行狀態
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d162c955fee9 percona/pmm-server:1 "/opt/entrypoint.sh" 13 days ago Up 13 days 443/tcp, 0.0.0.0:8001->80/tcp pmm-server
上述步驟執行完畢,則 PMM Server 已經開始運行,可以使用瀏覽器訪問服務器的 8001 端口地址,如果你的機器與服務器是在同一個局域網的話。
這里加上了訪問 PMM Server 的用戶和密碼參數,如果在內網環境是可靠的話,可以不用加這兩個參數,則訪問 PMM Server 不需要密碼。
PMM Client 安裝
1. 下載 DEB 包
去 https://www.percona.com/downloads/pmm/ 下載頁獲取指定系統的 DEB 包,或者直接 wget 下載鏈接。這里下載 Ubuntu 18.04 的安裝包。
$ wget https://www.percona.com/downloads/pmm/1.17.1/binary/debian/bionic/x86_64/pmm-client_1.17.1-1.bionic_amd64.deb
2. 安裝 DEB 包
$ sudo dpkg -i pmm-client_1.17.1-1.bionic_amd64.deb
3. 連接 PMM Client 到 PMM Server
sudo pmm-admin config --server 127.0.0.1:8001 --server-user jsmith --server-password pass1234
--server 指定 PMM Server 服務所在的地址和監聽的端口,如果在同一臺機器,寫本地地址即可。
這里假定之前啟動 PMM Server 時指定了用戶名和密碼,則 PMM Client 連接 PMM Server 需設置用戶名和密碼,如果沒有指定,可以不需要這兩個參數。
可以使用 pmm-admin ping 查看連接狀態。
4. 配置收集 MySQL 數據
PMM 可以從 MySQL 的慢查詢日志或者 Performance Schema 收集查詢數據。從慢查詢日志收集信息最多,但可能增加系統負載。 Performance Schema 從 MySQL 5.6 版開始加入,舊版本的 MySQL,只能設置從慢查詢日志收集了。
4.1 創建一個 MySQL 用戶給 PMM 使用
我們希望只提供一個受限的 MySQL 用戶給 PMM 用來收集相關信息,如訪問 Performance 數據庫。
GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD ON *.* TO 'pmm'@' localhost' IDENTIFIED BY 'pass' WITH MAX_USER_CONNECTIONS 10;
GRANT SELECT, UPDATE, DELETE, DROP ON performance_schema.* TO 'pmm'@'localhost';
或者使用 pmm-admin add mysql 命令的 –create-user 選項,自動創建相關權限的用戶。可以在下面看到相關描述。
4.2 添加監控 MySQL 實例4.2.1 使用 Performance Schema 收集方式確保 MySQL 版本在 5.6(包含) 之后
確保開啟了 Performance Schema。
ysql> SHOW VARIABLES LIKE 'performance_schema';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| performance_schema | ON |
+--------------------+-------+
如果沒有開啟,需在 MySQL 配置文件 my.cnf 種設置, 然后重啟 MySQL。
[mysql]
innodb_monitor_enable=all
performance_schema=ON
運行 pmm-admin 命令添加監控:
sudo pmm-admin add mysql --user pmm --password pass --query-source perfschema4.2.2 使用慢查詢收集方式
確保 MySQL 開啟了慢查詢,在配置文件增加:
log_output=file
slow_query_log=ON
long_query_time=0
log_slow_admin_statements=ON
log_slow_slave_statements=ON
運行 pmm-admin 命令添加監控:
sudo pmm-admin add mysql --user pmm --password pass --query-source slowlog
可以查看增加監控命令的所有選項: pmm-admin add mysql --help
$ sudo pmm-admin add mysql --help
This command adds the given MySQL instance to system, metrics and queries monitoring.
When adding a MySQL instance, this tool tries to auto-detect the DSN and credentials.
If you want to create a new user to be used for metrics collecting, provide --create-user option. pmm-admin will create
a new user '[email?protected]' automatically using the given (auto-detected) MySQL credentials for granting purpose.
Table statistics is automatically disabled when there are more than 10000 tables on MySQL.
[name] is an optional argument, by default it is set to the client name of this PMM client.
Usage:
pmm-admin add mysql [flags] [name]
Examples:
pmm-admin add mysql --password abc123
pmm-admin add mysql --password abc123 --create-user
pmm-admin add mysql --password abc123 --port 3307 instance3307
Flags:
--create-user create a new MySQL user
--create-user-maxconn uint16 max user connections for a new user (default 10)
--create-user-password string optional password for a new MySQL user
--defaults-file string path to my.cnf
--disable-binlogstats disable binlog statistics
--disable-processlist disable process state metrics
--disable-queryexamples disable collection of query examples
--disable-ssl disable ssl mode on exporter
--disable-tablestats disable table statistics
--disable-tablestats-limit uint16 number of tables after which table stats are disabled automatically (default 1000)
--disable-userstats disable user statistics
--force force to create/update MySQL user
-h, --help help for mysql
--host string MySQL host
--password string MySQL password
--port string MySQL port
--query-source string source of SQL queries: auto, slowlog, perfschema (default "auto")
--retain-slow-logs int number of slow logs to retain after rotation (default 1)
--slow-log-rotation enable slow log rotation (default true)
--socket string MySQL socket
--user string MySQL username
Global Flags:
-c, --config-file string PMM config file (default "/usr/local/percona/pmm-client/pmm.yml")
--service-port int service port
--skip-root skip UID check (experimental)
--timeout duration timeout (default 5s)
--verbose verbose output4.2.3 查看配置效果
$ sudo pmm-admin list
pmm-admin 1.17.1
PMM Server | localhost:8001 (password-protected)
Client Name | ubuntu
Client Address | 172.17.0.1
Service Manager | linux-systemd
-------------- ------------ ----------- -------- ------------------------------------------ ---------------------------------------------
SERVICE TYPE NAME LOCAL PORT RUNNING DATA SOURCE OPTIONS
-------------- ------------ ----------- -------- ------------------------------------------ ---------------------------------------------
mysql:queries ubuntu 42002 YES pmm:[email?protected](/var/run/mysqld/mysqld.sock) query_source=perfschema, query_examples=true
linux:metrics ubuntu 42000 YES -
監控界面展示
現在用瀏覽器可以訪問 PMM Server 安裝機器的 IP + 端口地址即可以看到監控信息圖表話界面,如果 PMM Server 啟動時設置了賬號和密碼,此時需要進行賬戶驗證。
服務器系統信息
MySQL
慢查詢
總結
以上是生活随笔為你收集整理的mysql pmm 布署_给 mysql 安装 pmm 监控的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 前端学习_python学习
- 下一篇: 做空股指期货什么意思