有没有办法让 Nagios 从多台服务器进行检查?

有没有办法让 Nagios 从多台服务器进行检查?

我们正在运行 Nagios 来监控服务器,但正在考虑从网络外部设置第二个实例来检查网络外部的连接问题。有没有办法让单个 Nagios 实例使用多台机器进行测试?例如,我们在 nagios.domain.com 上设置 Nagios 来运行 WebUI 并进行检查,并让 nagios-child.domain.com 只运行检查。

我想让 nagios.domain.com 和 nagios-child.domain.com 对 mysite.com 运行 ping 测试,并在其中一个发生故障时提醒我。Nagios 或任何其他监控系统可以做到这一点吗?

答案1

对于您的情况,您可以让远程主机只运行 NRPE 检查。主 Nagios 服务器将使用远程主机运行检查。

例如,在您当前的 Nagios 服务器上,定义:

define host{
  use       generic-host
  host_name nagios-remote
  address   1.2.3.4
}

define service{
  use                 generic-service
  host_name           nagios-remote
  service_description Check Site1
  check_command       check_nrpe!check_site1
}

等等您想要的任何服务。

在 nagios-remote 框中,在 NRPE 配置中,nrpe.cfg 中有类似这样的内容:

command[check_site1]=/usr/lib/nagios/plugins/check_http site1.example.com
command[check_site2]=/usr/lib/nagios/plugins/check_http site2.example.com

等等。

本质上,您不需要在远程主机上运行完整的 Nagios 服务器。您只需要在主机上运行 NRPE 服务来代表 Nagios 服务器执行检查。

答案2

你当然可以。

如果您只想yoursite.com从 2 台服务器进行监控,只需复制配置。

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

define command{
    command_name    check_http
    command_line    $USER1$/check_http -H $ARG1$ -t 60
    }

/usr/local/nagios/etc/foo/bar.cfg

define service{
    use                     generic-service
    host_name               your host
    service_description     yoursite.com
    check_command           check_http!yoursite.com
    process_perf_data       0
    contact_groups          admin-sms,admin
    }

但是如果你想设置完全冗余的故障转移 Nagios 服务器,请查看

相关内容