2015年(68)
分类: 系统运维
2015-08-31 18:45:21
简介:
sendEmail这是一个perl写的发送邮件的脚本,可以很方便的嵌入到shell和批处理命令中。因此非常方便用于服务和系统监控,自动化报警等;sendEmail不需要本地的邮件服务,即不需要开放25端口,在对安装性要求比较高的环境中很适用。
安装:
[root@localhost ~]#cd /opt
[root@localhost ~]#tar -zxvfsendEmail-v1.55.tar.gz
[root@localhost ~]#cd sendEmail-v1.55
[root@localhost ~]#cp sendEmail/usr/local/nagios/libexec
[root@localhost ~]#chmod x/usr/local/nagios/libexec/sendEmail
使用方法:
/usr/local/bin/sendEmail –f jiankong@test.com –t list@test.com –s mail.test.com –u “from nagios” –xu lisi@test.com –xp abc –m test
如果不带参数将显示脚本用法。
必选项:
-f ADDRESS 发件人地址
* 至少需要指定一个收件人,可以通过-t, -cc, or -bcc 选项
* 必须指定要发送的邮件内容,可以通过-m, STDIN, 或者 -o message-file=FILE 选项
常用选项:
-t ADDRESS [ADDR ...]收件人邮箱,可以通过-cc或者-bcc指定多个
-u SUBJECT 邮件主题
-m MESSAGE 邮件内容
-s SERVER[:PORT]邮件转发器,譬如:smtp.sina.com:25. 默认为localhost:25
可选项:
-a FILE [FILE ...]指定要添加的附件,可以多个
-cc ADDRESS [ADDR...] 指定多个收件人地址
-bcc ADDRESS [ADDR...] 指定多个收件人地址
-xu USERNAME当SMTP服务器需要验证时,指定用户名
-xp PASSWORD当SMTP服务器需要验证时,指定密码
特殊用法:
-b BINDADDR[:PORT]本地绑定的地址
-l LOGFILE 日志输出文件logto the specified file
-v 输出冗长的运行日志
-q 安静模式运行 (比如:不打印日志)
-o NAME=VALUE高级选项,查看一些选项的详细用法. 试试: –help misc
-o message-file=FILE-o message-format=raw
-omessage-header=HEADER -o message-charset=CHARSET
-o reply-to=ADDRESS-o timeout=SECONDS
-o username=USERNAME-o password=PASSWORD
-o tls= -o fqdn=FQDN
Help:
–help 打印你现在看到的内容
–help addressing打印和邮件地址相关的帮助信息
–help message打印和邮件内容相关的帮助信息
–help networking 打印和-s, -b, 等选项的帮助信息
–help output打印和发送日志的帮助信息
–help misc打印和TLS,SMTP,验证等其他选项的帮助信息
配置nagios使用sendEmail来发警告邮件:
[root@localhost ~]# /usr/local/nagios/etc/objects/commands.cfg //添加邮件告警命令
#'notify-host-by-email command definition
define command{
command_name notify-host-by-email
command_line /usr/bin/printf "%b" "Host: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/local/nagios/libexec/sendEmail -f jiankong_sh@test.com \
-u "$NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$" -t $CONTACTEMAIL$
}
# notify-service-by-email command definition
define command{
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "Date/Time: $LONGDATETIME$\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/local/nagios/libexec/sendEmail -f jiankong_sh@test.com \
-u "$NOTIFICATIONTYPE$ Service Alert: $HOSTADDRESS$/$SERVICEDESC$ is $SERVICESTATE$" -t $CONTACTEMAIL$
}
[root@localhost ~]# /usr/local/nagios/etc/objects/contacts.cfg //在联系人中添加新增的告警命令
define contact{
contact_name lisi
alias 李四
host_notification_period 24x7
service_notification_period 24x7
host_notification_options d,u,r
service_notification_options w,u,c,r
host_notification_commands notify-host-by-email
service_notification_commands notify-service-by-email
email lisi@test.com
pager none
}