Les exemples suivants montrent comment créer des scripts de type d'alerte
définis par l'utilisateur sous Linux, afin de gérer différents scénarios d'alertes.
Générer une alerte si le système de fichiers est saturé
Le
script de shell ci-dessous génère une alerte d'avertissement si un
système de fichiers sur le serveur de base de données dépasse 90 %
d'utilisation et une alerte critique si un système de fichiers sur le
serveur de base de données dépasse 95 % d'utilisation.
#!/bin/sh
# Seuils d'utilisation utilisés pour signaler un problème, exprimés en pourcentage -- modifiez la valeur en fonction de vos besoins
myCriticalLimit=95
myWarningLimit=90
cumulativeSeverity=0
checkThresholdBreach()
{
fsUsage=$1
limit=$2
severity=$3
percentValue=`echo ${fsUsage} | cut -d% -f1`
if [ ${percentValue} -ge ${limit} ]; then
if [ ${cumulativeSeverity} -gt ${severity} ]; then
cumulativeSeverity=${severity}
fi
echo "Threshold ${limit}% reached for ${fsUsage}. Severity: ${severity}"
fi
}
checkFileSystemUsage()
{
capacityOutput=`df -kP | grep -vE '^Filesystem|tmpfs|cdrom|/proc' | awk '{ print $5 "," $1 }' `
for output in ${capacityOutput}
do
checkThresholdBreach ${output} ${myCriticalLimit} -2
checkThresholdBreach ${output} ${myWarningLimit} -1
done
}
checkFileSystemUsage
echo cumulativeSeverity = ${cumulativeSeverity}
exit $cumulativeSeverity
Générer une alerte si la quantité d'espace libre dans la mémoire
est basse
Le script shell suivant génère une alerte d'avertissement
si la quantité d'espace mémoire disponible est inférieure à 10 mégaoctets et une
alerte critique si elle est inférieure à 5 mégaoctets.
freemem=$(cat /proc/meminfo | grep SwapFree | cut -d ":" -f 2 | awk '{print $1}')
echo freemem is $freemem
if [ $freemem -ge 2000000 ]; then
returnValue=0
else
returnValue=-1
fi
exit $returnValue
Générer une alerte pour la sauvegarde de base de données
Dans cet exemple,
le script SQL exclusif génère une alerte critique si la dernière opération de
sauvegarde pour une base de données de production a eu lieu a une date
et une heure données.
SELECT CASE last_backup
WHEN
(SELECT TIMESTAMP(CURRENT DATE - 7 DAYS, CURRENT TIME) FROM sysibm.sysdummy1)
THEN
-2
ELSE
0
END AS returnvalue
FROM sysibmadm.snapdb
Générer une alerte pour les registres de diagnostics
Dans
cet exemple, le script uniquement SQL génère une alerte d'avertissement si le
niveau enregistré dans les journaux de diagnostic général du DB2 est 'W' (Warning),
et une alerte critique si le niveau enregistré est
'E' (Error), 'C' (Critical), ou 'S' (Severe).
SELECT CASE level
WHEN 'W' THEN -1
WHEN 'E' THEN -2
WHEN 'C' THEN -2
WHEN 'S' THEN -2
ELSE 0
END AS RETURNVALUE
FROM TABLE (PD_GET_DIAG_HIST('MAIN','E', '', CAST (NULL AS TIMESTAMP), CAST (NULL AS TIMESTAMP))) AS T