Nagios服务器最佳做法?

Modified on: Thu, 16 May 2019 00:00:02 +0800

我运行一个中型Nagios服务器。它目前监控大约40台服务器,提供180项服务,并且只在当天增长。

我从一个以非常深奥的方式配置的旧Nagios设置迁移,迫使我从头开始重新配置。

现在服务器正在运行并适用于我们需要的大部分内容,因为我正在寻求使其更具可扩展性;目前每个主机都是/ etc / nagios / hosts /中的自己的文件,每个主机都在同一个文件中拥有它的所有服务。这显然不是最佳选择,但也不会将我的所有配置混淆为数百个不同的文件。

所以我的问题是这个;对于任何有经验的Nagios管理员,在没有过度复杂配置的情况下,使用主机组/服务组的最佳方法是什么?

最佳答案

主机组和模板。

模板允许您为主机和服务定义类,例如“正常服务”,“关键服务”,“低优先级主机”。如果你有多个不同职责的团队,它们也可以作为划分责任的有用方法,因此你可以拥有一个“linux主机”模板和一个“windows主机”模板,每个模板都定义了相应的联系信息。

您可以在单个资源上使用多个模板,因此您可以组合适当的正交模板。例如,你可以拥有

host foo {
    use windows-host,normal-priority-host
    ...
}

将为Windows团队提供联系信息(和升级)以及“正常”主机的轮询率和阈值。

主机组允许您将主机子集的所有检查组合在一起。像“baseline-linux-hosts”这样的东西可以检查负载,磁盘空间,ssh能力,以及你监控的每个主机上应该有的其他东西。添加“https-servers”等组,检查HTTP连接,HTTPS连接和SSL证书到期日期; “文件服务器”,检查NFS和SMB可访问性,可能是更积极的磁盘检查;或“虚拟机”,检查VM辅助功能工具是否正常运行。

将每个主机和主机组放在自己的文件中。该文件应首先包含主机或主机组定义,然后是适用于它的服务的定义。

如果在cfg_dir文件中使用nagios.cfg指令,Nagios将以递归方式搜索该目录。利用它。对于cfg_dir=/etc/nagios/conf.d的设置,您可以拥有如下目录树:

  • /etc/nagios/conf.d/

    • commands.d /

      • http.cfg
      • nrpe.cfg
      • smtp.cfg
      • ssh.cfg
    • hosts.d /

      • host1.cfg
      • host2.cfg
      • host3.cfg
    • hostgroups.d /

      • hostgroup1.cfg
      • hostgroup2.cfg

我倾向于为每种资源类型(命令,联系人组,联系人,升级,主机组,主机,服务组,时间段)创建一个目录,但服务除外,它们与使用它们的主机或主机组分组。

精确的结构可能会根据您的组织需求而有所不同。在过去的工作中,我在hosts.d下使用了每个不同站点的子目录。在我目前的工作中,大多数Nagios主机定义都是由Puppet管理的,因此Puppet管理的主机有一个目录,手工管理主机有一个单独的目录。

请注意,上述内容还会将命令分解为多个文件,通常是通过协议。因此,nrpe.cfg文件将具有命令check_nrpecheck_nrpe_1arg,而http.cfg可以具有< code> check_http ,check_httpcheck_http_portcheck_httpscheck_https_port1 < / SUP>

我通常没有大量的模板,所以我通常只有一个check_https_cert文件和一个hosts.d/templates.cfg文件。如果你更多地使用它们,它们可以进入services.d/templates.cfg目录中适当命名的文件。

1我还想要一个templates.d命令,它基本上是check_http_blindly;即使获得403响应代码,它也会返回OK。

作者:,asciiphil

相关问答

添加新评论