1. 程式人生 > >zabbix 郵件告警

zabbix 郵件告警

環境

  • CentOS7
  • sendEmail 1.56

部署 sendEmail

  • 安裝 sendEmail
    curl -O http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
    tar zxf sendEmail-v1.56.tar.gz && cp sendEmail-v1.56/sendEmail /usr/local/bin/
    
  • 檢視 zabbix_server.conf 找到告警指令碼存放目錄,即 AlertScriptsPath,默該目錄已存在
  • 在該目錄下建立 sendemail.sh,內容如下:
    #!/bin/bash
    
    recipients="${1//;/ }"
    subject="$2"
    message="$3"
    
    for recipient in $recipients; do
        /usr/local/bin/sendEmail \
            -f <發件人郵箱> \
            -t $recipient \
            -s <發件人郵箱的伺服器> \
            -o tls=no \
            -o message-charset=utf8 \
            -xu <發件人郵箱> \
            -xp <發見人郵箱的密碼> \
            -u "$subject" \
            -m "$message" \
            -l /var/log/sendEmail.log &
    done
    wait
    
  • 測試,如果正常收到郵件,則表示指令碼正常
    ./sendemail.sh [email protected];[email protected];[email protected] test_subject test_content
    

配置 zabbix

  • 登陸 zabbix web,點選“報警媒介型別”-“建立媒體型別”,開啟“報警媒介型別”視窗,配置如下
    • 名稱: 指令碼發郵件報警
    • 型別: 指令碼
    • 指令碼名稱: sendemail.sh #注意這裡的名稱與上一步建立指令碼名稱一致
    • 指令碼引數:
      • {ALERT.SENDTO}
      • {ALERT.SUBJECT}
      • {ALERT.MESSAGE}
    • 已啟用: 啟用
  • 點選“新增”完成指令碼媒介配置
  • 點選“管理”-“使用者”-“admin”-“報警媒介”-“新增”,開啟“報警媒介”視窗,配置如下
    • 型別: 指令碼發郵件報警
    • 收件人: 一個或多個收件人email,用空格或分號分隔
  • 點選“新增”完成該報警媒介配置
  • 點選“配置”-“動作”-“Report problems to Zabbix administrators”-“操作”,自定義報警資訊

測試

  • 觸發器被觸發後,收件人郵箱收到告