监控系统-PMM
Percona Monitoring and Management (PMM)是一款开源的用于管理和监控MySQL和MongoDB性能的开源平台
通过PMM客户端收集到的DB监控数据用第三方软件Grafana画图展示出来
PMM提供了对MyISAM、InnoDB、TokuDB和PXC/Glarera的监控,另外也提供了Query Analytics的功能,可以
检视执行了哪些SQL指令,并对执行效能较差的语法进行优化。另外在新版本还支持了MySQL复制拓扑图结构构造
1 安装
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache yum install -y epel-release yum install docker -y systemctl start docker docker pull percona/pmm-server:latest
查看镜像
[root@jenkins opt]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/percona/pmm-server latest deac61541b67 5 months ago 1.08 GB
[root@jenkins opt]# docker version Client: Version: 1.13.1 API version: 1.26 Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64 Go version: go1.10.3 Git commit: 7f2769b/1.13.1 Built: Mon Aug 5 15:09:42 2019 OS/Arch: linux/amd64 Server: Version: 1.13.1 API version: 1.26 (minimum version 1.12) Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64 Go version: go1.10.3 Git commit: 7f2769b/1.13.1 Built: Mon Aug 5 15:09:42 2019 OS/Arch: linux/amd64 Experimental: false
--关闭防火墙,禁用selinux
groupadd docker
useradd -g docker docker
创建容器
[docker@jenkins ~]$ docker create \ > -v /opt/prometheus/data \ > -v /opt/consul-data \ > -v /var/lib/mysql \ > -v /var/lib/grafana \ > --name pmm-data \ > docker.io/percona/pmm-server /bin/true fc92bd7d4bcc2e2014cbb5a03584ea269e8cea0e268aca4901a6827cf4570529
启动容器
[docker@jenkins ~]$ docker run -d -p 8090:80 --volumes-from pmm-data --name pmm-server --restart always docker.io/percona/pmm-server 8d925d326813083143c04ff6155617738624f4a9e8c6792ae6200bd78e05a214
安装pmm-client
[root@jenkins opt]# rpm -ivh pmm-client-1.17.1-1.el7.x86_64.rpm warning: pmm-client-1.17.1-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY Preparing... ################################# [100%] Updating / installing... 1:pmm-client-1.17.1-1.el7 ################################# [100%]
配置server
[root@jenkins opt]# pmm-admin config --server 192.168.19.229:8090 OK, PMM server is alive. PMM Server | 192.168.19.229:8090 Client Name | jenkins Client Address | 192.168.19.229
创建mysql监控账号
(root@localhost:mysql.sock) [(none)]> create user 'monitor'@'%' identified by '***'; Query OK, 0 rows affected (0.47 sec) (root@localhost:mysql.sock) [(none)]> grant all privileges on *.* to 'monitor'@'%'; Query OK, 0 rows affected (0.02 sec) (root@localhost:mysql.sock) [(none)]> flush privileges; Query OK, 0 rows affected (0.21 sec)
添加remote mysql实例
[root@jenkins opt]# pmm-admin add mysql --user monitor --password *** --host 10.15.7.29 [linux:metrics] OK, now monitoring this system. [mysql:metrics] OK, now monitoring MySQL metrics using DSN monitor:***@tcp(10.15.7.29:3306) [mysql:queries] OK, now monitoring MySQL queries from perfschema using DSN monitor:***@tcp(10.15.7.29:3306) [root@jenkins opt]# pmm-admin list pmm-admin 1.17.1 PMM Server | 192.168.19.229:8090 Client Name | jenkins Client Address | 192.168.19.229 Service Manager | linux-systemd -------------- -------- ----------- -------- --------------------------------- --------------------------------------------- SERVICE TYPE NAME LOCAL PORT RUNNING DATA SOURCE OPTIONS -------------- -------- ----------- -------- --------------------------------- --------------------------------------------- mysql:queries jenkins - YES monitor:***@tcp(10.15.7.29:3306) query_source=perfschema, query_examples=true linux:metrics jenkins 42000 YES - mysql:metrics jenkins 42002 YES monitor:***@tcp(10.15.7.29:3306)
[root@jenkins opt]# pmm-admin check-network PMM Network Status Server Address | 192.168.19.229:8090 Client Address | 192.168.19.229 * System Time NTP Server (0.pool.ntp.org) | 2019-08-08 06:25:51 +0000 UTC PMM Server | 2019-08-08 06:25:50 +0000 GMT PMM Client | 2019-08-08 14:25:52 +0800 CST PMM Server Time Drift | OK PMM Client Time Drift | OK PMM Client to PMM Server Time Drift | OK * Connection: Client --> Server -------------------- ------- SERVER SERVICE STATUS -------------------- ------- Consul API OK Prometheus API OK Query Analytics API OK Connection duration | 372.087µs Request duration | 5.621825ms Full round trip | 5.993912ms * Connection: Client <-- Server -------------- -------- --------------------- ------- ---------- --------- SERVICE TYPE NAME REMOTE ENDPOINT STATUS HTTPS/TLS PASSWORD -------------- -------- --------------------- ------- ---------- --------- linux:metrics jenkins 192.168.19.229:42000 OK YES - mysql:metrics jenkins 192.168.19.229:42002 OK YES -
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构