天天看點

Zabbix配置郵件報警

Zabbix是一個強大的監控系統,但真正的目的是可以在出現故障時能及時的通知我們,是以配置報警功能就會非常重要。報警的方式有郵件、企業微信、釘釘、短信等,使用較多的還是郵件報警。這節針對郵件報警進行配置。使用mutt調用msmtp用戶端進行郵件報警。

1. 安裝msmtp用戶端

(1) 下載下傳msmtp用戶端

    wget https://marlam.de/msmtp/releases/msmtp-1.6.8.tar.xz

(2) 解壓msmtp軟體

    tar -xvJf msmtp-1.6.8.tar.xz

(3) 進入解壓的軟體包

    cd msmtp-1.6.8

(4) configure安裝

    ./configure --prefix=/usr/local/msmtp

    make && make install

(5) 建立一個etc目錄

    mkdir /usr/local/msmtp/etc

(6) 建立一個配置檔案

    touch /usr/local/msmtp/etc/msmtprc

(7) 在/usr/local/msmtp/etc/msmtprc中寫入如下内容,将<xxx>替換為提示的正常參數:

defaults

account <郵件顯示名稱,例如Zabbix報警>

host <郵件伺服器位址>

domain <域名位址,例如:qq.com>

from <發件人位址>

auth login

user <郵箱登陸賬号>

password <郵箱登陸密碼>

account default:<郵件顯示名稱,同上>

logfile /var/log/maillog

儲存退出

2. 使用mutt調用msmtp發送郵件

 mutt預設會安裝,如果沒有安裝請使用 yum -y install mutt.x86_64 來進行安裝

(1) 修改mutt的配置檔案/etc/Muttrc,一定要注意這裡的Muttrc首字母是大寫的M

set from="發件人的郵件位址"      # 發送郵件位址

set sendmail="/usr/local/msmtp/bin/msmtp"      # msmtp運作程式的目錄

set use_from=yes      # 開啟發送消息時生成From:标題字段

set realname="Zabbix告警"      # 預設顯示發件人名稱

set editor="vi"      #設定預設使用哪種編輯器

(2) 測試一下mutt是否有效,格式:echo "郵件内容" | mutt -s "主題" 收件人郵箱位址

echo "測試測試" | mutt -s "測試郵件" [email protected]

3. 建立郵件報警腳本

(1) 進入Zabbix源碼安裝預設腳本存放路徑,腳本檔案必須放在這個位置,Zabbix才找的到。若是RPM包可檢視/etc/zabbix/zabbix_server.conf配置檔案,RPM預設腳本存放路徑為/usr/lib/zabbix/alertscripts

    cd /usr/local/zabbix/share/zabbix/alertscripts

(2) 建立vim email.sh報警腳本并添加以下内容

#!/bin/bash

echo "$3" | mutt -s "$2" $1        # $3表示郵件内容、$2表示郵件标題、$1表示收件人

(3) 将腳本檔案加入執行權限,并更改屬主和屬組

    chmod a+x email.sh

    chown zabbix:zabbix email.sh

(4) 修改msmtprc的預設權限

    chmod 600 /usr/local/msmtp/etc/msmtprc

    chown zabbix:zabbix msmtprc

4. 設定Zabbix郵件報警

(1) 建立Meida types

Administration ——> Meida types ——> Create media type

這裡選擇建立一個新的報警類型,Zabbix自帶的類型我們不去管它或者選擇禁用也都是可以的

Zabbix配置郵件報警

        在Media types頁籤中有兩個地方需要注意。

        第一個是Type(類型),因為是調用腳本來發送郵件,所有類型這裡我們要選擇Script(腳本)

        第二個是參數,對應位置按順序填寫三個腳本參數:

        {ALERT.SENDTO}           代表收件人位址

        {ALERT.SUBJECT}          代表郵件主題

        {ALERT.MESSAGE}          代表郵件内容

Zabbix配置郵件報警

(2) 建立Actions

    Configuration ——> Actions ——> Create actions

    選擇建立一個動作

Zabbix配置郵件報警
Zabbix配置郵件報警

操作細節部分,如果是發送單個使用者可以在<發送到使用者>處添加使用者。若是多個使用者,建議使用<發送到使用者群組>。<僅送到>這裡選擇之前建立的腳本報警類型

注意注意,最後千萬不要忘記點選更新,不然是不會儲存的

Zabbix配置郵件報警

報警内容分為告警内容和恢複内容,可參考文章的最後給出的示例。

Zabbix配置郵件報警

(3) 配置Users

Adimistration ——> Users ——> 選擇需要收信的使用者

最後,進入要接收郵件的使用者設定中,可配置報警的類型、接收報警的郵件位址、什麼時間端接收報警郵件、接收那種級别的報警郵件

Zabbix配置郵件報警

至此,Zabbix配置郵件報警任務完成,報警的郵件内容可參考下面格式

告警主題:

[{TRIGGER.SEVERITY}]伺服器:{HOSTNAME1}發生:{TRIGGER.NAME}故障!

告警内容:

位址:{HOST.IP}

告警主機: {HOSTNAME1}

主機分組: {TRIGGER.HOSTGROUP.NAME}

告警時間: {EVENT.DATE} {EVENT.TIME}

告警等級: {TRIGGER.SEVERITY}

告警資訊: {TRIGGER.NAME}

告警項目: {TRIGGER.KEY1}

問題詳情: {ITEM.NAME}:{ITEM.VALUE}

目前狀态: {TRIGGER.STATUS}

事件ID: {EVENT.ID}

恢複主題:

[{TRIGGER.SEVERITY}]伺服器:{HOSTNAME1}{TRIGGER.NAME}已恢複!

恢複内容: