Surveillez vos bases de données avec cet outil open source

J’utilise des bases de données depuis bien plus longtemps que je ne veux l’admettre, et une grande partie de ce temps a été consacrée à examiner les entrailles des serveurs, à essayer de déterminer exactement ce qu’ils faisaient. Dieu merci pour les ingénieurs derrière le schéma de performances et le schéma d’information MySQL et leurs efforts pour fournir des informations solides. Et puis est venu le schéma Sys avec des aperçus préemballés pratiques sur le serveur. Avant l’avènement de ces schémas, il n’existait aucun moyen simple d’obtenir des informations granulaires sur une instance de base de données.
Mais scruter les affichages tabulés des informations d’un point dans le temps ne permet pas de repérer les tendances ou de jeter un coup d’œil rapide pour déterminer l’état d’un serveur. Pouvoir repérer une tendance sur un graphique ou se faire envoyer des alertes lorsqu’un seuil est atteint est vital. Mes amis dans les mondes PostgreSQL et MongoDB ont eu le même problème. La bonne nouvelle est qu’il existe une solution open source pour les trois bases de données, facile à installer et à utiliser.
Je suis un employé relativement nouveau chez Percona, mais je travaille avec MySQL depuis un certain temps long temps. L’un de mes premiers objectifs était d’apprendre à configurer et à utiliser Percona Monitoring and Measurement (PMM). Je connais un tas de gens qui l’utilisent avec plaisir, mais je n’avais travaillé avec lui que quelques instants lors d’un salon professionnel. Mon appréhension naturelle à l’idée d’installer tout ce qui fournissait des informations graphiques liées à une base de données s’est établie bien avant l’apparition des bases de données open source. Cette hésitation est enracinée dans les tentatives de configuration d’autres logiciels de surveillance pour les bases de données propriétaires.
Le TL; DR est que PMM est simple à installer et à utiliser. La documentation est bien écrite, détaillée et pratique. Le logiciel lui-même est facile à obtenir et à installer. L’expérience globale est un dix sur dix.
Contents
Cas de test
J’aime essayer de nouvelles choses sur de vieux ordinateurs portables, j’ai donc installé une nouvelle copie d’Ubuntu 20.04 LTS. Ensuite, j’ai lu le PMM Documentation.
Je dois dire que j’ai lu la documentation deux fois en marmonnant ça ne peut pas être aussi simple. À la fin de cet article, vous trouverez les commandes que j’ai saisies pour installer le serveur PMM et les agents (MySQL, PostgreSQL et Mongo). C’est un livre de cuisine montrant comment recréer ce cas de test.
Voici les distributions de la base de données Percona :
Prérequis
La condition préalable à l’installation de PMM est Docker, qui s’avère être la partie la plus intensive de toute l’installation. Heureusement, le logiciel de gestion de paquets pour Ubuntu (apt
) rend cela très simple.
Installation du serveur de surveillance et de mesure Percona
L’installation du serveur PMM est simple pour toute personne familiarisée avec le gestionnaire de packages APT. Faites attention à la sortie qui fournit les URL de connexion au serveur PMM. Dans mon cas, les adresses étaient https://127.0.0.1:443/, https://192.168.1.209:443/et https://172.17.0.1:443/.
Vous devrez vous connecter au tableau de bord PMM (le compte et le mot de passe par défaut sont admin
et admin
).
(David Stokes, CC BY-SA 4.0)
Après une connexion réussie, le PMM affiche un tableau de bord.
(David Stokes, CC BY-SA 4.0)
À l’heure actuelle, PMM surveille uniquement le système sous-jacent et la base de données qu’il utilise pour collecter des statistiques. C’est ce que les nœuds surveillés et le nombre de bases de données surveillées dans l’image ci-dessus affichent tous les deux. 1.
Les clients de la base de données
Les clients surveillent les instances de base de données, et encore une fois, les clients sont simples à installer avec le gestionnaire de packages. L’étape suivante consiste à enregistrer le client auprès du serveur :
$ sudo pmm-admin config --server-insecure-tls --server-url=https://admin:admin@127.0.0.1
Les dernières étapes consistent à configurer le serveur de base de données. Dans l’exemple ci-dessous, MySQL de Percona est installé et un compte est créé pour collecter des statistiques. Enfin, le client collecte les informations de l’instance de base de données :
$ sudo pmm-admin add mysql --username=pmm --password=pass --query-source=perfschema
Pour PostgreSQL et MongoDB, remplacez le nom de la base de données sur le add
option à l’instance respective que vous souhaitez surveiller.
(David Stokes, CC BY-SA 4.0)
Vous remarquerez que le nombre de nœuds surveillés est passé à 2 au dessus.
PPM vous donne accès à de nombreuses vues différentes de ce que fait le serveur. Vous pouvez voir la santé globale du serveur lui-même.
(David Stokes, CC BY-SA 4.0)
Le tableau de bord général de MySQL affiche la santé globale du système.
(David Stokes, CC BY-SA 4.0)
Et vous pouvez facilement étudier la charge sur le système.
(David Stokes, CC BY-SA 4.0)
Ou étudiez les requêtes individuelles.
Emballer
Percona Monitoring and Management est un outil open source pour surveiller vos instances MySQL, MongoDB ou PostgreSQL. Il est facile à installer et offre un excellent aperçu de vos serveurs.
S’il vous plaît laissez l’auteur avoir des commentaires ou des questions que vous avez sur ce sujet.
Livre de recettes
Voici les commandes et les réponses nécessaires pour installer PMM et MySQL de Percona sur une nouvelle installation d’Ubuntu 20.04 LTS.
1. Installez Docker
$ sudo update-manager$ apt-get install ca-certificates curl gnupg lsudo sb-release
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null$ sudo apt-get update
2. Installer le serveur PMM
$ curl -fsSL https://www.percona.com/get/pmm | sudo /bin/bashGathering/downloading required components, this may take a moment
Checking docker installation - installed.
Starting PMM server...
Created PMM Data Volume: pmm-data
Created PMM Server: pmm-server
Use the following command if you ever need to update your container by hand:
docker run -d -p 443:443 --volumes-from pmm-data --name pmm-server --restart always percona/pmm-server:2PMM Server has been successfully setup on this system!
You can access your new server using the one of following web addresses:
https://127.0.0.1:443/
https://192.168.1.209:443/
https://172.17.0.1:443/The default username is 'admin' and the password is 'admin' :)
Note: Some browsers may not trust the default SSL certificate when you first open one of the urls above.
If this is the case, Chrome users may want to type 'thisisunsafe' to bypass the warning.Enjoy Percona Monitoring and Management!
3. Ajouter le référentiel Percona
$ wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb$ sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
$ sudo apt-get update
Get:1 http://repo.percona.com/percona/apt focal InRelease [15.8 kB]
Hit:2 http://us.archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:4 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease
Hit:5 http://security.ubuntu.com/ubuntu focal-security InRelease
Get:6 http://repo.percona.com/prel/apt focal InRelease [9,779 B]
Hit:7 https://download.docker.com/linux/ubuntu focal InRelease
Get:8 http://repo.percona.com/percona/apt focal/main Sources [4,509 B]
Get:9 http://repo.percona.com/percona/apt focal/main amd64 Packages [18.1 kB]
Get:10 http://repo.percona.com/percona/apt focal/main i386 Packages [414 B]
Get:11 http://repo.percona.com/prel/apt focal/main i386 Packages [750 B]
Get:12 http://repo.percona.com/prel/apt focal/main amd64 Packages [851 B]
Fetched 50.2 kB in 2s (22.7 kB/s)
Reading package lists... Done
4. Installez les agents
$ sudo apt-get install pmm2-clientReading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
pmm2-client
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 78.0 MB of archives.
After this operation, 195 MB of additional disk space will be used.
Get:1 http://repo.percona.com/percona/apt focal/main amd64 pmm2-client amd64 2.26.0-6.focal [78.0 MB]
Fetched 78.0 MB in 9s (9,078 kB/s)
Selecting previously unselected package pmm2-client.
(Reading database ... 144323 files and directories currently installed.)
Preparing to unpack .../pmm2-client_2.26.0-6.focal_amd64.deb ...
Adding system user `pmm-agent' (UID 127) ...
Adding new group `pmm-agent' (GID 134) ...
Adding new user `pmm-agent' (UID 127) with group `pmm-agent' ...
Creating home directory `/usr/local/percona' ...
Unpacking pmm2-client (2.26.0-6.focal) ...
Setting up pmm2-client (2.26.0-6.focal) ...
Created symlink /etc/systemd/system/multi-user.target.wants/pmm-agent.service → /lib/systemd/system/pmm-agent.service.$ sudo pmm-admin config --server-insecure-tls --server-url=https://admin:admin@127.0.0.1:443
Checking local pmm-agent status...
pmm-agent is running.
Registering pmm-agent on PMM Server...
Registered.
Configuration file /usr/local/percona/pmm2/config/pmm-agent.yaml updated.
Reloading pmm-agent configuration...
Configuration reloaded.
Checking local pmm-agent status...
pmm-agent is running.
5. Installez Percona MySQL
$ wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
--2022-03-08 12:57:38-- https://repo.percona.com/apt/percona-release_latest.generic_all.deb
Resolving repo.percona.com (repo.percona.com)... 149.56.23.204
Connecting to repo.percona.com (repo.percona.com)|149.56.23.204|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11804 (12K) [application/x-debian-package]
Saving to: ‘percona-release_latest.generic_all.deb’
percona-release_latest.generic_ 100%[======================================================>] 11.53K --.-KB/s in 0s
2022-03-08 12:57:38 (96.1 MB/s) - ‘percona-release_latest.generic_all.deb’ saved [11804/11804]
$ sudo dpkg -i percona-release_latest.generic_all.deb
(Reading database ... 144372 files and directories currently installed.)
Preparing to unpack percona-release_latest.generic_all.deb ...
Unpacking percona-release (1.0-27.generic) over (1.0-27.generic) ...
Setting up percona-release (1.0-27.generic) ...
* Enabling the Percona Original repository
<*> All done!
==> Please run "apt-get update" to apply changes
* Enabling the Percona Release repository
<*> All done!
==> Please run "apt-get update" to apply changes
The percona-release package now contains a percona-release script that can enable additional repositories for our newer products.
For example, to enable the Percona Server 8.0 repository use:
percona-release setup ps80
Note: To avoid conflicts with older product versions, the percona-release setup command may disable our original repository for some products.
For more information, please visit:
https://www.percona.com/doc/percona-repo-config/percona-release.html
$ sudo percona-release setup pdps-8.0
* Disabling all Percona Repositories
* Enabling the Percona Distribution for MySQL 8.0 - PS repository
Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease
Get:2 http://repo.percona.com/pdps-8.0/apt focal InRelease [9,806 B]
Hit:3 http://us.archive.ubuntu.com/ubuntu focal InRelease
Hit:4 http://repo.percona.com/prel/apt focal InRelease
Hit:5 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:6 https://download.docker.com/linux/ubuntu focal InRelease
Hit:7 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease
Get:8 http://repo.percona.com/pdps-8.0/apt focal/main Sources [6,609 B]
Get:9 http://repo.percona.com/pdps-8.0/apt focal/main amd64 Packages [67.4 kB]
Fetched 83.8 kB in 1s (63.1 kB/s)
Reading package lists... Done
$ sudo apt install percona-server-server
mysql -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
mysql -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
mysql -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
$ sudo apt install percona-mysl-shell
mysqlsh root@localhost
SQL MODE
CREATE USER 'pmm'@'localhost' IDENTIFIED BY 'pass' WITH MAX_USER_CONNECTIONS 10;
GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD, BACKUP_ADMIN ON *.* TO 'pmm'@'localhost';
6. Démarrez le client
$ sudo pmm-admin add mysql --username=pmm --password=pass --query-source=perfschemaMySQL Service added.
Service ID : /service_id/d774faf2-fd3c-4758-9db9-3e1edb65b292
Service name: test2-mysqlTable statistics collection enabled (the limit is 1000, the actual table count is 341).