Nagios開發郵件警示程式

來源:互聯網
上載者:User

標籤:郵件   nagios   python   警示   

    當前公司nagios已經正常使用,也能警示,但是郵件警示採用的是sendmail,寄件者總是[email protected],收到後經常被加入到郵件中的垃圾箱,並且有些郵箱伺服器有反垃圾檢測,導致使用者接收不到郵件。為解決這個問題,決定自己寫一個郵件發送程式。過程如下:


1、開發發送郵件指令碼
[[email protected] python]# cat sendmail.py#!/usr/bin/python# -*- coding:utf-8 -*-import smtplibimport sysfrom email.mime.text import MIMETextimport time#擷取目前時間current_time=time.strftime(‘%Y-%m-%d %H:%M‘,time.localtime(time.time()))#擷取使用者名稱密碼登陸遠程再也箱伺服器mail_host = ‘smtp.exmail.qq.com‘mail_user = ‘[email protected]‘mail_pwd = ‘12345‘#此處密碼為假def send_email( content, mailto, get_sub ):    #擷取郵件內容,後面是為了支援中文    msg = MIMEText( content,_subtype=‘plain‘,_charset=‘gb2312‘)    #擷取收件者,與標題    msg[‘From‘] = mail_user    msg[‘Subject‘] =get_sub    msg[‘To‘] = ",".join( mailto )                                 try:    #串連上遠程郵件發送伺服器        s = smtplib.SMTP_SSL( mail_host, 465 )             #登陸        s.login(mail_user, mail_pwd )        #發送郵件        s.sendmail(mail_user, mailto, msg.as_string())        s.close()    except Exception as e:        print ‘Exception: ‘, e#傳參第一個為郵件標題title=sys.argv[1]#傳參第二個為郵件內容,此處定義內容格式cont="""----------------------------------| 雲巢營運管理平台----------------------------------| 警示資訊:  %s----------------------------------| 發送時間: %s----------------------------------""" %(sys.argv[2],current_time)#指定收件者to_list = [         #‘[email protected]‘,         #‘[email protected]‘,         #‘[email protected]‘,         ‘[email protected]‘,        ]#執行上述類send_email( cont, to_list, title)



2、定義Nagios執行發送郵件的命令

編輯nagios定義命令的檔案,登出掉原有的發送郵件命令。新增如下:

#vi /usr/local/nagios/etc/objects/commands.cfg

define command{

      command_name   notify-host-by-email

      command_line    /usr/bin/python/python/sendmail.py "$HOSTNAME$_$HOSTADDRESS$ $NOTIFICATIONTYPE$, $HOSTNAME$ is $HOSTSTATE$"  "$HOSTNAME$ $HOSTADDRESS$ is$HOSTSTATE$,$HOSTOUTPUT$."

      }


define command{

      command_name   notify-service-by-email

      command_line    /usr/bin/python/python/sendmail.py "$HOSTNAME$_$HOSTADDRESS$ service is $SERVICESTATE$" "$HOSTALIAS$_$HOSTADDRESS$state is  $SERVICESTATE$,$SERVICEOUTPUT$. "

#執行這個程式,把主機名稱警示資訊傳參進去就可。

      }


重啟nagios

#/etc/init.d/nagios chekconfig

#/etc/init.d/nagios restart


3、郵件警示現象

Down了nagios監控中的一台192.167.6.136,警示資訊如下:

註:模板內容可自行更改。


650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/26/44/wKiom1NrFouitEGNAAINglHSfec659.jpg" title="L~T%04A))2SQ)`28[P%905Y.jpg " alt="wKiom1NrFouitEGNAAINglHSfec659.jpg" />



本文出自 “此心安處是吾鄉” 部落格,轉載請與作者聯絡!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.