linux – Nagios3:服务检查的条件运算符?

我正在尝试设置Nagios来监控我的各种机器,使用主机组来定义“机器角色”,我根据这些角色运行服务来检查机器.但是,我想使用条件运算符,使我能够针对两个主机组的交集而不是它们的联合运行服务检查…即使用&&,||或()运算符.

例如,假设我有以下服务器:

> www-eu:欧盟的Linux WWW(Apache)服务器
> www-us:Windows WWW(IIS)服务器,在美国(西海岸)
> ftp-eu:欧盟的Linux FTP服务器
> ftp-us:Windows FTP服务器,在美国

我想创建以下主机组:

>美国服务器:www-us,ftp-us
> EU-Servers:www-eu,ftp-eu
> WWW-Servers:www-us,www-eu
> FTP服务器:ftp-us,ftp-eu

现在说我有兴趣检查我的Web服务器的HTTP响应时间.然后,假设这个特定的Nagios服务从美国(西海岸)运行,并且我有一个名为check_http_response_time的命令.此命令将检查HTTP服务器的响应性,我可以提供一个参数,该参数定义提升关键字之前的最大响应时间.

我的命令可能如下:check_http_response_time $HOSTNAME $50

传统上,我可以通过指定主机或主机组列表来运行我的检查.

define service{
    use             local-service
    hostgroup_name              WWW-Servers   # Servers = www-us,www-eu
    servicegroups           WWW Checks
    service_description     Check HTTP Response Time
    check_command           check_http_response_time!50
}

但是,根据上述服务定义,鉴于我的Nagios服务位于美国西部,我可以合理地预期我的EU服务器将返回关键.真的,我想为每个地区设置不同的门槛(美国西部为50,欧盟为200).

为了实现这一点,我必须为每个主机安排我的服务,并为每个主机设置一个自定义阈值,或者按角色排列我的服务组.区域(即WWW-Servers-EU),并针对这些阈值运行特定阈值.虽然后者更好,但两者都比我想要的要麻烦得多……

我喜欢什么,以及这篇文章要求的是一种使用主机组使用条件逻辑而不是简单联合来执行交集的方法.它可能看起来像:

define service{
    use             local-service
    hostgroup_name              WWW-Servers && US-Servers
    servicegroups           WWW Checks
    service_description     Check HTTP Response Time
    check_command           check_http_response_time!50
}

然后,它将仅针对WWW-Servers和US-Servers主机组中的服务器运行检查:在我的示例中,仅使用www-us.对于大规模配置的Nagios服务,此功能的好处将非常重要.

这个功能可用吗?如果不是,将来是否可以使用?鉴于最新的Nagios版本,有没有其他方法可以实现这一目标?

任何提示/建议都非常感谢!

>戴夫

解决方法

It then would run the check only against servers that are in both
WWW-Servers and US-Servers,in my example,just www-us.

Is this feature available? If it isn’t,will it be available in the
future?

Ethan galstad said that他没有任何增加交叉口支持的计划.

Is there an alternative way to accomplish this given the most recent
Nagios version?

您可以通过在主机或主机组之前的定义来定义exclude some hosts!符号.所以,尝试这样的事情:

define service{
    use                     local-service
    hostgroup_name          *,!EU-Servers,!FTP-Servers
    servicegroups           WWW Checks
    service_description     Check HTTP Response Time
    check_command           check_http_response_time!50
}

相关文章

Linux中的ARP防火墙主要用于防御ARP欺骗攻击,其效果取决于多...
insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...