Skip to main content

Configurando o Percona Monitoring and Management usando Docker

As instruções são um pouco confusas, então achei melhor criar um guia.

Requisitos:

1) Uma máquina rodando Docker com alguma porta exposta (no exemplo usei a 4443)
2) Uma ou mais máquina rodando MariaDB ou Mysql, com acesso root

1) Instalar o Servidor PMM

Baixar a imagem do docker:
docker pull percona/pmm-server:2

Criar o volume para armazenar os dados:
docker volume create pmm-data

Iniciar o container:
docker run --detach --restart always --publish 4443:443 --volume pmm-data:/srv --name pmm-server percona/pmm-server:2

2) Configurar o servidor

Acesse a administração e crie uma senha. Os dados do primeiro acessão são admin / admin:
https://ip-do-servidor:8443

3) Instalar o cliente

Em cada máquina que será monitorada, instale o pmm-client. Por exemplo, no Debian fica assim:
wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
dpkg -i percona-release_latest.generic_all.deb
sudo apt update
sudo apt install -y pmm2-client

4) Configurar os clientes

Crie um usuário no banco com algumas permissões básicas. O exemplo abaixo é para o MariaDB:
CREATE USER 'pmm'@'127.0.0.1' IDENTIFIED BY 'pass';
UPDATE mysql.user set MAX_USER_CONNECTIONS = 10 WHERE user = 'pmm';
GRANT SELECT, PROCESS, REPLICATION CLIENT, RELOAD ON *.* TO 'pmm'@'127.0.0.1';
FLUSH PRIVILEGES;

Aqui tem mais exemplos: https://docs.percona.com/percona-monitoring-and-management/setting-up/client/mysql.html#create-a-database-account-for-pmm

Conecte o agente com o servidor:
pmm-admin config --server-insecure-tls --server-url=https://admin@localhost:senha@ip-do-servidor:4443 --force

admin@localhost é o usuário que você criou no painel, senha é a senha desse usuário.

Conecte o agente com o banco de dados:

pmm-admin add mysql --username=pmm --password=senha --server-insecure-tls --server-url=https://admin:senha@ip-do-servidor:4443 --query-source=perfschema hostname localhost:3306

--username e --password são as credenciais de acesso ao banco. As outras credenciais são as mesmas informadas acima (pois é). perschema indica que o cliente vai usar a tabela performance_schema para as estatísticas (também pode ser pelo arquivo de slow query, mas não achei exemplo de como funciona). hostname é o nome que vai ser exibido no servidor, e é bom que seja diferente para cada instância monitorada.

Fontes:

https://github.com/percona/pmm

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