最近要对数据库的监控体系进行改进,发现Percona 公司的一款开源的监控工具Percona Monitoring and Management(PMM) 对于MySQL的监控指标各项值比较全面准确,现在公司内部的开发测试环境进行了部署体验。

    主要的架构图如下:源于官方

    可以看到主要是由客户端的代理程序node_export\mysqld_export\mongodb_export等和客户端管理工具pmm-admin做为数据的收集方式并发送到服务端的QAN API\Consul API\Prometheus等各个API然后通过Grafana来展示数据指标,界面非常靓丽


    Pmm 的server端的运行方式主要有官方提供的以下三种方式:

      1.已经集成好的Docker方式

      2.集成好的VirtualBox方式

      3. Amazon Machine Image (AMI)

     在这里我用的是Docker方式,轻量部署、升级很方便

    PMM的client安装比较方便,直接安装官方的yum安装就OK了


#详细的请参考官方文档

https://www.percona.com/doc/percona-monitoring-and-management/index.html


#Dokcer方式部署

提前准备好系统和Docker服务,安装不在这里展示

1-创建容器的数据磁盘

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.1.1 /bin/true

2-创建容器的运行实例

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



#客户端安装

[root@master ~]# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

[root@master ~]# yum install -y pmm-client


#增加客户端mysql监控


[root@master ~]# pmm-admin config  --server 192.168.100.171

OK, PMM server is alive.


PMM Server      | 192.168.100.171 

Client Name     | master.wboy.com

Client Address  | 192.168.100.41 


[root@master ~]# pmm-admin list

pmm-admin 1.1.1


PMM Server      | 192.168.100.171 

Client Name     | master.wboy.com

Client Address  | 192.168.100.41 

Service Manager | unix-systemv


No monitoring registered for this node identified as 'master.wboy.com'.


#命令帮助

[root@master ~]# pmm-admin  add --help

This command is used to add a monitoring service.


Usage:

  pmm-admin add [command]


Available Commands:

  mysql            Add complete monitoring for MySQL instance (linux and mysql metrics, queries).

  linux:metrics    Add this system to metrics monitoring.

  mysql:metrics    Add MySQL instance to metrics monitoring.

  mysql:queries    Add MySQL instance to Query Analytics.

  mongodb          Add complete monitoring for MongoDB instance (linux and mongodb metrics).

  mongodb:metrics  Add MongoDB instance to metrics monitoring.

  proxysql:metrics Add ProxySQL instance to metrics monitoring.


Flags:

      --service-port uint16   service port


Global Flags:

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


Use "pmm-admin add [command] --help" for more information about a command.

[root@master ~]# 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 'pmm@' 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 [name] [flags]


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-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

      --host string                       MySQL host

      --password string                   MySQL password

      --port string                       MySQL port

      --query-source string               source of SQL queries: auto, slowlog, perfschema (default "auto")

      --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 uint16   service port


#增加本地mysql实例

[root@master ~]# pmm-admin  add  mysql  --user root --password root

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

[mysql:metrics] OK, now monitoring MySQL metrics using DSN root:***@unix(/var/lib/mysql/mysql.sock)

[mysql:queries] OK, now monitoring MySQL queries from slowlog using DSN root:***@unix(/var/lib/mysql/mysql.sock)


安装完成后的访问地址列表:其实在 landing page包含了下面三个功能的页面


各个组件 功能访问地址
PMM landing page http://192.168.100.1
Query Analytics (QAN web app) http://192.168.100.1/qan/
Metrics Monitor (Grafana)

http://192.168.100.1/graph/

User name: admin

Password: admin

Orchestrator http://192.168.100.1/orchestrator

##

下面是一些截图界面


MySQL-MongoDB开源监控利器之PMM_第1张图片

MySQL-MongoDB开源监控利器之PMM_第2张图片

MySQL-MongoDB开源监控利器之PMM_第3张图片

MySQL-MongoDB开源监控利器之PMM_第4张图片

MySQL-MongoDB开源监控利器之PMM_第5张图片