Skip to main content

14_Mariadb

PRÉREQUIS : un utilisateur MariaDB dédié en lecture seule

Sur ton serveur MariaDB :

sudo mysql -u root -p

Puis :

CREATE USER 'nagios'@'%' IDENTIFIED BY 'TonMotDePasseNagios';
GRANT SELECT ON ma_base.* TO 'nagios'@'%';
FLUSH PRIVILEGES;

Cet utilisateur ne peut lire que la base ma_base.

SCRIPT NAGIOS : check_mariadb.sh

Créer le fichier :

sudo nano /usr/local/nagios/libexec/check_mariadb.sh

Colle ceci :

#!/bin/bash

HOST="$1"
USER="$2"
PASS="$3"
DB="$4"

MYSQL="/usr/bin/mysql"

# Vérifier que mysql existe
if [ ! -x "$MYSQL" ]; then
    echo "CRITICAL - mysql client introuvable"
    exit 2
fi

# 1) Vérifier que MariaDB répond
$MYSQL -h "$HOST" -u "$USER" -p"$PASS" -e "SELECT 1;" >/dev/null 2>&1
if [ $? -ne 0 ]; then
    echo "CRITICAL - MariaDB ne répond pas"
    exit 2
fi

Ensuite il faut le rendre exécutable :

sudo chmod +x /usr/local/nagios/libexec/check_mariadb.sh

TEST MANUEL

Depuis Nagios :

/usr/local/nagios/libexec/check_mariadb.sh 192.168.200.14 nagios "TonMotDePasseNagios" ma_base
OK - MariaDB fonctionne et la base 'ma_base' répond

dans le fichier commands

Dans commands.cfg :

define command{
    command_name    check_mariadb_custom
    command_line    /usr/local/nagios/libexec/check_mariadb.sh $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$
}

créer un fichier pour l'hote

Dans mariadb.cfg :

define service{
    use                     generic-service
    host_name               mariadb
    service_description     MariaDB - ma_base
    check_command           check_mariadb_custom!nagios!TonMotDePasseNagios!ma_base
}

Reload Nagios :

sudo systemctl reload nagios