我想监视/测试 Apache Web 服务器中的多个虚拟主机,此外,我希望这些检查在 Nagios -> HTTP 中显示为一项服务。如果 web/URL 之一失败,该服务将显示为失败/警报。我不知道这是否可能。
我在另一台服务器上安装了 Nagios,我想检查网络是否正在回答状态代码 200。
那么,问题是,nagios 可以配置为检查同一服务中的多个网站吗?是否可以在服务中设置多个 check_command?
check_command check_httpv!google.com
check_command check_httpv!gmail.com
Run Code Online (Sandbox Code Playgroud)
你如何监控nagios中的虚拟主机?您是否正在为每个网站创建服务?
提前问候并感谢您!
check_http 一次只能检查一个站点。如果您需要在单个服务检查中检查多个站点,则需要编写自己的检查来实现逻辑。这可以在一个简单的 shell 脚本中轻松完成,该脚本为每个虚拟主机调用 check_http 并在任何 check_http 执行失败时向 Nagios 返回适当的失败代码。这样的脚本可能如下所示。
#!/bin/sh
for HOST in $* ; do
check_http -H $HOST [...other args...] >/dev/null
if [ $? -ne 0 ] ; then
echo "$HOST not responding"
exit 2
fi
done
echo "All hosts ok"
exit 0
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用Nagios 的服务依赖项来实现您的目标。暂时假设您希望检查所有 Apache 虚拟主机,但如果 Apache 进程不可用,则不会被每个主机的通知淹没。这将允许您查看每个虚拟主机的状态详细信息,允许更细粒度的报告,并让您拥有不同的通知和时间段选项。
要实现这一点,您需要为每个虚拟主机创建一个服务检查,然后为 Apache 创建一个检查,大概是通过使用 check_http 通过 IP 地址检查并确保某些东西正在侦听端口 80。
接下来,您将为每个虚拟主机的服务检查创建服务依赖项,并将它们配置为依赖于 Apache 检查。如果 Apache 检查失败,所有虚拟主机检查(取决于 Apache 检查)将停止发送通知和/或执行检查,直到 Apache 检查恢复。
归档时间: |
|
查看次数: |
7073 次 |
最近记录: |