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
Nesse link tem mais instruções para outras plataformas: https://docs.percona.com/percona-monitoring-and-management/setting-up/client/index.html#install
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