nagios 高可用配置

本文主要来说下nagios如何实现高可用,监控至关重要的,能够及时的发现并报警,尽快通知相关人员处理。

需要配置两台nagios服务,配置几乎一样,同时运行,这会带来两个问题:

1. 在网络上检测到的所有问题将触发通知的事件两次,这难以容忍的。

2. 一切都将被检查两次,这在繁忙的网络下会有问题的。

环境如下:

nagios master: 10.0.100.125

nagios slave: 10.0.100.225

master和slave的nagios基本配置完全一样。下面是实现两者主备的配置。

在master上:

 

1

2

3

4

5

6

# cd /usr/local/nagios/libexec

# ./check_nagios -e 5 -F /usr/local/nagios/var/status.dat -C /usr/local/nagios/bin/nagios

NAGIOS OK: 1 process, status log updated 3 seconds ago

# vim /usr/local/nagios/etc/nrpe.cfg

command[check_nagios]=/usr/local/nagios/libexec/check_nagios -e 5 -F /usr/local/nagios/var/status.dat -C /usr/local/nagios/bin/nagios

allowed_hosts=127.0.0.1,10.0.100.225

在slave上:

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

# cd /usr/local/nagios/libexec

# ./check_nrpe -H 10.0.100.125

NRPE v2.13

# ./check_nrpe -H 10.0.100.125 -c check_nagios

NAGIOS OK: 1 process, status log updated 2 seconds ago

# mkdir -p /usr/local/nagios/libexec/eventhandlers

# cd /usr/local/src/nagios

# cp contrib/eventhandlers/enable_notifications /usr/local/nagios/libexec/eventhandlers

# cp contrib/eventhandlers/disable_notifications /usr/local/nagios/libexec/eventhandlers

# cp contrib/eventhandlers/redundancy-scenario1/handle-masterhost-event /usr/local/nagios/libexec/eventhandlers

# cp contrib/eventhandlers/redundancy-scenario1/handle-masterproc-event /usr/local/nagios/libexec/eventhandlers

# sed -i 's/active_service_checks/notifications/g' /usr/local/nagios/libexec/eventhandlers/handlemaster-proc-event

# chown nagios.nagios /usr/local/nagios/libexec/eventhandlers/*

# chmod 0755 /usr/local/nagios/libexec/eventhandlers/*

# vim /usr/local/nagios/etc/objects/commands.cfg

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$ $SERVICESTATETYPE$ $SERVICEATTEMPT$

}

 

define command {

command_name check_nrpe

command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

}

 

# vim /usr/local/nagios/etc/localhost.cfg

define host {

use critical-host-template

host_name 10.0.100.125

alias nagios master

address 10.128.0.11

event_handler handle-master-host-event

}

 

define service {

use critical-service-template

host_name 10.0.100.125

service_description NAGIOS

check_command check_nrpe!check_nagios

event_handler handle-master-proc-event

}

 

# vim /usr/local/nagios/etc/nagios.cfg

enable_notifications=0

告警通知将只能由master服务器发送,因为master一直启用了通知。但是,如果master出现故障或者其Nagios进程停止工作,事件处理程序就被调用,并且slave服务器上的通知将被启用。当master或Nagios的服务正常时,slave的通知将再次被禁用。两者之间持续不间断的检查状态的变化。因此,就实现了一个简单的一种冗余。在使用时,需要进行彻底测试,以确保两者在故障时能顺利切换并发送通知。

handle-master-host-event宏变量解释:

$HOSTSTATE$: 主服务器状态

$HOSTSTATETYPE$: 状态是SOFT 还是HARD

$HOSTATTEMPT$: 尝试检测次数,最大值为max_check_attempts值。

handle-master-proc-event宏变量解释:

$SERVICESTATE$: 主服务器上的nagios进程的状态

$SERVICESTATETYPE$: 服务的状态是SOFT 还是HARD

$SERVICEATTEMPT$: 尝试检测次数,最大值为max_check_attempts值

一般是当主机或服务进入 HARD CRITICAL状态时,事件处理程序调用的辅助脚本来进行下一步要进行的操作。

如果网络带宽紧张的情况下,可以通过事件处理程序来开启或禁止slave进行主机或服务的检测,在这种情况下,需要将master和slave直接的数据进行同步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值