nagios 邮件报警脚本
一.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"
}
转载于:https://blog.51cto.com/czar90/1337798
nagios 邮件报警脚本相关推荐
- 监听服务端口及邮件报警脚本
监听端口脚本 vim /root/dkjc.sh#!/bin/bash #name:王康Dk="8000 8080 3306" while : dofor i in $Dkdone ...
- zabbix简介及部署安装(邮件报警)
一.zabbix 简介: zabbix 是完全开源的工具,整合了 cacti 和 nagios 等特性 附:SNMP(udp 161 udp 162) 众多网络工具都支持此协议,比如常见路由交换,常见 ...
- zabbix利用mutt和msmtp配置邮件报警
Mutt安装 yum –y install mutt msmtp安装 yum –y install openssl openssl-devel libntlm libntlm-devel cyrus- ...
- zabbix3.0邮件报警
一.使用外部邮箱地址发送邮件(使用sendmail发送邮件,不能显示内容) 1.安装sendmail.mailx yum install sendmail mailx vim /etc/mail.rc ...
- python插件做nagios发报警邮件二
接上文 python插件做nagios发报警邮件 http://www.nginxs.com/linux/371.html,由于python 传入的参数,python 会自动加 \ ,经过代码测试,代 ...
- Nagios监控之8:利用mutt+msmtp实现邮件报警
使用mutt+msmtp搭建一个邮件客户端,实现利用第三方邮件服务发送邮件. 此功能是在nagios服务正常安装运行的基础上实现的;因此要先安装好基本的nagios运行环境,这个可以参考本人相关的博文 ...
- nagios监控mysql服务_nagios监控mysql及邮件报警
1.使用默认监控命令check_http命令+相关的参数来实现,如下: 在command.cfg添加如下关键词监控命令:check_http_word,参数解析:-I指定IP或者主机名,-u指定URL ...
- 阿里云CentOS 7中zabbix4.2配置shell脚本邮件报警
(1).邮件报警设置 1)安装mailx组件并配置 [root@localhost ~]# yum -y install mailx [root@localhost ~]# vim /etc/mail ...
- nagios 163邮件报警
注:试过用QQ邮件报警,发送不了 1.安装sendMail yum install -y sendmail* 2.测试sendmail 发送邮件 /usr/local/bin/sendEmail –f ...
最新文章
- nginx html 替换,Nginx 服务内容替换功能(sub模块)
- lepus监控oracle数据库_一文看懂lepus天兔数据库监控系统如何搭建
- PHP个人博客项目------切切歆语博客
- Python 包管理之 poetry
- centos 7 安装golang遇到问题: No package golang available.
- Fiddler基本介绍
- cnn 示意图_Two-Stream CNN(双流CNN)介绍(NIPS2014)
- 试验thrift做后端rpc,nginx做web服务器, python后端php前端
- secp256r1 c语言程序,区块链中的数学-secp256k1点压缩和公钥恢复原理
- pointer在html作用,html-CSS中的“ cursor:pointer”效果为什么不起作用
- Duplicate entry '127' for key 'PRIMARY'
- 古董笔记本GTX1050+CUDA9.2+Pytorch安装
- html js 生成缩略图,js实现产品缩略图效果
- 关闭vscode中的eslint语法检查
- mysql 关闭防火墙 命令_linux常用命令和关闭防火墙
- Win10专业版错误代码0xc0000225在吗修复?
- 真正的朋友与普通的朋友的区别 (转)
- VS2015官方下载地址(个人免费版)
- Centos7安裝GitHub
- Windows 2000/XP的CMD命令教程(命令篇)
热门文章
- scala mysql bit_Scala连接mysql数据库
- 硕士论文评审记录2021年春季
- 什么样的电路仿真软件可以显示电流流动?
- loadrunner使用流程_LoadRunner关联函数
- internetreadfile读取数据长度为0_Hadoop 读取数据
- c++ 图的连通分量是什么_图与图论基本概念(图论算法入门)
- android 计算器显示不全,Android5.0 计算器计算结果不准确和结果末尾的多余的‘0’没有省略的解决方法...
- nginx lua连接mysql_OpenResty的安装和在nginx中使用lua直接访问mysql达到数据接口的统一...
- 嵌入式开发都需要会些什么
- java中刷新页面的js,[Java教程]js页面刷新之实现框架内外刷新(整体、局部)