1、建立郵件告警的腳本,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<code>#!/usr/bin/env python</code>
<code>#coding:utf-8</code>
<code>import</code> <code>smtplib</code>
<code>from email.mime.text </code><code>import</code> <code>MIMEText</code>
<code>import</code> <code>sys</code>
<code>LOG_FILENAME=</code><code>"/var/log/email_python.log"</code>
<code>mail_host = </code><code>'smtp.qq.com'</code> <code>#定義smtp伺服器</code>
<code>mail_user = </code><code>'[email protected]'</code> <code>#發件人郵箱</code>
<code>mail_pass = </code><code>'xxxxx'</code> <code>#發件人郵箱密碼</code>
<code>mail_port = 465 </code><code>#smtp伺服器的端口号,不同的郵箱伺服器端口号不同</code>
<code>def send_mail(to_list,subject,content):</code>
<code> </code><code>me=</code><code>"Zabbix Monitor"</code><code>+</code><code>"<"</code><code>+mail_user+</code><code>">"</code> <code>#定義發件人顯示名稱為Zabbix Monitor</code>
<code> </code><code>msg=MIMEText(content,_subtype=</code><code>'plain'</code><code>,_charset=</code><code>'gb2312'</code><code>)</code>
<code> </code><code>msg[</code><code>'Subject'</code><code>]=subject </code><code>#定義郵件主題</code>
<code> </code><code>msg[</code><code>'From'</code><code>]=me </code><code>#發送方</code>
<code> </code><code>msg[</code><code>'to'</code><code>]=to_list </code><code>#接收方</code>
<code> </code><code>try:</code>
<code> </code><code>s=smtplib.SMTP_SSL() </code><code>#建立一個smtp對象 </code>
<code> </code><code>s.connect(mail_host,mail_port) </code><code>#通過connect方法連接配接smtp主機</code>
<code> </code><code>s.login(mail_user,mail_pass) </code><code>#郵箱賬戶登入認證</code>
<code> </code><code>s.sendmail(me,to_list,msg.as_string()) </code><code>#發送郵件</code>
<code> </code><code>s.close() </code><code>#斷開smtp連接配接</code>
<code> </code><code>return</code> <code>True</code>
<code> </code><code>except Exception,e:</code>
<code> </code><code>print str(e)</code>
<code> </code><code>return</code> <code>False</code>
<code>if</code> <code>__name__ == </code><code>"__main__"</code><code>:</code>
<code> </code><code>send_mail(sys.argv[1],sys.argv[2],sys.argv[3])</code>
2、腳本檔案路徑
先确認下zabbix_server.conf檔案中定義的告警腳本路徑
<code>#AlertScriptsPath=/usr/lib/zabbix/alertscripts</code>
<code>AlertScriptsPath=</code><code>/etc/zabbix/alertscripts</code>
然後将準備好的python腳本存放到該路徑下,并更改腳本檔案的權限和屬主屬組
#chown zabbix:zabbix mail.py
#chmod +x mail.py
注意:如果在zabbix_server.conf檔案中沒有設定Allow root=1,則表示zabbix是以zabbix使用者啟動而不是root,是以腳本的屬主屬組都應該設定為zabbix使用者。設定為root使用者啟動的配置如下。
<code>### Option: AllowRoot</code>
<code># Allow the server to run as 'root'. If disabled and the server is started by 'root', the server</code>
<code># will try to switch to user 'zabbix' instead. Has no effect if started under a regular user.</code>
<code># 0 - do not allow</code>
<code># 1 - allow</code>
<code>#</code>
<code># Mandatory: no</code>
<code># Default:</code>
<code>AllowRoot=1</code>
3、測試腳本檔案發送郵件是否成功,這一步很重要
# cd /usr/lib/zabbix/alertscripts
如果能收到郵件,表示腳本沒有問題。
4、建立Media types
<a href="http://s1.51cto.com/wyfs02/M01/82/9A/wKiom1dcyS_gPUzxAALbOWF1XqM926.png" target="_blank"></a>
5、添加郵件郵件接收使用者
6、建立Action
Action頁籤中隻要填一個Name,其餘預設
<a href="http://s1.51cto.com/wyfs02/M02/82/99/wKioL1dczB_xkUalAANHh3ECUtk600.png" target="_blank"></a>
Conditions頁籤中添加告警條件,将主機組加入進來。
注意添加主機組這裡如果你選擇了多個主機組,則表示屬于這多個組的主機才滿足告警條件。
如果條件選擇AND/OR 就可以避免這一問題
<a href="http://s2.51cto.com/wyfs02/M00/82/9E/wKiom1dc4fiQa56zAAJu8NGJY1Q201.png" target="_blank"></a>
建立Operations
到這裡配置完成了。
如果不使用預設的郵件告警内容,也可以自己定義:
<a href="http://s3.51cto.com/wyfs02/M02/85/87/wKioL1en3y6CrLeoAAGrWSpzOvY533.png-wh_500x0-wm_3-wmp_4-s_631192413.png" target="_blank"></a>
郵件告警内容
<a href="http://s2.51cto.com/wyfs02/M00/82/9E/wKiom1dc4kfAAW9nAAJh2r044r0643.png" target="_blank"></a>
本文轉自 曾哥最愛 51CTO部落格,原文連結:http://blog.51cto.com/zengestudy/1788119,如需轉載請自行聯系原作者