Serveur MYSQL CLUSTER reportmemory.sh
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script de supervision (plugin compatible Nagios/Centreon) |
| Rôle | Alerte sur le taux d'utilisation mémoire Data/Index d'un nœud NDB |
| Seuils | Warning ≥ 80% · Critical ≥ 90% |
| Voir aussi | Script cluster · my.cnf |
Script de supervision qui interroge un nœud de données NDB (ndb_mgm ... report memory) pour connaître son taux d'utilisation mémoire (Data et Index), et retourne un code de sortie au format standard des plugins Nagios (repris tel quel par Centreon et la plupart des solutions de supervision compatibles) : 0=OK, 1=WARNING, 2=CRITICAL, 3=UNKNOWN.
Fonctionnement
- Lit l'identifiant du nœud NDB local depuis la ligne
nodeid=de my.cnf. - Exécute
ndb_mgm -e "nodeid report memory"et capture la sortie. - Extrait les pourcentages d'utilisation Data et Index.
- Compare aux seuils (80% = warning, 90% = critical) et retourne le code correspondant.
Script
#! /bin/bash
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
STATE_DEPENDENT=4
STATE=$STATE_OK
# Warning >= 80
# Alert >= 90
WARNING=80
ALERT=90
configfile=/etc/my.cnf
temporaryfile=/tmp/reportmemory
nodeid=$(grep -m1 nodeid $configfile)
nodeid=${nodeid##*=}
nodeid=${nodeid%%,*}
ndb_mgm -e "$nodeid report memory" > $temporaryfile 2>/dev/null
if [ $? -ne 0 ]
then
echo "Can't connect to manager!"
exit $STATE_UNKNOWN
fi
index=$(cat $temporaryfile | grep Index| cut -d" " -f6)
index=${index%%\%*}
Data=$(cat $temporaryfile | grep Data| cut -d" " -f6)
Data=${Data%%\%*}
if [ $Data -ge $WARNING -o $index -ge $WARNING ]
then
if [ $Data -ge $ALERT -o $index -ge $ALERT ]
then
STATE=$STATE_CRITICAL
STATUS="Critical"
else
STATE=$STATE_WARNING
STATUS="Warning"
fi
fi
if [ ! $STATE = $STATE_OK ];then
echo "$STATUS => Memory usage : Data = $Data%, Index = $index% "
fi
exit $STATE
Limites connues
- Les seuils (
WARNING/ALERT) sont codés en dur plutôt que passés en argument — une évolution possible serait de les rendre paramétrables (-w/-c), non modifiée ici pour rester fidèle au script d'origine. - En cas de fonctionnement
STATE_OK, le script n'affiche aucun message (silencieux) ; seule la sortie non-OK produit une ligne — comportement à connaître si intégré tel quel dans un système affichant systématiquement le message du dernier check. - Dépend de la convention interne
nodeid=dans my.cnf plutôt que d'un identifiant NDB standard — cf. la page my.cnf pour le détail de cette convention.
Voir aussi
- Serveur MYSQL CLUSTER cluster — script de démarrage/arrêt du cluster
- Serveur MYSQL CLUSTER my.cnf — origine de la variable
nodeid - Serveur MYSQL CLUSTER config.ini — réglages
DataMemory/IndexMemorysupervisés ici