Beispielscripts für benutzerdefinierte Alerttypen

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

Alert bei hoher Systemauslastung generieren

Das folgende Shell-Script generiert einen kritischen Alert, wenn die Auslastung eines Dateisystems auf dem Datenbankserver 90 Prozent übersteigt.
#!/bin/sh
df -kP | grep -vE 'ˆFilesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
  echo $output
  usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
echo usep is $usep
if [ $usep -ge 90 ]; then
    returnValue=-2
    echo "Running out of space on ($usep%)\" on $(hostname) as on $(date)" 
else returnValue=0
fi
done
exit $returnValue

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.
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