zabbix郵件告警

    之前已經作出這個實驗了,沒有作記錄如今線上環境要使用郵件告警,再次使用仍是有好多地方沒有很快定位到問題所在。因此仍是決定要寫這篇博客。
linux

zabbix能經過郵件或者其餘的通訊方式告知server problem 或者ok狀態的變化。web


1、總體思路vim

items->trigger->actions->scripts->send emailwindows

當監控項的值觸發了建立的觸發器,觸發器就會調用動做將(標題,情況)等信息調用配置好的scripts去發送郵件。bash

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


2、配置郵件發送工具ide


一、安裝mailx工具

yum install mailx測試


二、配置發送郵件用戶spa

vim /etc/mail.rc

跳到最後一行添加

#能用郵件的用戶例如xx@163.com

set from=xx@163.com 

#該郵箱的smtp服務器

smtp=smtp.sendcloud.net

#郵件的用戶名

set smtp-auth-user=xx@163.com 

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

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

set smtp-auth=login

保存退出


三、測試

echo 「test」|mail -s 「test」123424@qq.com

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


3、配置zabbix server scripts


一、配置zabbix server

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

vim /etc/zabbix/zabbix_server.conf

將此行註釋去掉。

AlertScriptsPath=/usr/lib/zabbix/alertscripts/

保存退出

service zabbix-server restart


二、編寫腳本

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 1245@qq.com test test

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

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


4、配置媒介方式


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

wKioL1h13UTAiGLrAABxfGWLCcU576.png-wh_50

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

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


5、配置用戶信息


這裏配置的主要是要使用zabbix的哪一個用戶做爲告警對象。配置該用戶的media 填寫要接收郵件的address,和media type

wKiom1h13hXQefhVAABCuNzedsA251.png-wh_50

一、是在四中定義的media type

二、是接收郵件的email address


6、配置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 (條件)


wKiom1h14MKhm-HlAABiYrr_hVw683.png-wh_50

紅框那能夠選擇條件(例如當trigger裏有包含此處的trigger名字就會發生這個動做)


Operations裏添加收告警的用戶組和用戶。

step那同樣默認就能夠。若是限定前幾回和後幾回發給不通級別的人就不要使用默認的了。默認的意思是當告警觸發郵件時就發一次而已。這看需求。。。

保存。


7、測試


萬事俱備,只欠東風。能夠找一臺機器關掉zabbix agent

能夠看dashboard 上的events 是否是有actions發生。若是status是sent說明已經發送成功。

相關文章
相關標籤/搜索