天天看點

6、Zabbix郵件告警

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>"&lt;"</code><code>+mail_user+</code><code>"&gt;"</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,如需轉載請自行聯系原作者