Nagios高可用,主备自动切换。

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

在这里插入图片描述
邮件
在这里插入图片描述

发布了29 篇原创文章 · 获赞 15 · 访问量 2499

猜你喜欢

转载自blog.csdn.net/qq_20027745/article/details/105106363