zabbix配置自動發現,故障郵件告警

 

對網段內的主機進行自動發現,自動加入主機組,自定加入templatepython

 

建立動做時,類型這裏選擇discoveryjson

而後將發現的主機加入host group和template:bash

動做針對的是discovery這個類型的:服務器

上面定義的發現的規則,而後定義發現後的動做:ui

操做作完以後,而後將agent端的zabbix-agent服務進行開啓:3d

# systemctl start zabbix-agent

 很少久就能夠看見host:server

 配置媒介:blog

上面三個腳本的參數必須帶上:事件

{ALERT.SENDTO}:收件人ip

{ALERT.SUBJECT}:主題

{ALERT.MESSAGE}:告警正文

這裏能夠稍做修改

配置完以後出現以下:

將配置完的媒介與用戶關聯起來,能夠建立新用戶,能夠選擇已有用戶,這裏選擇admin:

將媒介與之關聯,並配置腳本的第一個參數:收件人

而後配置用戶組:

選擇zabbix administrators點進去配置permission:

待上面基礎配置完成後,如今須要配置action:

因爲是執行腳本因此是發送消息類型,關聯到用戶以及用戶組

主題:故障{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}

郵件正文:郵件腳本的第三個參數

配置完全部以上後,手動將一個zabbix-agent服務進行stop,而後進行reports下面的action log進行查看:

在上面的failed紅字的感嘆號能夠看出action的動做是否成功,上面是因爲沒有指定user,因而修改:

這個郵件發送不成功看緣由是腳本沒有權限,因而給腳本加上權限,並重啓zabbix-server服務:

而後發現上面的一次已經觸發action成功,能夠在郵件發現已發送

因而簡單的郵件告警發送成功

 附上郵件告警代碼:

[root@zabbix-server alertscripts]# cat /root/zabbix_python_demo/send_mail.py 
import smtplib
from email.mime.text import MIMEText
import sys

from_mail = "json_hc@163.com"
mail_passwd = "********"


def send_mail(to_mail, subject, content):
    msg = MIMEText(content, 'plain', 'utf-8')
    msg['Subject'] = subject
    msg['From'] = from_mail
    msg['To'] = to_mail
    try:
        s = smtplib.SMTP()
        s.connect('smtp.163.com')
        s.login(from_mail, mail_passwd)
        s.sendmail(from_mail, to_mail, msg.as_string())
        print("OK")
    except Exception as e:
        print(e)
    finally:
        s.quit()


if __name__ == '__main__':
    send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
相關文章
相關標籤/搜索