【问题标题】:Nagios not resolving macros in email alertNagios 无法解析电子邮件警报中的宏
【发布时间】:2016-05-07 19:52:16
【问题描述】:

我正在使用电子邮件脚本发送 Nagios 警报。 命令是

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

我的电子邮件脚本文件说:

#!/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

我正在使用 AWS 电子邮件服务 CLI 发送邮件

但是我收到的邮件说:

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

【问题讨论】:

    标签: amazon-web-services monitoring nagios


    【解决方案1】:

    解决了...

    命令如下:

    define command{
          command_name  notify-host-by-email
          command_line  bash /etc/nagios/servers/email.sh /usr/local/aws/bin/aws from_email@abc.com to_email@abc.com "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 中的日志记录。它帮助很大。
    电子邮件.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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2019-03-21
      相关资源
      最近更新 更多