zabbix郵件報警之完整總結

雖然網上有很多關於zabbix報警配置的文章,但是大多都是轉載,並且內容並不詳盡。本人根據zabbix的現網部署經驗,做了如下總結整理,並儘量做到內容細緻全面,能讓新手快速配置成功。


首先web端的配置順序如下:

創建用戶媒介-->創建用戶組和用戶-->針對trigger(觸發器)添加報警動作,設置郵件發送用戶及媒介

 

1. 創建用戶媒介

    創建用戶媒介-->創建用戶組和用戶-->Media types-->Createmedia type

wKiom1PXNP2TQ9a9AAH5eS9Lfrc087.jpg

    Mediatype設置如下, Name項自定義(創建用戶時會用到這個名字),我們使用腳本來發郵件,所以Type項請選擇Script,Script項則是你zabbix server上的發送郵件的腳本名字(注:如腳本名字是snedmail.sh,那此項就填sendmail,後綴不要)。

wKioL1PXOVGB6oKrAALm9DwGRjQ280.jpg

2.創建用戶組

    在菜單欄選擇Administration-->User-->Createusaer group

wKioL1PXObHCWBstAAIDQjyxC4g331.jpg

    在User groups標籤下填入用戶組名字,勾選Enabled。

wKiom1PXOVrCfoT-AAGWUBm7YAc647.jpg

    需要注意的是:在Permissions標籤下,需要把用戶組可以訪問的主機添加進Read-write或Read only下(如不添加對應主機,那麼報警郵件將無法正確發送出去)。另外,用戶的權限是隨着所屬用戶組的。

wKiom1PXOSqjdEYcAALdofeklPA203.jpg

3.創建用戶

    在Administration-->User下,點擊第二列Users選項,進入用戶組所在用戶列表,然後再點擊頁面右上角Create user選項來創建用戶。

wKiom1PXOgTxR4luAAL0MqGYPDI686.jpg

    在User標籤下,填入別名,用戶名,密碼,所屬組選擇,Auto-login勾選上,其它默認即可。

wKiom1PXOczjJ-QVAAMbaFHCUOA529.jpg

    再到Media標籤下,點擊Add添加用戶及該用戶的報警方式,然後Type項選擇你所創建的郵件報警名字(Media Type),在Send to後填入用戶的報警郵箱,其他默認即可。

wKioL1PXO-bSho9gAAMin1-2peE691.jpg


wKiom1PXOs3DUTxDAADev_p1TS0368.jpg




4.針對觸發器添加報警動作

    以下以根目錄磁盤剩餘空間報警爲例:(下圖爲說明,無需操作)

下面這臺主機的根目錄磁盤剩餘空間的trigger名爲:Free disk space is less than 10%on volume /,主機名爲:CMCC-OTT-01 172.16.15.166


wKiom1PXPCOgTDDjAAOZz4lHIwk643.jpg


wKioL1PXPUmB7r0OAAszJO-uRR8561.jpg

下面是針對上面這個trigger設置郵件報警的action,在菜單欄選擇Configuration-->Action-->Createaction

wKiom1PXPXWxus7FAAIPixJ4LL4781.jpg

    在Action標籤下,Name項填入自定義名字,其他項用默認的即可。

wKiom1PXPUjxhLY6AAOwBvOxoCo200.jpg

    在conditions標籤下的New Condition項下選擇Trigger name,like,把要添加報警的trigger名填入後面的文本框中(如下圖):

wKiom1PXPa6RRRrdAANeIkP3DiE876.jpg

接下來添加另一個NewCondition,選擇Host,=,把主機名填入(如下圖):

wKiom1PXPdLjnlosAAQGgYCl_84573.jpg

    在Operations標籤下,點擊New創建郵件報警和報警延遲。

wKiom1PXPlbwKHilAAN0oQtkoNI731.jpg

    在打開的detail下,下圖標箭頭的地方需要注意修改:

1.To後面改成0表示,trigger出發後且一直未恢復,則會一直報警。

    2.Operationtype處選擇Send message。

    3.Sendto Users處選擇剛創建的用戶。

    4.Sendonly to選擇剛創建的Media type。

   

    配置完成後即可測試郵件報警功能是否成功。

 

附:

zabbix可以配合msmtp+mutt來發郵件(此方法可以指定外部發件郵箱來發送郵件),當然也可以使用其他方式發郵件,比如直接寫Python腳本或php腳本來發送郵件。

 

1.Msmtp的安裝及配置

    (1)下載源碼包並解壓安裝,步驟如下:

# yum –y install mutt             #yum安裝mutt
# wget http://garr.dl.sourceforge.net/project/msmtp/msmtp/1.4.31/msmtp-1.4.31.tar.bz2
# tar xf msmtp-1.4.31.tar.bz2# cd msmtp-1.4.31
# ./configure --prefix=/usr/local/msmtp# make && make install


(2)創建配置文件

# mkdir -p /usr/local/msmtp/etc
# vim /usr/local/msmtp/etc/msmtprc               #添加如下郵箱賬戶信息
   defaults
        logfile /usr/local/msmtp/msmtp.log         #日誌文件需手動創建
        account sihuazabbix
        host smtp.139.com
        from [email protected]
        auth login
        user [email protected]
        password ******
        account default:sihuazabbix


# vim /root/.msmtprc
   defaults
        logfile /usr/local/msmtp/msmtp.log
        account sihuazabbix
        host smtp.139.com
        from [email protected]
        auth login
        user [email protected]
        password ******
        account default:sihuazabbix

    

# vim /etc/Muttrc                                               #在文件末尾添加如下配置
        setfrom="[email protected]"
        setsendmail="/usr/local/msmtp/bin/msmtp"
        setuse_from=yes
        setrealname="[email protected]"
        seteditor="vi"
        setcopy=no      #設置是否將郵件消息複製到/root/sent,若設置爲可寫權限,則需要將/root/sent文件設置爲zabbix用戶可寫!


# vim /root/.muttrc
        setfrom="******@139.com"
        setsendmail="/usr/local/msmtp/bin/msmtp"
        setuse_from=yes
        setrealname="******@139.com"
        seteditor="vi"
        setcopy=no


    (3)手動發送測試郵件檢驗是否配置成功

# echo "Email" |mutt -s"test" [email protected]


 

2.配置zabbix郵件發送腳本

將AlertScriptsPath=${datadir}/zabbix/alertscripts行的註釋取消或改成其他路徑,編寫發送Email的腳本,郵件發送腳本內容如下即可:

wKioL1PXP-bTRrucAABMn6Uu78M836.jpg

註釋:腳本中有三個變量,$1,$2,$3,其中$1是收件地址,$2是郵件主題,$3是郵件內容。

 

最後對腳本添加執行權限:

# chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章