Maison  >  Article  >  Tutoriel système  >  Master vous apprend à découvrir et surveiller automatiquement l'état de la base de données esclave MySQL

Master vous apprend à découvrir et surveiller automatiquement l'état de la base de données esclave MySQL

WBOY
WBOYoriginal
2024-08-13 11:40:251193parcourir

L'état de la base de données esclave MySQL surveille principalement trois valeurs, à savoir Slave SQL Running, Slave IO Running et Seconds Behind Master. Ce n'est que lorsque Slave SQL Running, Slave IO Running est oui et Seconds Behind Master est 0 que la base de données esclave peut fonctionner dans un état normal (parfois si ces trois valeurs répondent aux exigences, il y aura des problèmes avec les données de la base de données esclave. ). Jetons d'abord un coup d'œil à l'effet de surveillance :

Master vous apprend à découvrir et surveiller automatiquement létat de la base de données esclave MySQL

Puisqu'il s'agit de découvrir et de surveiller automatiquement l'état de la bibliothèque esclave mysql, collez d'abord la configuration des règles de découverte automatique, utilisez mysql.slave.discover pour obtenir le port de la bibliothèque esclave mysql, installez zabbix agentd dans la bibliothèque esclave , et ajoutez la configuration (UserParameter= mysql.slave.discover,python /usr/local/zabbix/discover_mysql_slave.py) :

Master vous apprend à découvrir et surveiller automatiquement létat de la base de données esclave MySQL

Parmi eux, le script python pour découvrir automatiquement le port mysql peut être trouvé sur : https://my.oschina.net/zhuangweihong/blog/785919 Cet article a un script similaire. Après avoir découvert automatiquement le port mysql, le prototype du projet de détection utilisé est le suivant. Trois prototypes sont utilisés pour obtenir les trois valeurs​​à surveiller depuis la bibliothèque esclave mysql :

Master vous apprend à découvrir et surveiller automatiquement létat de la base de données esclave MySQL

Les valeurs clés obtenues doivent être ajoutées à la configuration depuis l'agent de bibliothèque, puis redémarrer agentd :

UserParameter=mysql.slave.status[*],sh /usr/local/zabbix/check_mysql_slave.sh -u xxx-p xxx -P $1 -k $2 2>/dev/null

Enfin, jetez un œil au script /usr/local/zabbix/check_mysql_slave.sh, comme suit :

#!/bin/sh
while getopts "u:p:P:k:" opt
do
        case $opt in
                u ) user=$OPTARG;;
                p ) password=$OPTARG;;
                P ) port=$OPTARG;;
                k ) key=$OPTARG;;
                ? )
                echo 'parameter is wrong!'
                exit 1;;
        esac
done
if [ ! "${user}" ] || [ ! "${password}" ] || [ ! "${port}" ] || [ ! "${key}" ];then
        echo "parameter is null"        
        exit 1
fi

mysql -u ${user} -p${password} -h 127.0.0.1 -P${port} -e "show slave status\G"|grep "${key}\:"|awk '{pr

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