Beispielscripts für benutzerdefinierte Alerttypen

Die folgenden Beispiele erläutern die Erstellung von Scripts unter Linux für benutzerdefinierte Alerttypen für den Umgang mit verschiedenen Alertszenarios.

Alert bei hoher Systemauslastung generieren

Das folgende Shell-Script generiert einen Warnungsalert, falls ein Dateisystem auf dem Datenbankserver eine Auslastung von 90 % überschreitet, und einen kritischen Alert, falls ein Dateisystem auf dem Datenbankserver eine Auslastung von 95 % überschreitet.
#!/bin/sh

# Percent usage thresholds that will flag a problem -- change as needed
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

Alert bei geringem freiem Speicherbereich im Speicher generieren

Das folgende Shell-Script generiert einen Warnungsalert, wenn der freie Speicherbereich weniger als 10 MB beträgt, und einen kritischen Alert, wenn der freie Speicherbereich weniger als 5 MB beträgt.
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

Alert für Datenbankbackup generieren

In diesem Beispiel generiert das reine SQL-Script einen kritischen Alert, wenn die letzte Backup-Operation für eine Produktionsdatenbank an einem bestimmten Datum und zu einer bestimmten Uhrzeit stattgefunden hat.
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

Alert für Diagnosesätze generieren

In diesem Beispiel generiert das reine SQL-Script einen Warnungsalert, wenn die Stufe 'W' (Warnung) in den allgemeinen DB2-Diagnoseprotokollen protokolliert wird, und einen kritischen Alert, wenn die protokollierte Stufe 'E' (Fehler), 'C' (Kritisch) oder 'S' (Schwerwiegend) ist.
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