linux nagios 无法发送邮件,Nagios利用mail告警通知

监控端(主节点):

一、使用sendEmail来发送邮件

sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php、bash、perl和web站点使用。

以上是sendEmail的简单介绍,千万不要和sendmail搞混掉了。用了sendEmail你将不在喜欢sendmail了.

1、 下载安装sendEmailsendEmail下载地址:http://caspian.dotconf.net/menu/Software/SendEmail/

# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz //下载1.56版本

# tar -xzvf sendEmail-v1.56.tar.gz //解压后就可以使用了

# mv sendEmail /usr/local/bin/

2、发送邮件#  /usr/local/bin/sendEmail/sendEmail -f 319989158@qq.com -t 478641330@qq.com \

-s smtp.qq.com -u "我是邮件主题" -o message-content-type=html \

-o message-charset=utf8 -xu 319989158@qq.com -xp 123456 -m "我是邮件内容"

命令说明:/usr/local/bin/sendEmail 命令主程序

-f lpc_bg@163.com  发件人邮箱

-s smtp.163.com       发件人邮箱的smtp服务器

-u "我是邮件主题"     邮件的标题

-o message-content-type=html   邮件内容的格式,html表示它是html格式

-o message-charset=utf8        邮件内容编码

-xu lpc_bg@163.com          发件人邮箱的用户名

-xp 123456               发件人邮箱密码

-m "我是邮件内容"        邮件的具体内容发送成功之后会有如下提示:

Jul 29 15:02:53 e10074 sendEmail[26347]: Email was sent successfully!

3、 sendEmail使用命令帮助

[root@localhost scripts]# sendEmail --help

sendEmail-1.56 by Brandon Zehm 

Synopsis:  sendEmail -f ADDRESS [options]

Required:

-f ADDRESS                from (sender) email address

* At least one recipient required via -t, -cc, or -bcc

* Message body required via -m, STDIN, or -o message-file=FILE

Common:

-t ADDRESS [ADDR ...]     to email address(es)

-u SUBJECT                message subject

-m MESSAGE                message body

-s SERVER[:PORT]          smtp mail relay, default is localhost:25

Optional:

-a   FILE [FILE ...]      file attachment(s)

-cc  ADDRESS [ADDR ...]   cc  email address(es)

-bcc ADDRESS [ADDR ...]   bcc email address(es)

-xu  USERNAME             username for SMTP authentication

-xp  PASSWORD             password for SMTP authentication

Paranormal:

-b BINDADDR[:PORT]        local host bind address

-l LOGFILE                log to the specified file

-v                        verbosity, use multiple times for greater effect

-q                        be quiet (i.e. no STDOUT output)

-o NAME=VALUE             advanced options, for details try: --help misc

-o message-content-type=

-o message-file=FILE         -o message-format=raw

-o message-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                    the helpful overview you're reading now

--help addressing         explain addressing and related options

--help message            explain message body input and related options

--help networking         explain -s, -b, etc

--help output             explain logging and other output options

--help misc               explain -o options, TLS, SMTP auth, and more

sendEmail发送邮件内容到此结束,如有什么不明白的,请留言.

二、Nagios邮件告警

1、创建一个联系人# vim /usr/local/nagios/etc/objects/contacts.cfg

define contact{

contact_name            idcyunwei

alias                idcyunwei

service_notification_period     24x7

host_notification_period      24x7

service_notification_options    w,u,c,r,f,s

host_notification_options      w,u,r,f,s

service_notification_commands    notify-service-by-email

host_notification_commands     notify-host-by-email

email               【You email address】

}

2、创建一个组define contactgroup{

contactgroup_name       idc

alias             idc

members            idcyunwei

}

3、修改发送邮件命令# vim /usr/local/nagios/etc/objects/commands.cfg

# 'notify-host-by-email' command definition

define command{

command_name    notify-host-by-email

command_line  /usr/local/bin/sendEmail -l /tmp/sendEmail.log -f lpc_bg@163.com -t $CONTACTEMAIL$ -s smtp.163.com -u "$HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" -xu lpc_bg@163.com -xp 123456 -m "Service: $SERVICEDESC$\\nHost: $HOSTALIAS$\\nAddress: $HOSTADDRESS$  State: $SERVICESTATE$\\nDate/Time: $SHORTDATETIME$\\nInfo:$SERVICEOUTPUT$"

}

# 'notify-service-by-email' command definition

define command{

command_name    notify-service-by-email

command_line  /usr/local/bin/sendEmail -l /tmp/sendEmail.log -f lpc_bg@163.com -t $CONTACTEMAIL$ -s smtp.163.com -u "$HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" -xu lpc_bg@163.com -xp 123456 -m "Service: $SERVICEDESC$\\nHost: $HOSTALIAS$\\nAddress: $HOSTADDRESS$  State: $SERVICESTATE$\\nDate/Time: $SHORTDATETIME$\\nInfo:$SERVICEOUTPUT$"

}

4、指定监控项目define service{

use                             local-service

host_name                       localhost

service_description             Disk Root

check_command                   check_local_disk!20%!10%!/

contact_groups                  idc

}

5、测试告警。

3d925e44e9fb02d0ed7da86cdf507af2.png

更多设置,尽情参考:https://www.idcyunwei.org/post/112.htmlNagios巧用escalations发送报警到不同联系人并限制报警次数

本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值