Maison  >  Article  >  Opération et maintenance  >  Comment configurer la surveillance du cluster de bases de données à haute disponibilité sous Linux

Comment configurer la surveillance du cluster de bases de données à haute disponibilité sous Linux

WBOY
WBOYoriginal
2023-07-05 11:13:36821parcourir

Comment configurer la surveillance d'un cluster de bases de données à haute disponibilité sous Linux

Introduction :
Dans les systèmes d'entreprise modernes, les bases de données sont un composant essentiel. Afin de garantir la haute disponibilité et le fonctionnement stable et continu de la base de données, la configuration de la surveillance du cluster de bases de données à haute disponibilité sous Linux est une étape nécessaire. Cet article explique comment configurer la surveillance d'un cluster de bases de données à haute disponibilité dans un environnement Linux et fournit des exemples de code pertinents.

1. Installez et configurez le cluster de base de données
Avant de configurer la surveillance du cluster de base de données, vous devez d'abord créer un cluster de base de données fiable. En prenant la base de données MySQL comme exemple, voici les étapes pour installer et configurer le cluster de base de données MySQL :

  1. Téléchargez et installez la base de données MySQL
    Exécutez la commande suivante sur chaque nœud à installer :

    $ sudo apt-get update
    $ sudo apt-get install mysql-server
  2. Configurez le Nœud maître de la base de données MySQL
    Ouvrez le fichier de configuration MySQL du nœud maître (généralement dans /etc/mysql/my.cnf) et effectuez la configuration suivante :

    [mysqld]
    server-id=1
    log-bin=mysql-bin
    binlog-format=ROW
  3. Configurez le nœud esclave de la base de données MySQL
    Ouvrez le fichier de configuration MySQL de le nœud esclave et effectuez la configuration suivante :

    [mysqld]
    server-id=2
    relay-log=mysql-relay-bin
    log-bin=mysql-bin
    binlog-format=ROW
    read-only=1
  4. Démarrez la base de données
    Exécutez la commande sur chaque nœud pour démarrer le serveur de base de données :

    $ sudo systemctl start mysql

2. Utilisez Keepalived pour obtenir une haute disponibilité
Keepalived est un outil open source qui peut être utilisé pour atteindre une haute disponibilité des services. Voici les étapes pour configurer la haute disponibilité du cluster de bases de données à l'aide de Keepalived :

  1. Installer Keepalived
    Exécutez la commande suivante sur chaque nœud à installer :

    $ sudo apt-get install keepalived
  2. Configurer Keepalived
    Ouvrez le fichier de configuration Keepalived (généralement dans /etc/ keepalived/ keepalived.conf) et effectuez la configuration suivante :

    vrrp_script check_mysql {
        script "/usr/bin/mysqladmin ping"
        interval 2
        weight -1
        fall 3
        rise 2
    }
    
    vrrp_instance VI_1 {
        interface eth0
        state BACKUP
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass strongpassword
        }
        virtual_ipaddress {
            192.168.1.100
        }
        track_script {
            check_mysql
        }
    }
  3. Démarrez Keepalived
    Exécutez la commande suivante sur chaque nœud pour démarrer le service Keepalived :

    $ sudo systemctl start keepalived

3. Utilisez Pacemaker et Corosync pour implémenter la surveillance du cluster
Pacemaker. est un outil de clustering, des outils de gestion et de basculement automatique, et Corosync est le logiciel utilisé pour implémenter la communication en cluster. Voici les étapes pour configurer la surveillance du cluster de bases de données à l'aide de Pacemaker et Corosync :

  1. Installer Pacemaker et Corosync
    Exécuter la commande suivante sur chaque nœud à installer :

    $ sudo apt-get install pacemaker corosync
  2. Configurer Corosync
    Ouvrez le fichier de configuration Corosync (généralement dans / etc /corosync/corosync.conf) et effectuez la configuration suivante :

    totem {
        version: 2
        secauth: on
        cluster_name: my_cluster
        transport: udpu
    }
    
    nodelist {
        node {
            ring0_addr: node1_ip
            name: node1
            nodeid: 1
        }
        node {
            ring0_addr: node2_ip
            name: node2
            nodeid: 2
        }
        /* Add more nodes as necessary */
    }
    
    quorum {
        provider: corosync_votequorum
    }
  3. Configure Pacemaker
    Exécutez la commande suivante sur chaque nœud pour configurer Pacemaker :

    $ sudo crm configure
    crm(live)> property no-quorum-policy=ignore
    crm(live)> rsc_defaults resource-stickiness=100
    crm(live)> rsc_defaults migration-threshold=1
    crm(live)> configure primitive mysql lsb:mysql op monitor interval=30s
    crm(live)> configure clone mysql-clone mysql meta clone-max=2 clone-node-max=1
    crm(live)> configure group mysql-group mysql-clone
    crm(live)> verify
    crm(live)> commit

Conclusion :
Avec la configuration ci-dessus, nous l'avons implémentée avec succès sous Linux Surveillance de cluster de bases de données hautement disponible. De cette manière, notre système de base de données peut continuer à fonctionner même en cas de panne de nœud, garantissant ainsi la stabilité et la disponibilité du système.

Exemple de code de référence :

  1. Exemple de fichier de configuration de nœud maître MySQL (/etc/mysql/my.cnf) :

    [mysqld]
    server-id=1
    log-bin=mysql-bin
    binlog-format=ROW
  2. Exemple de fichier de configuration de nœud esclave MySQL (/etc/mysql/my.cnf) :

    [mysqld]
    server-id=2
    relay-log=mysql-relay-bin
    log-bin=mysql-bin
    binlog-format=ROW
    read-only=1
  3. Exemple de fichier de configuration Keepalived (/etc/keepalived/keepalived.conf) :

    vrrp_script check_mysql {
    script "/usr/bin/mysqladmin ping"
    interval 2
    weight -1
    fall 3
    rise 2
    }
    
    vrrp_instance VI_1 {
    interface eth0
    state BACKUP
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass strongpassword
    }
    virtual_ipaddress {
        192.168.1.100
    }
    track_script {
        check_mysql
    }
    }
  4. Exemple de commande de configuration Pacemaker :

    $ sudo crm configure
    crm(live)> property no-quorum-policy=ignore
    crm(live)> rsc_defaults resource-stickiness=100
    crm(live)> rsc_defaults migration-threshold=1
    crm(live)> configure primitive mysql lsb:mysql op monitor interval=30s
    crm(live)> configure clone mysql-clone mysql meta clone-max=2 clone-node-max=1
    crm(live)> configure group mysql-group mysql-clone
    crm(live)> verify
    crm(live)> commit

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn