利用python自写nagios发送邮件小程序-创新互联

楼主公司之前一直都有短信接口 报警都是自己写脚本通过短信方式来报警,但今天领导突然要求 收到nagios邮件报警,楼主一时激动 写个python的小程序吧,希望对大家有帮助

望城ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

vim /usr/local/nagios/libexec/sendmail

#!/usr/bin/python
#-*- coding: UTF-8 -*-
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 port
PORT = ""
#FROM mail user
USER = ''
#FROM mail password
PASSWD = ''
#FROM EMAIL
FROM = ""

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"

chmod +x /usr/local/nagios/libexec/sendmail

vim /usr/local/nagios/etc/object/commands.cfg

define command{
    command_name   notify-host-by-email
    command_line   $USER1$/sendmail -t $CONTACTEMAIL$ -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **"  -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   $USER1$/sendmail -t  $CONTACTEMAIL$ -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **"  -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$"

即可收到邮件 简单吧 比网上的方法简单的多

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


网页题目:利用python自写nagios发送邮件小程序-创新互联
本文地址:http://myzitong.com/article/dopepd.html