前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nagios 邮件报警脚本

Nagios 邮件报警脚本

作者头像
星哥玩云
发布2022-06-28 16:33:09
6140
发布2022-06-28 16:33:09
举报
文章被收录于专栏:开源部署

一.python邮件发送脚本 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命令文件里面添加代码 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"       }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档