22
0
Fork 0

Ajout page PMM

This commit is contained in:
Eric Morino 2022-10-28 15:41:20 +02:00
parent 38741d732f
commit df66901849
1 changed files with 177 additions and 0 deletions

177
HowtoPMM.md Normal file
View File

@ -0,0 +1,177 @@
---
categories: databases
title: Howto Percona Monitoring and Management (PMM)
...
- Documentation : [https://docs.percona.com/percona-monitoring-and-management/index.html](https://docs.percona.com/percona-monitoring-and-management/index.html)
- Docker Hub : [https://hub.docker.com/r/percona/pmm-server](https://hub.docker.com/r/percona/pmm-server)
- Code : [https://github.com/percona/pmm](https://github.com/percona/pmm)
- Licence : [GNU Affero General Public License v3.0](https://www.gnu.org/licenses/#AGPL)
*PMM* est une application client/serveur qui permet de monitoré et de managé des instances MariaDB, Mysql, PostgreSQL, MongoDB et ProxySQL.
PMM vous aide à améliorer les performances des bases de données, à simplifier leur gestion et à renforcer leur sécurité.
# Installation avec l'image Docker
PMM Serveur peut s'installer de différente manière, on va détaillé l'installation dans un conteneur Docker, avec l'image fourni par Percona.
## Prérequis
* Il faut sur la machine hôte, Docker en version 1.12.6 ou plus récent.
On utilise l'image Docker de Percona sur [hub.docker.com](https://hub.docker.com/r/percona/pmm-server/tags)
* Si on démarre le conteneur seul, on copie l'image comme ceci :
~~~
$ docker pull percona/pmm-server:2.31.0
~~~
* On utilise un volume ext4 monté dans */srv*, par exemple, et on démarré l'image comme ceci :
~~~
$ docker run --detach --restart always \
--publish 8333:443 \
-v pmm-data:/srv \
--name pmm-server \
percona/pmm-server:2.31.0
~~~
* Si on utilise Docker Swarm pour déployer la stack, on peut utilisé une configuration similaire dans son fichier .yml :
~~~{.yaml}
pmms:
image: percona/pmm-server:2.31.0
deploy:
replicas: 1
restart_policy:
condition: on-failure
ports:
- 8333:443
volumes:
- /mnt/pmm_server/srv/:/srv/
~~~
* Une fois le conteneur démarré, la première chose à faire est de changer le mot de passe de l'utilisateur `admin` :
~~~
$ docker exec -t pmm-server change-admin-password <nouveau_mot_de_passe>
~~~
On peux ensuite se connecter sur https://{IP_SERVEUR}:8333/ pour se connecte à l'interface de PMM.
# Installation des clients pour Percona Monitoring and Management (PMM)
PMM a besoin de `client` sur les serveur SQL, qui collecte les metriques de l'instance SQL, et qui le renvoi au serveur PMM.
* En premier lieu, il faut créer l'utilisateur SQL dédié à PMM sur l'instance que l'on veux monitoré :
~~~{.sql}
CREATE USER 'pmm'@'%' IDENTIFIED BY '{Password}' WITH MAX_USER_CONNECTIONS 10;
GRANT SELECT, PROCESS, REPLICATION CLIENT, RELOAD ON *.* TO 'pmm'@'%';
~~~
Si l'on utilise MySQL 8.0 il faut rajouter le droit `BACKUP_ADMIN` :
~~~{.sql}
GRANT SELECT, PROCESS, REPLICATION CLIENT, RELOAD, BACKUP_ADMIN ON *.* TO 'pmm'@'%';
~~~
* Puis sur le serveur SQL, on lance la commande qui permet d'ajouter l'instance SQL au serveur PMM :
~~~
$ pmm-admin config --server-url "https://admin:{Password}@IP_SERVEUR:8333" --server-insecure-tls
$ pmm-admin add mysql --host=IP_SERVEUR -port=3306 --username=pmm --password={Password}
~~~
Si on a plusieurs serveurs SQL ou plusieurs instances à monitoré, il faut répéter l'opération sur chaque serveur et / ou ports.
## Activation de différentes métriques sur les serveurs MySQL / MariaDB.
En fonction de ce que vous souhaitez comme métriques sur chaque sources, il est nécessaires d'activer certaines fonctions.
En général les choix se portent sur les `Slow query log` et `Performance Schema`.
Bien que vous puissiez utiliser les deux en même temps, nous vous recommandons d'en utiliser qu'un seul à la fois.
Il y a certains chevauchement dans les données rapportées, et chacun entraîne une légère perte de performance.
Le choix dépend de la variante de votre instance MySQL / MariaDB, et de la quantité de détails que vous souhaitez voir.
Pour MySQL 5.1 et antérieur il est préférable d'activé que les `Slow query log`
Pour MySQL 5.6 et suprérieur ou MariaDB 10.0 et supérieur, il est préférable d'activé `Performance Schema`
### Activation de `Slow query log` :
On active le `Slow query log` comme ceci dans la configuration :
~~~
slow_query_log=ON
long_query_time=2
log_slow_admin_statements=ON
log_slow_slave_statements=ON
~~~
Où comme ceci dans le Shell :
~~~{.sql}
SET GLOBAL slow_query_log = 1;
SET GLOBAL long_query_time = 0;
SET GLOBAL log_slow_admin_statements = 1;
SET GLOBAL log_slow_slave_statements = 1;
~~~
### Activation de `Performance Schema` :
On active le `Performance Schema` comme ceci dans la configuration :
~~~
performance_schema=ON
performance-schema-instrument='statement/%=ON'
performance-schema-consumer-statements-digest=ON
innodb_monitor_enable=all
~~~
Où comme ceci dans le Shell :
~~~{.sql}
UPDATE performance_schema.setup_consumers
SET ENABLED = 'YES' WHERE NAME LIKE '%statements%';
SET GLOBAL innodb_monitor_enable = all;
~~~
### Activation de Query response time
On peux activé un plugin que mesure le temps de distribution d'une requête, montrant la proportion du temps consacré a diverses activités.
Activation du plugin dans MariaDB 10.3+, directement sans redémarrage :
~~~{.sql}
INSTALL PLUGIN QUERY_RESPONSE_TIME_AUDIT SONAME 'query_response_time.so';
INSTALL PLUGIN QUERY_RESPONSE_TIME SONAME 'query_response_time.so';
SET GLOBAL query_response_time_stats = ON;
~~~
Ou dans le fichier de configuration, un rédémarrage est nécessaire :
~~~
[mariadb]
...
plugin_load_add = query_response_time
~~~
### Activation de User statistics
On peux activé également les statistiques sur l'activé de l'utilisateur, les détails d'accès aux tables individuelles et aux indexs.
Dans le fichier de configuration :
~~~
userstat=ON
~~~
Dans le shell :
~~~{.sql}
SET GLOBAL userstat = ON;
~~~