1、 前言

如何来实现nagios监控系统的高可用,监控是很重要的,在关键时刻进行通知报警,通知人员进行相应的处理。

在进行配置的时候,需要配置两台相同服务的nagios服务器,配置相同,同时在运行,此时会存在两个问题:

Ø 在某个服务或者主机进行报警的时候,会同时发出通知,从而产生不必要的重复报警

Ø 所有的服务或者主机都会被检查两次,在网络繁忙的时候会占用生成环境的资源

要解决这两个问题,那么就必须将nagios服务器设置为主备关系,在nagios主服务发生问题的时候,nagios备服务进行接管工作,从而让nagios监控高可用

2、 基本设置

在设置nagios主备服务器的时候,必须准备两台环境相同的服务器,在其中需要安装的软件如下:

Ø Nagios核心程序

Ø Nagios插件

Ø NRPE

Ø PHP

Ø Apache

设置完成之后,两台nagios服务器均能进行发送报警通知,并且均是正常运行。

在此实验中,环境如下:

Nagios主服务器

Nagios备服务器:

3、 nagios主服务器配置

在nagios主服务器中主要要设置检查nagios服务命令

3.1 检查主服务器设置

主要来进行验证命令是否能准确的监测到nagios进程:

命令如下:

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

从上面检查可以看到能够正确的监测到nagios进程

当监测不到nagios进程显示如上

3.2 配置nrpe

配置文件路径如下:

在其中添加命令如下:

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、nagios备服务器配置

4.1 测试备用服务器连接主服务器

如上所示,表示能够正确连接到nagios主服务器,并且能监测到nagios主进程服务

4.2 复制相关档案

创建目录,用来存放相关的配置:

找到编译的时候nagios的路径,如下:

将相关的配置文件拷贝到创建的目录中,如下:

4.3 修改命令配置文件

命令配置路径如下:

在其中添加的内容如下:

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$

}

4.4 修改本地监控配置文件

配置文件路径如下:

在其中添加的内容如下:

define host {

use                             critical-host

host_name                       nagiosMaster

alias                           nagios master

address                         192.168.1.50

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

}

4.5 修改模板文件

主要用来增加两个模板,路径如下:

在其中增加的内容如下:

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

}

4.6 修改nagios核心文件

路径如下:

将其中的通知进行关闭:

3、 测试

5.1 关闭监控服务器查

在nagios主机上能收到通知邮件,如下:

在nagios备机上不会收到邮箱通知,如下:

5.2 nagios服务切换

关闭nagios主机nagios服务,此时nagios备机启用服务通知:

启动nagios主机nagios服务,此时nagios备机关闭服务通知:

此时nagios主机开始发送报警通知:

6、附录事件脚本的处理内容

nagios高可用性设置的更多相关文章

  1. 怎样利用Heartbeat与Floating IP在Ubuntu 14.04上创建高可用性设置

    提供 ZStack社区 内容简单介绍 Heartbeat是一款开源程序,负责将集群基础设施容量--包括集群成员与消息收发--交付至客户server. Hearbeat在高可用性server基础设施其中 ...

  2. Nagios设置只监控不报警

    设置全部监控项都开启邮件报警: vim /usr/local/nagios/etc/nagios.cfg 设置 enable_notifications=1    1为开启,0为关闭     如个别监 ...

  3. Nagios监控平台搭建

    Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员, ...

  4. Nagios 安装配置

    ##Debian 6 安装server # apt-get install nagios* 一路设置好各种密码,成功后访问 http://ip/nagios3 既可,默认用户*nagiosadmin* ...

  5. ubuntu下nagios配置

    参考文献: http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html http://my.oschina.net/duangr/blo ...

  6. Nagios监控lvs服务

    1在lvs server上安装nrpe客户端: 1.1,rpm方式安装nrpe客户端 下载地址:http://download.csdn.net/detail/mchdba/7493875 [root ...

  7. Nagios安装部署

    p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; line-height: 150%; fon ...

  8. Nagios安装、配置、问题记录

    http://youyizhimen.blog.163.com/blog/static/170917267201201745523276/ 本文描述了我在使用Nagios的过程中遇到的一些问题.解决办 ...

  9. Nagios监控

    1.Nagios监控软件 Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警 ...

随机推荐

  1. 解决 emulator-5554 disconnected !Cancelling错误

    http://www.xuebuyuan.com/351215.html 使用Android模拟器经常遇到连不上.连一次掉一次等诸多问题(转载+原创) 解决办法一: 在此种情形下,重启ADB即可: 1 ...

  2. Linux 下sleep()函数

    调试程序发现起了一个子线程后,主线程上的sleep不生效了,看到这才明白... — Function: unsigned int sleep (unsigned int seconds) The sl ...

  3. php关于return的关键字

    使用return关键字可以使函数返回值,可以返回包括数组和对象的任意类型,如果省略了 return,则默认返回值为 NULL. function add($a) { return $a+1; } $b ...

  4. Ubuntu 安装vsftp软件(已测试)

    首先开启Ftp端口 使用apt-get命令安装vsftp #apt-get install vsftpd -y 添加ftp帐号和目录 先检查一下nologin的位置,通常在/usr/sbin/nolo ...

  5. Selenium系列教程(2)

    Selenium RC(Selenium远程控制) Selenium RC是一个用Java编写的,允许用户使用无论哪种编程语言对基于Web的应用程序构建测试脚本的工具.Selenium RC克服了Se ...

  6. ASP.NET26 个常用性能优化方法

    数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Co ...

  7. Home Server

    今天分享一个作品--HomeServer,一个基于云存储理念的集家庭数据存储.共享.管理及远程访问为一体的家用存储设备.通俗的讲,就是一个家庭数据银行,为家庭的数据提供专业.安全.便捷.持久.全天候的 ...

  8. Hack 【二分答案】

    题意:给出n门课程,每一门课程考的分数,每一门课程的学分,求最多删去k组数据之后能够得到的最大加权平均数 先开一个数组x[],其中x[i]=1代表没有删除这门课程,x[i]=0表示删除了这门课程 然后 ...

  9. duilib库分析: 消息流程分析

      转 看下CWindowWnd类与CPaintManagerUI类是咋进行消息分发的吧. 1. 先看下CPaintManagerUI类的MessageLoop函数: void CPaintManag ...

  10. BOM浏览器对象

    BOM 浏览器对象 一.浏览器本身就自己有一些对象,不用创建就可以使用 window(当前浏览器窗体) 属性: status opener closed parent top 方法: alert(); ...