溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

zabbix郵件告警和釘釘告警配置

發(fā)布時間:2020-07-20 19:34:41 來源:網絡 閱讀:1759 作者:羊草 欄目:系統(tǒng)運維

smtp郵件告警

zabbix默認自帶郵件告警,但是很不好用。
一般我們使用smtp告警郵件,配置告警郵件腳本,發(fā)送到smtp郵箱服務器進行轉發(fā),然后發(fā)送到告警用戶的郵箱中,完成郵件告警,如阿里郵箱,騰訊郵箱等。
前提zabbix能夠訪問外網,同時stmp郵箱已經配置完整
使用python腳本作為郵件。zabbix的告警腳本目錄默認在/usr/lib/zabbix/alertscripts/路徑下

#!/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.mxhichina.com'    #smtp郵件服務器地址
    mail_user = 'alert.xxxx@chucloud.com.cn'  #smtp告警郵箱賬戶
    mail_pass = 'xxxxxxxxx'                            # smtp告警郵箱密碼
    #以上內容根據(jù)你的實際情況進行修改
    msg = MIMEText(content,'plain','utf-8')
    msg['Subject'] = Header(subject, 'utf-8').encode()
    msg['From'] = formatAddr('zabbix監(jiān)控 <%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])
#例:./sendmail_zabbix.py  yangchao@chucloud.com.cn 測試 測試

腳本思路:
1、使用smtp模塊,使用方法參考官方模塊手冊
2、構建send_mail函數(shù),使用三個參數(shù),分別指定為郵件發(fā)送人,標題,內容
3、send_mail函數(shù)定義了smtp郵箱的賬戶密碼信息
3、使用sys模塊的os方法,傳遞參數(shù)進行測試

保存腳本名稱為sendmail_zabbix.py

在zabbix“管理-報警媒介類型”中,創(chuàng)建一個告警郵件腳本,名稱就是sendmial_zabbix.py
zabbix郵件告警和釘釘告警配置
詳細按照如下配置
zabbix郵件告警和釘釘告警配置
然后配置動作
zabbix郵件告警和釘釘告警配置
動作信息按照如下配置
zabbix郵件告警和釘釘告警配置

zabbix郵件告警和釘釘告警配置

zabbix郵件告警和釘釘告警配置

具體的信息格式如下,可以自定義

告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態(tài):{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

然后對需要接收郵件告警的zabbix用戶分配報警媒介
zabbix郵件告警和釘釘告警配置

然后就可以每天半夜收到郵件告警了
zabbix郵件告警和釘釘告警配置

還睡覺?,起來干活!

配置釘釘告警

郵件告警最大的問題就是郵件太多,不好及時判斷
最好的方法就是釘釘告警

首先你得有釘釘
其次你得有配置一個機器人
詳細的釘釘配置機器人的辦法可以詢問百度或者看
https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
這里是我添加的機器人,重點是webhook,每個機器人唯一
zabbix郵件告警和釘釘告警配置

這里還是使用python腳本,保存在usr/lib/zabbix/alertscripts/路徑下

#!/usr/bin/python
# -*- coding: utf-8 -*-
#zabbix上使用釘釘告警機器人,調用api腳本
import requests
import json
import sys
import os

headers = {'Content-Type': 'application/json;charset=utf-8'}
#定義json http頭部信息
api_url = "https://oapi.dingtalk.com/robot/send?access_token=b5924a81e21921256eb22154b7614512a2ca6e4815bda7de2fed0b59bf03cf89"
#這里的url是釘釘機器人的api url

def msg(text):                                   #定義函數(shù)msg,參數(shù)為txt
    json_text= {                                 #定義json_text字典內容
     "msgtype": "text",
        "text": {
            "content": text
        },
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content  #將字典信息序列化為json格式發(fā)送

if __name__ == '__main__':                    #主函數(shù)
    text = sys.argv[1]                        #傳入zabbix定義動作參數(shù),已經在zabbix告警動作中配置
    msg(text)                                 #調用msg (text)函數(shù)

保存名稱為dingding.py。腳本完成了

首先再zabbix用戶中,創(chuàng)建一個用戶,該用戶作為釘釘機器人消息發(fā)送使用
zabbix郵件告警和釘釘告警配置

然后再報警媒介類型創(chuàng)建腳本
zabbix郵件告警和釘釘告警配置
按照如下配置
zabbix郵件告警和釘釘告警配置
參數(shù)格式為

{ALERT.MESSAGE}

然后再配置動作,定義發(fā)送的告警方式
zabbix郵件告警和釘釘告警配置
詳細配置如下
zabbix郵件告警和釘釘告警配置
定義告警級別
zabbix郵件告警和釘釘告警配置
定義操作
zabbix郵件告警和釘釘告警配置

信息內容推薦按照如下配置

告警主機:{HOST.NAME}
告警地址:{HOST.IP}
監(jiān)控項目:{ITEM.NAME}
監(jiān)控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
當前狀態(tài):{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}

好了,現(xiàn)在就可以看到釘釘告警了
zabbix郵件告警和釘釘告警配置

每天沒事釘釘催你干活

真TM是老板爽我就爽,老板不爽我下崗

有時候,我也沒事調下老板
zabbix郵件告警和釘釘告警配置

這不就是AI嘛~

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI