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


  • FrançaisFrançais


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

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

    Gathering/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:2

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

    Reading 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=perfschema

    MySQL Service added.
    Service ID : /service_id/d774faf2-fd3c-4758-9db9-3e1edb65b292
    Service name: test2-mysql

    Table statistics collection enabled (the limit is 1000, the actual table count is 341).

    Source

    La Rédaction

    L'équipe rédactionnnelle du site

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code