nagios邮件报警脚本-创新互联

一.python邮件发送脚本

创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为西峰企业提供专业的成都网站建设、网站设计西峰网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

1.linux服务器发送邮件,许多人会直接用mail命令发送,虽然可以发送成功,但是许多都会被互联网邮箱当初垃圾邮件处理

2.mutt和msmtp相关于linux下的邮件客户端,和windows上的outlook,foxmail之类有点类似

3.安装mutt和msmtp虽然可以,但是通过python脚本也可以代替,如下

ubuntu@ubuntu:/etc/nagios3/scripts$ cat sendmail

#!/usr/bin/python

import smtplib

import string

import sys

import getopt

def usage():

 print """sendmail is a send mail Plugins

 Usage:

 sendmail [-h|--help][-t|--to][-s|--subject][-m|--message]

 Options:

     --help|-h)

        print sendmail help.

     --to|-t)

        Sets sendmail to email.

     --subject|-s)

         Sets the mail subject.

     --message|-m)

         Sets the mail body

  Example:

     only one to email  user

     ./sendmail -t 'eric@nginxs.com' -s 'hello eric' -m 'hello eric,this is sendmail test!

     many to email  user

     ./sendmail -t 'eric@nginxs.com,yangzi@nginxs.com,zhangsan@nginxs.com' -s 'hello eric' -m 'hello eric,this is sendmail test!"""

 sys.exit(3)

try:

 options,args = getopt.getopt(sys.argv[1:],"ht:s:m:","--help --to= --subject= --message=")

except getopt.GetoptError:

 usage()

for name,value in options:

  if name in ("-h","--help"):

   usage()

  if name in ("-t","--to"):

# accept message user

   TO = value

   TO = TO.split(",")

  if name in ("-s","--title"):

   SUBJECT = value

  if name in ("-m","--message"):

   MESSAGE = value

   MESSAGE = MESSAGE.split('\\n')

   MESSAGE = '\n'.join(MESSAGE)

#smtp HOST

HOST = "smtp.126.com"    (这个是126的smtp服务域名)

#smtp port

PORT = "25"         (126邮箱smtp端口号)

#FROM mail user

USER = 'Czar_test'    (你注册126邮箱的用户名)

#FROM mail password

PASSWD = 'test123'    (你注册126邮箱的密码)

#FROM EMAIL

FROM = "Czar_test@126.com"  (你的126邮箱地址)

try:

 BODY = string.join((

   "From: %s" % FROM,

   "To: %s" % TO,

   "Subject: %s" % SUBJECT,

   "",

   MESSAGE),"\r\n")

 smtp = smtplib.SMTP()

 smtp.connect(HOST,PORT)

 smtp.login(USER,PASSWD)

 smtp.sendmail(FROM,TO,BODY)

 smtp.quit()

except:

 print "UNKNOWN ERROR"

 print "please look help"

 print "./sendmail -h"

然后测试发送邮件

ubuntu@ubuntu:/etc/nagios3/scripts$ /etc/nagios3/scripts/sendmail -t "yongkang_tian@126.com" -s "Nagios Test" -m "Hello Wrold"

nagios 邮件报警脚本

二.nagios命令文件里面添加代码

ubuntu@ubuntu:/etc/nagios3$ vim commands.cfg

define command{

    command_name   notify-host-by-email

    command_line   /etc/nagios3/scripts/sendmail  -t $CONTACTEMAIL$ -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" -m "%b" -m "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n"

    }

define command{

    command_name   notify-service-by-email

    command_line   /etc/nagios3/scripts/sendmail -t $CONTACTEMAIL$ -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -m "%b" -m "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n"

    }

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:nagios邮件报警脚本-创新互联
新闻来源:http://scyanting.com/article/dcodhd.html