Zabbix - 郵件報警配置

1. 前言

上一次配置 zabbix 仍是 2.4 的版本,此次直接使用 zabbix 4 的版本,變化仍是挺大的,將 郵件告警配置記錄下來。html

發送郵件主要思路是:觸發器 -> 動做 -> 腳本發送郵件python

腳本放置位置,須要在 zabbix_server.conf 裏配置,好比個人zabbix 腳本路徑:shell

AlertScriptsPath=/opt/zabbix/alertscripts

 修改完成,記得重啓下 zabbix_server 服務。vim

mkdir -pv /opt/zabbix/alertscripts

而後就能夠在這個目錄下編寫腳本了,怎麼才能將郵件成功發送出去,能夠經過 python腳本,可是這裏懶得在使用python寫發送郵件,直接shell命令發送會簡單不少。bash

 

2. 實現shell 發送郵件

執行下面全部命令:服務器

wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar zxf sendEmail-v1.56.tar.gz -C /usr/src/
cd /usr/src/sendEmail-v1.56/
cp -a sendEmail /usr/local/bin/
yum install perl-Net-SSLeay perl-IO-Socket-SSL -y
wget http://www.cpan.org/src/5.0/perl-5.10.0.tar.gz
tar zxf perl-5.10.0.tar.gz
cd perl-5.10.0
./configure.gnu -des -Dprefix=/usr/local/perl
make 
make install
mv /usr/bin/perl /usr/bin/perl.bak
ln -s /usr/local/perl/bin/perl /usr/bin/perl

 

而後就可使用 sendMail 發送郵件了,測試以下:ide

/usr/local/bin/sendEmail -f 發送方郵箱地址 -t 接收方郵件地址 -s 發送方SMTP服務器 -u "test" -xu 發送方郵箱登陸用戶名 -xp 發送方郵件服務器登陸密碼 -m "test-1234567890" -l /var/log/sendmail.log

 

 

 發送成功,發送的日誌會記錄到 /var/log/sendmail.log 中,能夠自行查看,若是成功了,日誌以下:測試

… sendEmail[28067]: Email was sent successfully!

郵件測試成功,就能夠開始寫腳本:spa

[root@192.168.1.200 ~]#vim /opt/zabbix/alertscripts/sendmail.sh
#!/bin/bash
# Author:hukey
to=$1
subject=$2
body=$3
user='superman@126.com'
smtp_server='smtp.126.com'
password='123456'
/usr/local/bin/sendEmail  -f $user -t "$to" -s $smtp_server -u "$subject" -o message-content-type=html  -o message-charset=utf8 -xu $user -xp $password -m "$body" >> /var/log/sendmail.log

這裏解釋下 sendEmail 命令參數:.net

 

 

$1:收件人郵箱
$2:標題
$3:郵件的具體內容

這三個參數,zabbix 觸發郵件告警時,須要傳參的。

寫完腳本記得給權限,由於 zabbix 是經過 zabbix用戶來執行腳本的。

[root@192.168.1.200 ~]#chown -R zabbix:zabbix /opt/zabbix/alertscripts/sendmail.sh
[root@192.168.1.200 ~]#touch  /var/log/sendmail.log 
[root@192.168.1.200 ~]#chown -R zabbix:zabbix /var/log/sendmail.log

 

3. 頁面配置 zabbix 郵件告警

 

 

 

 

寫完點擊更新。

添加觸發器動做

 

 

 

動做:

 

 

 

操做:

 

 

 

默認標題:
{TRIGGER.STATUS}: {TRIGGER.NAME}
消息內容:
<table border="1"  bordercolor="black" cellspacing="0px" cellpadding="4px">
<tr >

<td>告警主機</td>
<td bgcolor="#FF3333">{HOSTNAME1}</td>
</tr>

<tr>
<td>告警時間</td>
<td>{EVENT.DATE} {EVENT.TIME}</td>
</tr>

<tr>
<td>告警等級</td>
<td>{TRIGGER.SEVERITY}</td>
</tr>

<tr>
<td>告警信息</td>
<td>{TRIGGER.NAME}</td>
</tr>

<tr>
<td>告警項目</td>
<td>{TRIGGER.KEY1}</td>
</tr>
<tr >
<td>問題詳情</td>
<td bgcolor="#FF3333">{ITEM.NAME}:&nbsp;{ITEM.VALUE}</td>
</tr>
<tr>
<td>當前狀態</td>
<td>{TRIGGER.STATUS}:&nbsp;{ITEM.VALUE1}</td>
</tr>
<tr>
<td>事件ID</td>
<td>{EVENT.ID}</td>
</tr>

</table>
默認標題 和 消息內容

 

消息內容是一個html,使用戶更清晰的查看告警郵件。

 

 

恢復操做:

 

 

 這部分和 操做 相似。

告警郵件 主機 和 問題詳情 是紅色  恢復郵件 主機 和問題詳情 是綠色

 

編寫完畢,點擊下面的更新。接下來就須要給 superman 這個zabbix 用戶添加我的郵箱了。

 

 

 

到這裏,zabbix 4 郵件告警就完成了。 能夠嘗試 關閉 被監控主機的 zabbix_agent 服務,等待郵件,以下:

 

告警郵件:

 

 

 

告警恢復郵件:

 

 

 

參考連接:

http://www.javashuo.com/article/p-tvtosnvo-ko.html

相關文章
相關標籤/搜索