2016-05-07 3 views
1

電子メールスクリプトを使用してNagios Alertsを送信しています。 コマンドがNagiosが電子メール警告のマクロを解決しない

define command{ 
     command_name notify-host-by-email 
     command_line bash /etc/nagios/servers/email.sh /usr/local/aws/bin/aws [email protected] [email protected] 'NAGIOS Alert : $NOTIFICATIONTYPE$' 'Notification Type: $NOTIFICATIONTYPE$<br />Host: $HOSTNAME$<br />State: $HOSTSTATE$<br />Address: $HOSTADDRESS$<br />Info:$HOSTOUTPUT$<br />Date/Time: $LONGDATETIME$\n<br />' 
     } 

ですそして、私の電子メールのスクリプトファイルは言う:私はAWSメールサービスCLIに

を使用してメールを送信してい

#!/bin/bash 

echo "____Sending Mail___ " 
echo "To : "$2 
echo "From: "$3 
echo "Subject: "$4 
echo "Message: "$5 

source /etc/environment 
echo '{"Subject":{"Data":"'"$4"'","Charset":"UTF-8"},"Body":{"Html":{"Data":"'"$5"'","Charset":"UTF-8"}}}' > /etc/nagios/servers/template.json 
$1 ses send-email --region "us-west-2" --destination ToAddresses=$2 --from $3 --message file:///etc/nagios/servers/template.json 

しかし、私が受け取るメールは言う:

Notification Type: $NOTIFICATIONTYPE$ 
Host: $HOSTNAME$ 
State: $HOSTSTATE$ 
Address: $HOSTADDRESS$ 
Info:$HOSTOUTPUT$ 
Date/Time: $LONGDATETIME$ 

答えて

0

解決済み...

ここで

コマンドです:

define command{ 
     command_name notify-host-by-email 
     command_line bash /etc/nagios/servers/email.sh /usr/local/aws/bin/aws [email protected] [email protected] "NAGIOS $NOTIFICATIONTYPE$ Alert : $HOSTNAME$" "Notification Type: '$NOTIFICATIONTYPE$'<br />Host: '$HOSTNAME$'<br />State: '$HOSTSTATE$'<br />Address: '$HOSTADDRESS$'<br />Info:'$HOSTOUTPUT$'<br />Date/Time: '$LONGDATETIME$'\n<br />" 
     } 

別の問題が巻き起こっていたことが、繰り返し同じメール通知を送信していました、私は複数の通知が同じtemplate.jsonを使用していたので、それがあったとします。だからここで私は一時的なjsonを作成し、メールが送信された後にそれを削除しています。また、syslogにログを追加しました。それは多くの助けとなりました。
email.sh:

#!/bin/bash 

logger -i "____Sending Mail___ To : '$2' From: '$3'" 
logger -i " With Subject: '$4'" 
logger -i " With Message: '$5'" 
logger -i "User : '$USER'" 
temp_file_name=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) 

source /etc/environment 
touch /tmp/$temp_file_name.json |& logger 

echo '{"Subject":{"Data":"'"$4"'","Charset":"UTF-8"},"Body":{"Html":{"Data":"'"$5"'","Charset":"UTF-8"}}}' > /tmp/$temp_file_name.json 
$1 ses send-email --region "us-east-1" --destination ToAddresses=$2 --from $3 --message file:///tmp/$temp_file_name.json |& logger 

rm /tmp/$temp_file_name.json |& logger 
関連する問題