如何使用Nagios实现网络监控?

来源:互联网 发布:管家婆软件怎么使用 编辑:程序博客网 时间:2024/04/29 03:03
        一个系统管理员怎样才能够监控众多的机器和服务,以便在人们受到危害之前,尽早的发现并解决问题?该问题的答案是Nagios。

  Nagios是一个开放源码的网络监控工具。它不仅免费,而且功能强大,并具有极强的可定制性。虽然学习和实施它比较复杂,但它在记录你们组织的IT基础架构如何运行方面,会节省大量的时间。

  在这个分成两部分的专栏中,在第一部分,我将重点讨论Nagios的有效性和它的体系结构。而在第二部分,我将提供配置的例子和建议。查看第二部分

  为了理解Nagios的有效性,通常要考虑一个典型的IT基础架构由一个或多个系统管理员负责。即使是一个小公司,在他们所使用的计算机系统中,也应该包含有一定数量的,运行着许多服务和软件包的硬件。大公司则有成百上千的同类设施需要维护和运行。因此,不管是小公司,还是大公司,都需要分散式的操作,也就是拥有分散的IT基础架构,这种架构在物理上没有掌握所有机器信息的能力。

  自然地,每一件硬件都将运行唯一一套软件产品。这就需要面对众多的硬件和软件需要监控,但管理员并不能注意到每一个特殊的项目;在这种情况下,默认只能采取发生问题后进行解决的方案,也就是基于反应的问题解决方法。而更糟糕的是,此种问题通常来自于终端用户的抱怨,这无疑为使IT部门的工作受到质疑。

  除了显而易见的公共关系问题,这种基于反应的问题解决方案效率非常低下。如果及早发现问题,只需几分钟就能够解决,但若是发现的晚了,则将浪费更多的时间。举例来说,若是发现的早,通过日志就可以在磁盘空间用完之前,解决数据库空间不足的问题,并很容易就能够修复,但若是在系统暂定之后再进行修复,由于日记文件已经无法记录,因此将变得非常困难。

  因此,一个能够帮助系统管理员进行此类操作的自动化工具就成为必需品。此类工具被分类到网络管理软件的类目中,都具有以下这些主要功能:

  · 能够记住基础设施中运行的所有服务器和机器;

  · 在小问题变大之前发出警告;

  · 从一个中心地点运行,以减少必须到每台物理机器才能解决问题的需求;

  · 提供一个有关全系统状态,未解决问题等的直观视图。

  而这里还有两个阻碍网络管理软件被广泛采用的主要原因:

  · 它的花费太贵;

  · 它需要为一个给定的环境进行有效的配置工作。

  Nagios是一个开放源码的网络管理工具,因此它解决了第一个主要问题。当然,即使是Nagios也需要大量的合理配置,不过在这篇文章以下的叙述中,我会提出几个建议,以减少配置的负担。

  Nagios的体系结构

  Nagios应用软件运行在一个中心式的服务器上面,此服务器运行Linux或Unix操作系统。每一件硬件都必须由一个运行的Nagios进程监控,此进程与中心服务器通话。根据中心服务器可以阅读的配置文件中的指令, Nagios将“伸出并触摸“远程进程,并象棋发出指令,运行必要的检查。由于软件必须在Linux或Unix上运行,因此远程机器上的每一个硬件都能够被加入通话。

  根据来自远程机器的反应,Nagios之后将根据它的配置,采取适当的行动。而根据远程测试执行的需要,Nagios将通过一台本地机器能力(例如,测试一个文件是否存在),或运行一个定制的测试程序(叫做插件),来执行测试,测试更多特殊的项目(例如,检查是否有一组特殊的值被放如数据库)。如果测试返回的值不正确,Nagios将通过一种或多种方法发出警告――同样,方法是根据Nagios的配置来选择的。

  现在,就让我们进入此篇文章的第二部分,在那里,我将提供一个Nagios配置的例子。

  --------------------------------------------------------------------------------

  Bernard Golden是Navica Inc.公司的CEO。Navica Inc.是一家专注于开放源码软件的系统整合公司。Bernard Golden为SearchEnterpriseLinux.com撰写名为Golden's Rules的专栏,并且回答有关开放源码软件的问题。

  欢迎来到Nagios的世界,这是一个开放源码的网络监控工具。除了免费之外,Nagios还拥有强大的功能和可伸缩性,它能够使用自动化的网络监控为IT管理节省大量的时间。

  在这一部分,我将向你展示一个Nagios配置的例子。而在此篇文章的第一部分,我们已经讨论过Nagios的有效性和它的体系结构。查看第一部分

  Nagios配置

  就像我们在第一部分讨论的一样,配置在成功部署Nagios中扮演着重要的角色。Nagios的配置结构在概念上相当直截了当,但需要特别注意一些细节。本质上,需要分层定义主机和服务,还要定义需运行何种检查和在检查失败后要进行的操作。

  这里是一个主机配置文件记录的例子:

  define host{

  host_name linux-server

  alias linux-server

  address 192.168.1.254

  check_command check-host-alive

  max_check_attempts 5

  contact_groups linux-admins

  notification_interval 30

  notification_period 24x7

  notification_options d,u,r

  }

  多数记录都是不解自明的。机器有名字(name),地址(address),需要运行的检查(check_command check-host-alive),以及在确定存在问题前,所要运行的最大检查次数。如果存在问题,根据上面的配置,linux-admins组将不分白天与黑客(24x7),在每个小时的第30分,会收到警告信息。因此为了这种方法,机器必须进行自身检查,以取包自己持续运行。

  这里还有一个服务器配置文件记录的例子:

  define service{

  host_name linux-server

  service_description check-disk-sda1

  check_command check-disk!/dev/sda1

  max_check_attempts 5

  normal_check_interval 5

  retry_check_interval 3

  check_period 24x7

  notification_interval 30

  notification_period 24x7

  notification_options w,c,r

  contact_groups linux-admins

  }

  同样,多数的记录条目都很容易就能够被理解。此服务器运行于在迁移个例子中定义的主机之上(服务必须有一个条目,指明他们所属于的服务器)。然后是服务的描述以及检查它是否持续正常运行的命令,还有需要运行的最大检查次数等等。

  一个明显的问题是,“现在我已经正在监控我的所有将建和软件,但我怎样才能够发现或找出发生了什么?”除了在每个配置记录(notification_options条目)中定义的问题警告提醒机制之外,Nagios还提供了大量可重写的CGI脚本来提供监视信息;本质上,可以提供一个系统信息的仪表板(dashboard)。这些脚本提供的有整个系统的状态、网络问题、趋势等等。在仪表板信息和警告提醒之间,Nagios允许你采取更加超前的方法来管理你的IT基础设施。

  使用Nagios的建议

  和所有的网络管理工具一样,Nagios需要进行相当复杂的设置,并且需要在运行时进行调整,以确保所提供的信息是正确的――信息既不要太多细节,也不能太过简单。这里有一些如何更好的使用Nagios的建议:

  l 开始就计划你需要监控何种信息,优先监控那些重要的资源。

  l 采用增量工作,最初只将最重要的资源置于管理之下,然后再去管理那些次重要的资源。举一个例子,在多数公司中,E-mail比FTP更加重要,因此首先请将E-mail放进Nagios的管理之中。增量工作能够减少执行一个网络管理系统的负担。

  l 计划一些规则的检查,以获取同种类型和等级的信息,尤其是在最初的几个月时间里。这些检查的目的是帮助你获得正确的系统配置,以便在以后的工作中,能够更好的利用这些基础的信息。

  l 充分利用Nagios社区的帮助。在Nagios社区中,存在大量的配置例子、仪表板(Dashboard)扩展和个性化的插件,这将帮助你很容易就实现了Nagios的持续正常运行。

  l 制作你的配置的文档。为你的配置文件做好注释,这将让你所监控管理的资源和所运行的插件更加清晰。同样,还要写一些有关Nagios执行的外部文档,以便其他人以后能够捡起你做的工作,并很好的列接你所进行的管理计划工作。

  Nagios是一个非常强大的工具,在它运行后,它能够让你的IT工作变得更加容易。而相比商业版的类似软件,它也具有低成本的优势。自然,最好的特点是由于它是开放源代码的软件,因此它提供了可以从整个Nagios社区的工作中活期的能力,你能够共享社区中的插件和经验。

  --------------------------------------------------------------------------------

  Bernard Golden是Navica Inc.公司的CEO。Navica Inc.是一家专注于开放源码软件的系统整合公司。Bernard Golden为SearchEnterpriseLinux.com撰写名为Golden's Rules的专栏,并且回答有关开放源码软件的问题。

 

原创粉丝点击