我已经配置了 Nagios 设置来监控大约 30 台 Windows 服务器。现在我将每个服务器的定义添加到 Windows.cfg 文件中,但我认为可以轻松配置每个服务器一个 .cfg 文件(Server1.cfg、Server2.cfg、Server3.cfg 等),并从 Windows.cfg 链接这些文件。
有谁知道更好的方法吗?
谢谢。
答案1
如果你的系统相对相似,你应该尝试使用对象继承以限制您将来必须修改的代码量。
除此之外,您还可以使用cfg_dir
顶级配置 (nagios.cfg) 中的指令来指定配置文件的整个目录。任何以 结尾的文件都.cfg
将包括在内,这样只需重命名文件即可切换配置。
例如:
cfg_dir=/usr/local/nagios/etc/objects
答案2
你所描述的方法可行。我通常会这样做。为主机和主机组创建配置目录
mkdir nagios/{hosts.d,hostgroups.d}
为每个服务器创建一个文件
cat nagios/hosts.d/db01.cfg
define host {
host_name db01.mydomain.com
alias db01
use generic-host
然后在主机组中进行正则表达式匹配
cat nagios/hostgroups.d/db.cfg
define hostgroup {
hostgroup_name db
alias DB Servers
members db([0-9]+).mydomain.com
}
您需要在 nagios.cfg 中打开正则表达式并指向配置目录
cfg_dir=/etc/nagios/hosts.d
cfg_dir=/etc/nagios/hostgroups.d
use_regexp_matching=1
答案3
好吧,您可以使用 cfg 扩展名将指令拆分到不同的文件中。如果它们位于配置文件夹中,Nagios 将自动找到它们。您不需要将所有内容都放在一个 cfg 中。您甚至不需要明确链接它们。
答案4
我虔诚地使用主机组。通过向主机组添加机器并在每个主机组基础上监控该服务,添加、移动和更改都很简单。我从未想过以任何其他方式运行 Nagios。
http://nagios.sourceforge.net/docs/3_0/objectdefinitions.html#hostgroup