上一次配置 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
執行下面全部命令:服務器
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
寫完點擊更新。
添加觸發器動做
動做:
操做:
默認標題: {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}: {ITEM.VALUE}</td> </tr> <tr> <td>當前狀態</td> <td>{TRIGGER.STATUS}: {ITEM.VALUE1}</td> </tr> <tr> <td>事件ID</td> <td>{EVENT.ID}</td> </tr> </table>
消息內容是一個html,使用戶更清晰的查看告警郵件。
恢復操做:
這部分和 操做 相似。
告警郵件 主機 和 問題詳情 是紅色 恢復郵件 主機 和問題詳情 是綠色
編寫完畢,點擊下面的更新。接下來就須要給 superman 這個zabbix 用戶添加我的郵箱了。
到這裏,zabbix 4 郵件告警就完成了。 能夠嘗試 關閉 被監控主機的 zabbix_agent 服務,等待郵件,以下:
告警郵件:
告警恢復郵件:
參考連接: