我们有一个 nagios 设置,它使用继承的程度比我习惯的要大。我已阅读以下文档:
http://nagios.sourceforge.net/docs/3_0/objectinheritance.html
但我还是不明白如何才能实现我的目标。
我的服务器/主机已收到 procs 警告通知。我对此进行了调查,发现这是一个已知错误,对于此特定服务器可以安全忽略。理想情况下,我希望仅增加此主机的服务定义警告/关键点;但我也愿意在发布当前问题的补丁之前不使用此服务检查。通过 Web 界面禁用对我的经理来说不是一个可接受的选择。
服务定义:
define service{
use unix-agent-service
hostgroup_name linux-servers
service_description Agent: Total Processes
check_command check_nrpe!check_total_procs
}
主机定义:
define host{
use linux-server
host_name unixlab
alias Unix Lab
address PRIVATE
}
组/服务器定义:
define host{
name linux-server
use generic-host
alias Linux server
hostgroups linux-servers
register 0
}
主机继承了主机组 linux-servers 中定义的所有服务。我尝试为服务检查指定一个名称,然后在主机定义中将该名称设置为 null,但我认为这种语法是错误的,并且/或者我不理解继承的这一部分:
define service{
**name agent-total-processes**
use unix-agent-service
hostgroup_name linux-servers
service_description Agent: Total Processes
check_command check_nrpe!check_total_procs
}
主机定义:
define host{
use linux-server
host_name unixlab
alias Unix Lab
address PRIVATE
**agent-total-processes null**
}
我确信我忽略了一些明显的东西......根据我对继承的解读,这应该是可能的,但我无法理解它。
有什么想法吗?
答案1
在服务定义中,您可以排除(使用!)您不想在其上运行它的特定主机:
define service {
use unix-agent-service
hostgroup_name linux-servers
host_name !unixlab
service_description Agent: Total Processes
check_command check_nrpe!check_total_procs
}
这会将服务应用于“linux-servers”的每个成员,除了“unixlab”。