zabbix 3.x郵件告警配置

zabbix可以配置多種形式的告警,包括郵件,SMS等。可以通過系統默認的SMTP郵件告警,同時也可以通過額外的腳本進行或者第三方告警平臺實現

一、SMTP郵件告警

1.媒介類型

媒介是用於在Zabbix中發送通知和警報的傳送通道。
您可以配置多種媒介類型:
E-mail
SMS
Jabber
Ez Texting
自定義警報提示
注意:本次使用E-mail告警的方式,其他的媒介不做配置,建議禁用
zabbix 3.x郵件告警配置

2.E-mail配置

概述
要將電子郵件配置爲郵件的傳遞通道,您需要將電子郵件配置爲媒介類型,併爲用戶分配特定的地址。
配置
要將電子郵件配置爲媒介類型:
在 管理 - >媒體類型中設置
點擊創建媒介類型 (或者點擊預定義媒介類型的列表中的E-mail).br/>![](http://i2.51cto.com/images/blog/201712/05/ede56d76ff189ad1bccf4859bd34e6f3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
說明:
1、本次採用SMTP郵件協議
2、採用騰訊企業公共郵箱,端口採用465,告警郵箱地址爲[email protected]
3、需要輸入告警郵箱的賬戶,密碼,採用認證方式進行
4、SMTP HELO需要輸入騰訊企業郵箱的域名smtp.exmail.qq.com
5、安全連接採用SSL/TLS

詳細的官方說明如下所示:

媒介類型屬性:
zabbix 3.x郵件告警配置

3、動作

只有在事件與定義的條件匹配的情況下才執行操作。 配置action時設置條件.
可以爲基於觸發的動作設置以下條件:
詳細的動作說明請參考官方文檔說明:https://www.zabbix.com/documentation/3.4/zh/manual/config/notifications/action/conditions
本次採用簡單的動作配置,如下所示:
zabbix 3.x郵件告警配置

詳細配置如下:
zabbix 3.x郵件告警配置
說明:
1、條件A 維護狀態非在維護,意思是說只有在非維護的情況下發送告警郵件
2、條件B,觸發器竟是度>=告警,意思是隻有警告的級別處於警告或這警告以上的使用,才觸發郵件告警

3.1操作

您可以爲所有事件定義以下操作:
發送信息
執行遠程命令 (包括 IPMI)
對於發現事件,還有其他操作可用:
添加主機
刪除主機
啓用主機
禁用主機
添加到羣組
從組中刪除
鏈接到模板
取消與模板的鏈接
設置主機庫存模式
本次操作只配置發送消息。如下所示
zabbix 3.x郵件告警配置
說明:
1、操作細節,即郵件告警信息發送到指定用戶郵箱
2、默認信息,由於默認的信息不夠全面,建議按照如下配置

故障{TRIGGER.STATUS},主機:{HOSTNAME1}發生: {TRIGGER.NAME}故障!
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

3.2恢復操作

恢復操作允許在問題解決時通知您。
恢復操作支持消息和遠程命令。恢復操作不支持升級 - 所有操作都分配到一個步驟。
恢復操作的一些用例如下:
通知所有通知有關問題的用戶
選擇“發送恢復消息”作爲操作類型
恢復時有多個操作:發送通知並執行遠程命令
添加發送消息和執行命令的操作類型
在外部幫助臺/票務系統中打開機票,並在問題解決時將其關閉
創建一個與幫助臺系統通信的外部腳本
創建一個操作,該操作具有執行此腳本的操作,從而打開一張票據
恢復操作,使用其他參數執行此腳本並關閉故障單
使用{EVENT.ID}宏來引用原始問題
zabbix 3.x郵件告警配置
同樣的,原有默認信息不夠全面,建議按照如下進行調整

恢復{TRIGGER.STATUS}, 主機:{HOSTNAME1}: {TRIGGER.NAME}已恢復!
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

4.配置用戶郵箱

需要在ZABBIX上配置用戶和用戶郵箱,這樣一旦發生警報,zabbix可以發送郵件指定的聯繫人
zabbix 3.x郵件告警配置

zabbix 3.x郵件告警配置

5.效果驗證

一旦發生警報,自動發送郵件
zabbix 3.x郵件告警配置

zabbix 3.x郵件告警配置

二、調用第三方告警平臺

這裏推薦使用onealert,設置比較簡單,但是免費版每月郵件上限爲300.

官網註冊賬號

配置中添加應用
zabbix 3.x郵件告警配置

創建獲取key

zabbix 3.x郵件告警配置

系統會自動生成一鍵安裝腳本

zabbix 3.x郵件告警配置
登錄到zabbix server服務器,安裝腳本運行就可以了。

三、通過腳本實現告警

在zabbix配置文件中查找腳本目錄

[root@zabbix-server zabbix]# grep 'AlertScriptsPath' zabbix_server.conf
###Option: AlertScriptsPath
 AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts

在/usr/lib/zabbix/alertscripts目錄下創建發郵件腳本sendmail_zabbix.py

[root@zabbix-server alertscripts]# cat sendmail_zabbix.py
#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.utils import parseaddr, formataddr
import sys
def formatAddr(s):
    name, addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))
def send_mail(to_list,subject,content):
    mail_host = 'smtp.exmail.qq.com'
    mail_user = 'xxxxxxxxxxx'
    mail_pass = 'xxxxxxxxxxx'
    #以上內容根據你的實際情況進行修改
    msg = MIMEText(content,'plain','utf-8')
    msg['Subject'] = Header(subject, 'utf-8').encode()
    msg['From'] = formatAddr('zabbix監控 <%s>' % mail_user).encode()
    msg['to'] = to_list
    try:
        s = smtplib.SMTP()
        s.connect(mail_host)
        s.login(mail_user,mail_pass)
        s.sendmail(mail_user,to_list,msg.as_string())
        s.close()
        return True
    except Exception,e:
        print str(e)
        return False
if __name__ == "__main__":
    send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

配置腳本權限

chmod +x sendmail_zabbix.py
chown zabbix.zabbix sendmail_zabbix.py

創建報警媒介

重點是添加三個參數
{ALERT.SENDTO}收件人地址
{ALERT.SUBJECT}主題
{ALERT.MESSAGE}詳細內容
zabbix 3.x郵件告警配置

給用戶配置報警媒介

zabbix 3.x郵件告警配置

創建動作

這裏注意添加觸發器示警度
zabbix 3.x郵件告警配置

設置操作和恢復操作

zabbix 3.x郵件告警配置

優化報警內容


配置告警內容
故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

配置恢復內容

恢復{TRIGGER.STATUS}, 服務器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章