1.下载安装sendEmail工具

[root@db02 ~]# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
[root@db02 ~]# tar xvf sendEmail-v1.56.tar.gz
[root@db02 ~]# mv sendEmail-v1.56/sendEmail /usr/local/bin/sendEmail2
[root@db02 ~]# chmod  755 /usr/local/bin/sendEmail2
[root@db02 ~]# /usr/local/bin/sendEmail2 -f z597011036@126.com -t dick@tingyun.tech -s smtp.126.com -u "**$NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is$SERVICESTATE$ **" -xu z597011036@126.com -xp z597011036zzz -m test
Jun 01 16:59:03 db02 sendEmail2[27006]: Email was sent successfully!  #测试邮件发送成功
[root@db02 ~]#


2.在nagios中定义联系人和联系组

[root@db02 ~]# cd /usr/local/nagios-4.1.1/etc/objects/
[root@db02 objects]# vim contacts.cfg
define contact{
  contact_name       dick    #联系人姓名
  use      generic-contact      #使用联系人模板
  alias     dick           #别名
  email   dick@tingyun.tech  #联系人邮箱
        }
define contact{
   contact_name  rayc          
   use   generic-contact   
   alias  rayc      
   email   rayc@tingyun.tech   
        }
define contact{
   contact_name    tong       
   use        generic-contact   
   alias       tong         
   email     z597011036@qq.com    
        }
define contactgroup{
   contactgroup_name   tingyun   #定义联系人组
   alias    tingyun
    members    dick,rayc     #组中的成员
   }


3.报警时间,级别设置

[root@db02 objects]# vim templates.cfg    #报警参数设置
define contact{
   name    generic-contact         #定义报警联系人模板
   service_notification_period     24x7 #服务报警的时间(24小时,7天) 
   host_notification_period        24x7   #主机报警的时间       
   service_notification_options    w,u,c,r,f,s  #服务报警级别
   host_notification_options       d,u,r,f,s   #主机报警级别      

   service_notification_commands   notify-service-by-email  #服务报警的命令(在command.cfg文件中)

   host_notification_commands     notify-host-by-email 
   register      0      #是否可以继承               
        }
define host{
   name   generic-host  
   notifications_enabled      1    #是否启用主机报警
   event_handler_enabled    1    #启用主机事件程序
   flap_detection_enabled    1  
   process_perf_data            1     #性能数据
   retain_status_information   1     #程序启动保留状态信息  
   retain_nonstatus_information    1     #程序启动保留非状态信息  

   notification_period             24x7    #报警时间
   register    0      #是否继承
    }
define host{
   name     linux-server    #自定义模板     
   use     generic-host     #继承哪个模板
   check_period   24x7     #被选中的时钟
   check_interval    5         #主机每5分钟检查一次
   retry_interval      1         #每隔1分钟重试检查一次
    max_check_attempts    10    #检查每个主机10次
    check_command       check-host-alive   #默认命令检查主机
    notification_period    workhours   #只通知白天
    notification_interval    120     #每两个小时发送通知
    notification_options    d,u,r   #只发送特定主机的通知
    contact_groups     tingyun    #发送哪个组
    register    0    #是否被继承         
     }
define service{
    name   generic-service      #定义模板
    active_checks_enabled   1   #启动服务检查
    passive_checks_enabled   1    #启动被动检查
    parallelize_check   1        #主动服务检查(禁用会出现严重问题)
    obsess_over_service  1    
    check_freshness      0     #不检查服务新鲜度   
    notifications_enabled   1    #启动服务通知
    event_handler_enabled   1    #启用服务事件
    flap_detection_enabled   1 
    process_perf_data            1    
    retain_status_information     1 
    retain_nonstatus_information    1 
    is_volatile     0    #服务不稳定
    check_period    24x7      #检查服务时间
    max_check_attempts   3        #重新检查服务3次
    normal_check_interval  10     #每10分钟检查一个服务
    retry_check_interval   2          #每2分钟再检查一次
    contact_groups    tingyun      #邮件通知联系组
    notification_options    w,u,c,r      #发送报警级别
    notification_interval    1               #每1小时重新通知服务
    notification_period        24x7         #通知时间
     register     0     #是否继承
        }
define service{
    name    local-service       #定义模板 
    use    generic-service      #继承模板
    max_check_attempts    4    #最多检查服务4次
    normal_check_interval  5    #正常情况下每5分钟检查一下服务
    retry_check_interval     1     #重新检查该服务需要1分钟
    register      0      #这只是个模板
    notifications_enabled   1     #启用报警
    contact_groups     tingyun   #发送联系组
   }


4.报警脚本编写

[root@db02 objects]# vim commands.cfg
define command {
     command_name notify-service1-by-email
     command_line /usr/bin/printf "%b" "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$\n" | /usr/local/bin/sendEmail2 -f t 发件人邮箱 -t $CONTACTEMAIL$ -s smtp.139.com -u "**$NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is$SERVICESTATE$ **" -xu 发件人邮箱用户名 -xp 发件邮箱密码
}
define command {
     command_name notify-host1-by-email
     command_line /usr/bin/printf "%b" "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$\n" | /usr/local/bin/sendEmail2 -f 发件人邮箱 -t $CONTACTEMAIL$ -s smtp.139.com -u "**$NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is$SERVICESTATE$ **" -xu 发件人邮箱用户名 -xp 发件邮箱密码

}

[root@db02 objects]# /etc/init.d/nagios restart
Running configuration check...
Stopping nagios:. done.
Starting nagios: done.
[root@db02 objects]#
nagios使用sendEmail邮件报警_sendEmail