Scripts d'échantillon pour types d'alerte définis par l'utilisateur

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

Feedback