利用python自写nagios发送邮件小程序

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

vim/usr/local/nagios/libexec/sendmail

# !/usr/bin/python
# - * -编码:utf - 8 - * - - - - - -
进口smtplib
进口字符串
进口sys
进口getopt

def使用():
,打印“““sendmail是发送邮件插件
,用法:

,sendmail [- h |——help] [- t | -] [s |——主题][- m |——消息]

,选择:
,,,,,——帮助| - h)
,,,,,,,,打印sendmail的帮助。
,,,,,- | - t)
,,,,,,,,sendmail设置为电子邮件。
,,,,,——主题| - s)
,,,,,,,,设置邮件主题。
,,,,,——消息| - m)
,,,,,,,,身体,设置邮件
,,例如:
,,,,,只有一个电子邮件,用户
,,,,,。/sendmail - t & # 39; eric@nginxs.com& # 39;- s & # 39;你好eric # 39;埃里克- m & # 39;你好,这是sendmail测试!
,,,,,许多电子邮件,用户
,,,,,。/sendmail - t & # 39; eric@nginxs.com, yangzi@nginxs.com, zhangsan@nginxs.com& # 39;- s & # 39;你好eric # 39;埃里克- m & # 39;你好,这是sendmail考验!“““
,sys.exit (3)

试题:
,选项,参数=getopt.getopt (sys.argv [1:],“ht: s:男:“,(“别人,“=?“主题=?“消息=癩)
getopt除外。GetoptError:
,使用()
名称、价值选择:
,,如果名字(“-h",“别人):
,,,使用()
,,如果名字(“-t",“——to"):
#接受消息用户
,,,=价值
,,,=TO.split (“、“)
,,如果名字(“-s",“——title"):
,,,主题=价值
,,如果名字(“-m",“——message"):
,,,信息价值=
,,,消息=MESSAGE.split (& # 39; \ \ n # 39;)
,,,消息=& # 39;\ n # 39; . join(消息)

# smtp主机
主机=?“,,,,,,,,,,
# smtp端口
端口=?“,,,,,,,,,,,,,,,
#从用户邮件用户
=& # 39; & # 39;,,,,,,,,,,,,,,从邮件密码,
#
PASSWD=& # 39; & # 39;,,,,,,,,,,
#从邮件
=?“,,

试题:
,身体=字符串。加入(
,,,“从:% s"%,
,,,“:% s"%,
,,,“主题:% s"%,
,,,““,
,,,消息),“\ r \ n")

,smtp=smtplib.SMTP ()
,smtp.connect(主机、端口)
,smtp.login(用户、密码)
,smtp.sendmail(从身体)
,smtp.quit ()
除了:
,打印“未知ERROR"
,打印“请别人“
,打印“。/sendmail -h"



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


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


定义命令{
,,,command_name大敌;,notify-host-by-email
,,,command_line大敌;,USER1美元/sendmail CONTACTEMAIL美元- t - s“* * NOTIFICATIONTYPE主机美元警告:主机名是HOSTSTATE * *美元美元“;,- m“* * * * * Nagios * * * * * \ n \ nNotification
类型:NOTIFICATIONTYPE \ nHost美元:主机名\ nState:美元HOSTSTATE \ nAddress:美元HOSTADDRESS \?宁弗:美元HOSTOUTPUT \ n \ nDate美元/时间:LONGDATETIME \ n"美元;
,,,,}

定义命令{
,,,command_name大敌;,notify-service-by-email
,,,command_line大敌;,USER1/sendmail美元- t CONTACTEMAIL - s“美元* * NOTIFICATIONTYPE服务警报:美元HOSTALIAS/SERVICEDESC美元美元SERVICESTATE * *美元“;,- m“Nagios
* * * * * * * * * * \ n \ nNotification类型:NOTIFICATIONTYPE \ n \ nService:美元SERVICEDESC \ nHost:美元HOSTALIAS \ nAddress:美元HOSTADDRESS \ nState:美元SERVICESTATE \ n \ nDate美元/时间:LONGDATETIME \
n \美元nAdditional信息:\ n \ n SERVICEOUTPUT美元“


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

利用python自写nagios发送邮件小程序