我们正在运行 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 服务器,请查看这。