天天看點

zabbix郵件告警

    以前已經做出這個實驗了,沒有做記錄現線上上環境要使用郵件告警,再次使用還是有好多地方沒有很快定位到問題所在。是以還是決定要寫這篇部落格。

zabbix能通過郵件或者其他的通信方式告知server problem 或者ok狀态的變化。

一、整體思路

items->trigger->actions->scripts->send email

當監控項的值觸發了建立的觸發器,觸發器就會調用動作将(标題,狀況)等資訊調用配置好的scripts去發送郵件。

接下來思路是先在zabbix server配置好能發送郵件的工具。

二、配置郵件發送工具

1、安裝mailx

yum install mailx

2、配置發送郵件使用者

vim /etc/mail.rc

跳到最後一行添加

#能用郵件的使用者例如[email protected]

set [email protected] 

#該郵箱的smtp伺服器

smtp=smtp.sendcloud.net

#郵件的使用者名

set [email protected] 

#郵箱密碼(sendcloud工具),163或者qq郵箱都是該使用者郵箱的授權碼

smtp-auth-password=*********

set smtp-auth=login

儲存退出

3、測試

echo “test”|mail -s “test”[email protected]

此時應該是收到郵件了,這就是是是用特定使用者發送郵件的配置步驟。

三、配置zabbix server scripts

1、配置zabbix server

在二中配置郵件發送工具,接下來要讓zabbix server能調用腳本發送郵件

vim /etc/zabbix/zabbix_server.conf

将此行注釋去掉。

AlertScriptsPath=/usr/lib/zabbix/alertscripts/

service zabbix-server restart

2、編寫腳本

cd /usr/lib/zabbix/alertscripts/

安裝這個指令,否則發送郵件内容裡會有個附件.bin看不到真正的郵件内容。由于windows和linux的檔案格式不同吧。

yum install dos2unix 

vim scripts.sh

#!/bin/bash

#export LANG=zh_CN.UTF-8

to=$1

subject=$2

body=$3

FILE=/tmp/mailtmp.txt

echo "$3" >$FILE

dos2unix -k $FILE

/bin/mail -s "$2" $1 < $FILE

儲存退出。

生成/tmp/mailtmp.txt

修改權限

chown zabbix:zabbix zabbix

修改腳本權限和屬主,屬組,否則zabbix沒有權限調用腳本

chmod +x scripts

chown zabbix:zabbix scripts.sh

./scripts [email protected] test test

同樣,沒有意外也會收到郵件,此時zabbix server 已經能夠調用腳本發送郵件了。

接下來我們去zabbix server web界面 耍一耍,浪一浪。。。。

四、配置媒介方式

點選administration->Media types->create media type

zabbix郵件告警

1、就是剛寫的腳本的名字

2、這是個比較大的坑,在zabbix 2.x沒有這一項,這是給腳本傳遞參數,如果沒有配置2這一項會出現顯示已發送成功但是未成功收到郵件。

五、配置使用者資訊

這裡配置的主要是要使用zabbix的哪個使用者作為告警對象。配置該使用者的media 填寫要接收郵件的address,和media type

zabbix郵件告警

1、是在四中定義的media type

2、是接收郵件的email address

六、配置actions

點選 create action

(1)action

名字随意喽

default subject 是發送郵件的主題

伺服器:{HOSTNAME1}:{TRIGGER.NAME}

default message 是腳本裡的body也就是内容

告警主機:{HOSTNAME1}

告警資訊: {TRIGGER.NAME}

目前狀态:{TRIGGER.STATUS}

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

告警等級:{TRIGGER.SEVERITY}

告警項目:{TRIGGER.KEY1}

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

recoerage message 是當問題恢複時發送的

和上邊的一樣隻是trigger status 變了。

(2)Condions (條件)

zabbix郵件告警

紅框那可以選擇條件(例如當trigger裡有包含此處的trigger名字就會發生這個動作)

Operations裡添加收告警的使用者組和使用者。

step那一樣預設就可以。如果限定前幾次和後幾次發給不通級别的人就不要使用預設的了。預設的意思是當告警觸發郵件時就發一次而已。這看需求。。。

儲存。

七、測試

萬事俱備,隻欠東風。可以找一台機器關掉zabbix agent