搭建nagios的目的就是为了他的报警系统,nagios据我所了解可以有三种报警:
一、声音报警 二、电子邮件报警 三、手机短讯报警 四、传真告警 下面是我的邮件报警的配置过程: 1、开启系统自带的sendmail邮件系统 service sendmail start 如果没有安装,可以yum一下 yum install -y sendmail* service sendmail restart 测试发送邮件: echo "test" | mail 注:iptables和selinux设置 2、配置nagios中报警邮箱 vi /usr/local/nagios/etc/objects/contacts.cfg define contact{ contact_name mail ; Short name of user alias null ; Full name of user service_notification_period 24x7 (和如下时间模版(timeperiod)保持一致) host_notification_period 24x7 service_notification_options w,u,c,r host_notification_options d,u,r service_notification_commands notify-service-by-email host_notification_commands notify-host-by-email email } 在email那里加上自己的邮箱,如果有多个可以用逗号隔开 3、设置报警方式: define timeperiod{ timeperiod_name 24x7 alias 24 Hours A Day, 7 Days A Week sunday 00:00-24:00 monday 00:00-24:00 tuesday 00:00-24:00 wednesday 00:00-24:00 thursday 00:00-24:00 friday 00:00-24:00 saturday 00:00-24:00 } 这两个notify-service-by-email 和 notify-host-by-email 是在command.cfg那里定义的,看看是怎么定义的:# 'notify-service-by-email' command definition define command{ command_name notify-service-by-email command_line echo " ** $NOTIFICATIONTYPE$ Service Alert: $HOSTNAME$/$HOSTADDRESS$ $SERVICEDESC$ is $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$ Additional Info:$SERVICEOUTPUT$ "| formail -I "Subject: $HOSTADDRESS$*$SERVICEOUTPUT$*$LONGDATETIME$"| sendmail -oi $CONTACTEMAIL$ }# 'notify-host-by-email' command definition
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" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$ } 这里已经默认配置好,我们不用修改直接调用就是了 最后重启服务: service nagios retart 进行破环性测试!