hcwzwx 发表于 2019-1-13 10:05:24

Nagios监控之8:利用mutt+msmtp实现邮件报警

  使用mutt+msmtp搭建一个邮件客户端,实现利用第三方邮件服务发送邮件。
  此功能是在nagios服务正常安装运行的基础上实现的;因此要先安装好基本的nagios运行环境,这个可以参考本人相关的博文。
  1.编译安装
  #yum install mutt
  #tar jxvf msmtp-1.4.30.tar.bz2
  #./msmtp-1.4.30/configure –prefix=/usr/local/msmtp
  #make
  #make install
  2.配置msmtp信息
  #mkdir /usr/local/msmtp/etc
  #vim /usr/local/msmtp/etc/msmtprc
  写入一下信息:
  # Set default values for all following accounts.
  defaults
  #日志地址
  logfile /usr/local/msmtp/msmtp.log
  #邮箱用户名
  account zhangsan
  # SMTP邮件服务器地址
  host smtp.qq.com
  #发送的邮件Email
  from zhangsan@qq.com
  auth login
  #端口
  #port 25
  tls off
  # 邮件服务器登录账号
  user zhangsan@qq.com
  # 邮件箱密码
  password 123456
  #默认用户名
  account default:xiaobaichi
  由于password是明码,所以最好需要修改此文件的权限 chmod 600 etc/msmtprc
  3.配置mutt信息
  #vim /etc/Muttc
  最后插入,注意上引号是有的
  set from="发送邮件地址"
  set sendmail="/usr/local/msmtp/bin/msmtp"
  set use_from=yes
  set realname="发件人"
  set editor="vim"
  注意:上面配置中的双引号是需要的,并且发件地址与msmtp设置的账号要相同,否则可能会出错。
  4.修改文件权限以供nagios可以使用
  #setfacl -m u:nagios:rwx msmtp/bin/msmtp
  #setfacl -m u:nagios:rwx msmtp/etc/msmtprc
  #setfacl -m u:nagios:rwx msmtp/msmtp.log
  5.测试
  格式:echo "邮件内容" | mutt -s "邮件标题" 目标邮件地址
  echo "This is a test mail" |mutt -s "hello" lisi@163.com
  6.配置nagios邮件发送命令
  修改nagios命令配置文件
  #vim nagios/etc/object/command.cfg
  #notify-host-by-email命令的定义
  define command{
  #命令名称,即定义了一个主机异常时发送邮件的命令。
  command_name    notify-host-by-email
  #命令具体的执行方式。
  command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mutt -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
  }
  #notify-service-by-email命令的定义
  define command{
  #命令名称,即定义了一个服务异常时发送邮件的命令
  command_name    notify-service-by-email
  command_line    /usr/bin/printf "%b" "***** 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" | /usr/bin/mutt -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
  }
  注:命令是在一行上的,这里排版问题被分成了多行.
  接着修改nagios中定义的主机和服务的报警机制,实现nagios利用邮件自动报警。
  鸣谢:本人参考了多篇文章后总结而得,在此感谢各位网络分享者!



页: [1]
查看完整版本: Nagios监控之8:利用mutt+msmtp实现邮件报警