IP | Hostname | 备注 |
---|---|---|
192.168.88.31 | smaster | nagios主节点 |
192.168.88.40 | sbackup | nagios备节点 |
环境说明:firewalld关闭,selinux关闭。
软件版本:
nagios版本:4.4.3
nagios-plugins版本:2.2.1
nrpe版本:3.2.1
smaster节点
1.监测nagios进程,查看是否能检测到。
[root@smaseter ~]# cd /usr/local/nagios/libexec/
[root@smaseter libexec]# ./check_nagios -e 5 -F /usr/local/nagios/var/status.dat -C /usr/local/nagios/bin/nagios
NAGIOS OK: 6 processes, status log updated 5 seconds ago
2.配置nrpe
[root@smaseter libexec]# vi /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1,::1,192.168.88.0/24 //添加sbackup节点ip网段
command[check_nagios]=/usr/local/nagios/libexec/check_nagios -e 5 -F /usr/local/nagios/var/status.dat -C /usr/local/nagios/bin/nagios
3.重启nrpe
[root@smaseter libexec]# pkill nrpe
[root@smaseter libexec]# /usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg
sbackup节点
1.测试sbackup是否能连通smaster
[root@sbackup nagios]# /usr/local/nagios/libexec/check_nrpe -H 192.168.88.31
NRPE v3.2.1
[root@sbackup nagios]# /usr/local/nagios/libexec/check_nrpe -H 192.168.88.31 -c check_nagios
NAGIOS OK: 6 processes, status log updated 9 seconds ago
2.复制相关文件并修改
[root@sbackup nagios]# cd /usr/local/nagios/libexec
[root@sbackup nagios]# mkdir eventhandlers
[root@sbackup eventhandlers]# cd /root/nagioscore-nagios-4.4.3/contrib/eventhandlers/
[root@sbackup eventhandlers]# cp enable_notifications /usr/local/nagios/libexec/eventhandlers/
[root@sbackup eventhandlers]# cp disable_notifications /usr/local/nagios/libexec/eventhandlers/
[root@sbackup eventhandlers]# cp redundancy-scenario1/handle-master-host-event /usr/local/nagios/libexec/eventhandlers/
[root@sbackup eventhandlers]# cp redundancy-scenario1/handle-master-proc-event /usr/local/nagios/libexec/eventhandlers/
[root@sbackup eventhandlers]# sed -i 's/active_service_checks/notifications/g' /usr/local/nagios/libexec/eventhandlers/handle-master-proc-event
[root@sbackup eventhandlers]# chown nagios.nagios /usr/local/nagios/libexec/eventhandlers/*
[root@sbackup eventhandlers]# chmod 755 /usr/local/nagios/libexec/eventhandlers/*
3.配置command.cfg
[root@sbackup ~]# vi /usr/local/nagios/etc/objects/commands.cfg
//修改以下
define command {
command_name notify-host-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIF
ICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOU
TPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Host Aler
t: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
} ///usr/sbin/sendmail 改为/usr/bin/mail
define command {
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIF
ICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState:
$SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" |
/usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERV
ICESTATE$ **" $CONTACTEMAIL$
} ///usr/sbin/sendmail 改为/usr/bin/mail
//添加以下
define command {
command_name handle-master-host-event
command_line $USER1$/eventhandlers/handle-master-host-event $HOSTSTATE$ $HOSTSTATETYPE$
$HOSTATTEMPT$
}
define command {
command_name handle-master-proc-event
command_line $USER1$/eventhandlers/handle-master-proc-event $SERVICESTATE$ $SERVICESTATE
TYPE$ $SERVICEATTEMPT$
}
define command {
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
4.配置localhost.cfg
[root@sbackup ~]# vi /usr/local/nagios/etc/objects/localhost.cfg
define host {
use critical-host
host_name nagiosMaster
alias nagios master
address 192.168.88.31
event_handler handle-master-host-event
}
define service {
use critical-service
host_name nagiosMaster
service_description NAGIOS
check_command check_nrpe!check_nagios
event_handler handle-master-proc-event
}
5.配置templates.cfg
[root@sbackup objects]# vi /usr/local/nagios/etc/objects/templates.cfg
define host{
name critical-host
use generic-host
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period workhours
notification_interval 120
notification_options d,u,r
contact_groups admins
register 0
}
define service{
name critical-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
failure_prediction_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
is_volatile 0
check_period 24x7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 60
notification_period 24x7
register 0
}
6.修改nagios.cfg主配置文件
[root@sbackup ~]# vi /usr/local/nagios/etc/nagios.cfg
enable_notifications=0 //0为不发出警告
7.配置邮件告警
[root@sbackup ~]# yum -y install mailx sendmail
[root@sbackup ~]# vi /etc/mail.rc
set from=[email protected]
set smtp=smtp.qq.com
set smtp-auth-user=[email protected]
set smtp-auth-password=pgytd*****wzbbaj
set smtp-auth=login
[root@sbackup objects]# vi /usr/local/nagios/etc/objects/contacts.cfg
email [email protected]
[root@sbackup ~]# systemctl restart sendmail
[root@sbackup ~]# echo "test" | mail -s "t1230" [email protected]
8.重启nagios
[root@sbackup ~]# systemctl restart nagios
9.关闭smaster节点测试
[root@sbackup ~]# tail -f /var/log/messages
Mar 26 23:53:11 sbackup nagios: SERVICE ALERT: nagiosMaster;NAGIOS;CRITICAL;HARD;1;NAGIOS CRITICAL: Cannot open status log for reading!
Mar 26 23:53:11 sbackup nagios: SERVICE EVENT HANDLER: nagiosMaster;NAGIOS;CRITICAL;HARD;1;handle-master-proc-event
Mar 26 23:53:11 sbackup nagios: job 0 (pid=2818): read() returned error 11
Mar 26 23:53:11 sbackup nagios: EXTERNAL COMMAND: ENABLE_NOTIFICATIONS;1585237991
邮件