Gee*_*man 5 monitoring configuration nagios
我目前正在尝试为主机组中的所有主机定义一组服务,这工作正常。
我的问题是,然后我希望能够从主机组覆盖这些已包含在主机中的服务定义。例如,对于某个特定 Linux 服务器需要将其 PING 检查阈值从默认值提高的情况。
例如,我想在linux-server
主机组中有一个主机,它继承了几个服务(SSH、磁盘、PING 等),但是对于我想用自己的唯一值覆盖的特定服务,定义一个特定于该主机,具有自定义值。
例如。linux-server
使用自定义PING
服务定义定义主机:
define host {
use n1-host
host_name server-01
hostgroups linux-server
alias Test Linux Server
parents my-gateway,upstream-gateway
address server01.test.com
}
define service {
use generic-service
host_name server-01
service_description PING
check_command check_ping!100.0,5%!400.0,15%
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,现在,即使主机名和服务描述与组级别 PING 检查的匹配,也只列出了一项 PING 服务server-01
,这是组级别 PING 检查,而不是主机级别。
它似乎确实在某种程度上进行了注册,就像在我的 Nagios 日志中我可以看到的那样:
7 月 16 日 19:12:27 localhost nagios:警告:在主机“server-01”上找到服务“PING”的重复定义
但最终,就像我检查服务检查结果的“性能数据”一样不起作用,我可以在那里看到数据中包含的阈值是组检查的阈值,而不是主机检查的阈值。
然而,我的理解是围绕版本3.2.0
进行了更改,以允许主机级服务优先于主机组级服务。我目前正在运行3.4.1
,所以我认为这应该有效。
一些让我相信这个功能应该已经实现的链接:
此外,我xdata/xodtemplate.c
从 3.4.1 源代码中检查了我的文件副本,乍一看似乎在“跳过列表”中,主机级别检查旨在优先于主机组检查。虽然不可否认,我的分析是原始的。
我知道可以从组中排除某些主机,但这对我不起作用,因为主机组中可能有多个服务,我不想从主机中删除所有这些服务。
我还发现必须维护一个与主机本身实际定义的位置分开的排除列表是不直观的。例如,在上述链接之一(第二个)中给出了执行以下操作的建议:
在服务定义中,在“hostgroup_name”下添加一行:“host_name !zlinux_hostname”
这将从服务检查中排除 zlinux 主机。
对我来说,这不是一个理想的解决方案,因为我们最终可能不得不做出许多例外,这似乎很难维护。
如果有人对如何使这项工作有任何见解,我将不胜感激!
目前,我正在定义我的组级 PING 服务,如下所示:
define hostgroup {
hostgroup_name linux-server
name Linux Servers
}
define service {
use generic-service
hostgroup_name linux-server
service_description PING
check_command check_ping!100.0,2%!400.0,10%
}
Run Code Online (Sandbox Code Playgroud)
您可以使用“自定义变量宏”(http://nagios.sourceforge.net/docs/3_0/macros.html)
在您的 ping 服务定义中使用例如:
check_command check_ping!200.0,20%!$_HOSTVAR_SERVICE_PING_CRITICAL_RTA$,40%
Run Code Online (Sandbox Code Playgroud)
在您的主机模板中设置默认值:
_VAR_SERVICE_PING_CRITICAL_RTA 500
Run Code Online (Sandbox Code Playgroud)
在主机定义中应使用差异值集,例如
_VAR_SERVICE_PING_CRITICAL_RTA 1500
Run Code Online (Sandbox Code Playgroud)
明确地。
归档时间: |
|
查看次数: |
8209 次 |
最近记录: |