以下の例では、さまざまなアラート・シナリオに対応するユーザー定義アラート・タイプのスクリプトを作成する方法を示します。
ファイル・システムの使用率が高い場合にアラートを生成
以下のシェル・スクリプトにより、データベース・サーバーでのいずれかのファイル・システムの使用率が 90% を超えた場合に、クリティカル・アラートが生成されます。
#!/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
メモリー内のフリー・スペースの量が少ない場合にアラートを生成
以下のシェル・スクリプトにより、メモリーのフリー・スペースの量が 10 メガバイトより少ない場合に警告アラートが生成され、メモリーのフリー・スペースが 5 メガバイトより少ない場合にクリティカル・アラートが生成されます。
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
データベース・バックアップに関するアラートの生成
この例では、SQL-only スクリプトにより、特定の日時に実動データベースの最終バックアップ操作が行われた場合にクリティカル・アラートが生成されます。
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
診断レコードに関するアラートの生成
この例では、SQL-only スクリプトにより、DB2 一般診断ログに 'W' (警告) のレベルが記録された場合に警告アラートが生成され、記録されたレベルが 'E' (エラー)、'C' (クリティカル)、または 'S' (重大) の場合にクリティカル・アラートが生成されます。
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