Os exemplos a seguir mostram como criar scripts de tipo de alerta no Linux definidos pelo
usuário para manipular cenários de alerta diferentes.
Gerar um Alerta se a Utilização do Sistema de Arquivos Estiver Alta
O shell script a seguir gera um alerta de aviso se algum sistema de arquivos no servidor de banco de dados exceder 90 por cento de utilização, e um alerta crítico se algum sistema de arquivos no servidor de banco de dados exceder 9 5 por cento de utilização.
#!/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
Gerar um Alerta se a Quantia de Espaço Livre em Memória Estiver Baixa
O
shell script a seguir gerará um alerta de aviso se a quantia de espaço de memória livre for menor
que 10 megabytes e um alerta crítico se o espaço de memória livre for menor que 5 megabytes.
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
Gerar um Alerta para Backup de Banco de Dados
Neste exemplo, o script
somente SQL gerará um alerta crítico se a última operação de backup para um banco de dados de
produção ocorreu em uma determinada data e hora.
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
Gerar um Alerta para Registros de Diagnóstico
Neste exemplo, o script
somente SQL gerará um alerta de aviso se o nível de 'W' (Aviso) for registrado nos logs de
diagnósticos gerais do DB2 e um alerta crítico se o nível registrado for 'E' (Erro), 'C' (Crítico)
ou 'S' (Severo).
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