我已经在configuration一个Nagios设置来监视大约30台Windows服务器。 现在我将每个服务器定义添加到Windows.cfg文件,但我认为可以很容易地configuration为每个服务器(Server1.cfg,Server2.cfg,Server3.cfg等)有一个.cfg文件,并从Windows链接这些文件。 CFG。
任何人都知道更好的方法来做到这一点?
谢谢。
如果你的系统是相似的,你应该尝试使用对象inheritance来限制将来要修改的代码量。
除此之外,您可以在顶级configuration(nagios.cfg)中使用cfg_dir指令来指定整个configuration文件目录。 任何以.cfg结尾的文件都将被包括在内,这允许configuration被简单地重命名文件。
例如:
cfg_dir=/usr/local/nagios/etc/objects
你所描述的将会起作用。 我通常做这样的事情。 为主机和主机组configurationdir
mkdir nagios/{hosts.d,hostgroups.d}
每个服务器创build一个文件
cat nagios/hosts.d/db01.cfg define host { host_name db01.mydomain.com alias db01 use generic-host
然后在主机组中匹配正则expression式
cat nagios/hostgroups.d/db.cfg define hostgroup { hostgroup_name db alias DB Servers members db([0-9]+).mydomain.com }
你需要在你的nagios.cfg中打开regex,并指向config dirs
cfg_dir=/etc/nagios/hosts.d cfg_dir=/etc/nagios/hostgroups.d use_regexp_matching=1
那么,你可以把指令分割成不同的文件和cfg扩展名。 Nagios会自动find它们,如果在configuration文件夹中。 你不需要把所有东西放在一个cfg中。 你甚至不需要明确地链接它们。
除了像上面提到的那样使用Nagios对象inheritance之外,还应该编写一个脚本,用于自动从您的configurationpipe理系统提取的数据(Windows中的AD?)中添加/删除主机定义。 这样Nagios不会过时,也不必忙于工作。
我虔诚地使用hostgroups。 通过将机器添加到主机组并在每个主机组的基础上监视该服务器,添加,移动和更改都很简单。 我不会梦想以其他方式运行Nagios。
http://nagios.sourceforge.net/docs/3_0/objectdefinitions.html#hostgroup