免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1125 | 回复: 0
打印 上一主题 下一主题

网络安全稳定运行 开源监控工具不可少 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-10 15:52 |只看该作者 |倒序浏览
   在房地产领域,至理名言是地段、地段、地段!而在网络和服务器管理领域,至理名言是可见性、可见性、可见性!如果你不知道自己的网络和服务器每时每刻在做什么,无异于瞎搞一气。迟早,你会遭遇灾难。
   幸好,现在有许多好的工具,这些商用工具和开源工具可以提供迫切需要的可见性,让你了解自己的网络环境。因为免费的好东西总是胜过昂贵的好东西,我特意列
出了个人珍藏的几款开源工具,它们在规模不一的网络上一再证明了自身的价值。从网络和服务器监测、趋势分析到图形显示,甚至交换机和路由器配置备份,这些
实用工具将帮助你渡过难关。
  Cacti的前身是多路由器流量图示器(MRTG)。早在上世纪90年代的繁荣时期,瑞士软件开发人员Tobi
Oetiker决定编写一款简单的图形显示工具,该工具基于非常适合显示路由器吞吐量的轮循数据库模式(round-robin database
scheme)。MRTG随后衍生出了RRDTool,这个独立的轮循数据库和图示解决方案如今应用于数量众多的开源工具当中。Cacti是目前开源网络
图示领域的领头羊,它把MRTG的最初目标带到了全新的水平。
  Cacti是一款Linux/Windows、Apache、MySQL和Perl/PHP/Python(LAMP/WAMP)应用程序,它为几乎各种数据提供了一套完整的图示框架。在我安装的比较高级的一些Cacti程序中,我可以收集各个方面的数据:从数据中心冷却装置的回流温度、到存储设备卷的闲
置空间,直到FLEXlm许可证的使用率。如果某个设备或服务返回数字数据,它还可以并入到Cacti中。还有模板可用于监测各种各样的设备,从
Linux和Windows服务器,到思科路由器和交换机;凡是能识别SNMP协议的设备都能监测。还有多组汇集型模板用于监测种类更广泛的软硬件。我为
Cacti编写了几个数据模板,可以从Cacti项目网站下载,包括FLEXlm监测代码。
   Cacti的默认收集方法是简单网络管理协议(SNMP),但本地的Perl或PHP脚本同样可以使用。框架能够灵活地把数据集合和显示图形分成不同对
象,那样便于重新处理、重新组织现有数据,由不同界面来显示。不但如此,你还可以通过点击拖动操作,轻松选择图形的特定时帧和区域。在我安装的部分程序
中,可以监测好几年前的数据,这对于确定网络设备或服务器的当前运行状况是不是完全不规则还是实际上有一定规律性大有帮助。
   如果使用面向Cacti的PHP Network
Weathermap插件,你可以轻松创建显示网络设备之间链路利用率的实时网络图,另外还有许多图形:把鼠标移到网络链路说明内容的上方,图形就会显
示。在我部署了Cacti的许多地方,这些网络图最后在挂在墙上的42英寸液晶显示器上全天候不间断更新,让所有IT人员一眼就能了解网络利用率和链路状
况方面的最新情况。
   Cacti编写极其完备、界面简洁,具有出众的可定制性。无论在开源领域还是在商业领域,这款工具确实找不到对手。
   Nagios是一个极其成熟的网络监测框架,多年来一直处于积极开发之中。它用C语言编写而成,几乎具有系统和网络管理员可能要求监测软件包具有的各项功能。Web图形用户界面(GUI)简洁而直观,后端部分极其可靠而稳定。
   与Cacti一样,Nagios也有一个非常活跃的社区在支持;还有适用于一大批软硬件的插件。从基本的ping测试,到与WebInject
等插件进行集成,你可以不断监测服务器、服务、网络链路、基本上使用IP协议的任何设备的状况。我使用Nagios来监测服务器的磁盘空间、内存和CPU
利用率、FLEXlm许可证的使用率、服务器排气口温度,以及广域网和互联网的链路时延。我甚至用它来确保Web服务器不但响应http查询,还返回所需
页面、没有遭到劫持。
   要是没有通知功能,网络和服务器监测工具显然是不完整的。Nagios有一个真正的电子邮件/短信通知引擎,而逐级上报布局可用来做出通知谁、何时通知的
智能决策;如果正确使用这项特性,可以免除许多麻烦。另外,我把Nagios通知功能与即时通讯软件Jabber集成起来,那样一旦出现了异常情况,我会
收到Nagios发来的详细说明问题的即时讯息。出现问题时,Web图形用户界面可以用来迅速暂停通知或确认问题收到;甚至可以记录管理员输入的注释。

   似乎嫌这功能还不够,图示功能还会显示所有的被监测设备,以合理方式显示了它们各自在网络上的位置,并且对出现的各个问题标以不同颜色。
   Nagios的不足在于配置方面。最好通过命令行来进行配置,所以对新手来说难度相当大。与许多工具一样,Nagios的功能也极其丰富,不过要利用其中一些部分,你先得花一番工夫。
  但你也别让困难给吓倒了――Nagios屡屡帮了我的忙,我记不得有多少回了。这个工具为网络众多不同方面提供的预警系统怎么强调都不过分,非常值得你花时间去好好研究它。我编写了几个Nagios插件,其中有个插件可以监测众多APC硬件,我已经多次得到了回报。
   如果你有过这样的经历:通过远程登录服务系统登录至交换机、查询介质访问控制(MAC)地址,从而查找网络上的某个设备,或者只想知道某个设备的实际位置(可能更重要的是,某个设备的广义位置),那么你应当好好看一看NeDi。
   NeDi是一款LAMP应用程序,会经常监测网络交换机上的MAC地址和地址解析协议(ARP)表,把所发现的每个设备都登记到本地数据库中。
  之后,你可以登录到NeDi的Web GUI,进行一番搜索,根据MAC地址、IP地址或DNS名字确定任何设备的交换机和交换机名称。
   
  另外,NeDi可以从所监测到的每个网络设备收集尽可能详细的信息,搜集序列号、固件和软件版本、当前温度和模块配置等信息。甚至可以使用NeDi把失踪或被偷设备的MAC地址标示出来;NeDi会监测它们会不会重新出现在网络上。
  配置简单而直观,单一的配置文件具有相当强大的可定制性,包括能够根据正则表达式或网络边界定义,跳过某些设备,不必监测。如果网络由无法发现的边界所分
隔――就像多协议标记交换(MPLS)网络那样,你甚至还可以添加所要查询设备的种子列表。NeDi通常使用思科发现协议或链路层发现协议,能够发现在网
络上巡查过程中新发现的交换机和路由器,然后连接到这些设备,搜集相关信息。一旦完成了初始配置的设定,执行发现过程相当快速,可以在设定的间隔时间从后
台进程cron来运行。
  NeDi还在一定程度上与Cacti进行了集成;如果为安装的实用Cacti程序提供了证书,设备发现功能就会连接到该设备的相关Cacti图形。
  Ntop可以说是该项目的作者Luca Deri奇思妙想的产物。Ntop是一流的网络流量监测工具,配备简洁的Web GUI。它用C语言编写而成,完全是独立的。运行经过配置的单一进程,即可查看特定的网络界面。
  Ntop提供了一目了然的图形和表格,它们显示了当前及以往的网络流量,包括特定事务的协议、源地、目的地和历史,以及任何一端的主机。Ntop利用了之前提到的RRDTool,提供了数量众多的网络利用率图形(包括趋势图),并且集成了面向一大批附件(比如NetFlow和sFlow监测程序)的插件框架。
  Ntop甚至还有一个远程过程调用(RPC)框架,可用来提供多门语言自带的数据组。比方说,如果你想以一致的方式查询来自Perl或PHP的某一组数据包捕获数据,这个过程跟查询在过程调用时从Ntop导出来的本地数据组一样简单。我发现这项功能在许多场合下特别有用。
  Ntop的主要用途之一就是流量现场检查。虽然我使用的其中一个PHP
Weathermap突然以红色显示了一批处于活动状态的网络链路,告诉我这些链路的利用率超过了85%,但没有表明其中原因。通过切换至监测网段的
Ntop进程,我迅速获得了显示哪些设备在大量占用资源的报告(可以每分钟更新内容),马上知道哪些主机在耗用资源、它们在生成什么流量。
  这种可见性非常宝贵,而且很容易获得。实际上,可以在交换机处经过配置、可显示另一个端口或虚拟局域网的任何界面上运行Ntop。这正是我们所需要的。
  Pancho是一个简单的Perl脚本,可适用于思科路由器和交换机,并且获取运行配置的当前副本。在间隔时间运行时,它让管理员可以立即备份路由器和交换机的配置;要是出现了问题、又没有人想到记下边缘路由器的某些特定配置信息,这项功能特别有用。
   自2005年以来,Pancho就没有在积极开发之中,但到目前为止这不成问题。实际上,除非思科互联网操作系统(ISO)出现一些根本变化,Pancho最近一次发布的最新版本在今后几年完全能够使用。
  Pancho确实没什么更多可以介绍的。只要五分钟就能配置好,之后即可使用;只要你妥善保管了下载的配置,面临的风险就非常小。简而言之,要是不使用Pancho,才会面临更大风险。
  Snort IDS作为一款开源工具存在至今已有十个年头了。实际上,它非常成功,已发展成为一款独立生存的商业工具,得到了Sourcefire公司的支持;不过开源版本仍处于积极开发之中。
  无论是商业版还是开源版,Snort都是一款功能齐全的入侵检测系统,可以监测及登记网络流量,并将该流量与预定义规则进行比对,监测网段有无恶意活动。
实际上,它的功能远不止这些,因为可以编写规则、把符合任何标准的流量标示出来。如果你想检查离开网络、符合某个内部产品代码名称的所有IM流量,这完全
可以做到;另外还有可监测端口扫描和病毒活动等方面的标准规则。
  如果结合基本分析和安全引擎(BASE)Web
GUI,Snort成了功能更加强大的工具。Snort经过配置、登录到MySQL后,BASE就能获取警报触发器的报告,并且根据源地或目的地IP地
址、TCP或UDP端口号以及警报类型,显示流量的异常情况。另外,如果在网络上多个部位布有多个Snort探测器,那么它们都能登录到同一个数据
库,BASE就能综合任何一个或所有这些探测器的监测结果来生成报告。
  最好的一方面是,Snort探测器没有特别的要求。在大多数网络上,它很容易安装在低端台式机或服务器级别的系统上,安装在哪个系统上要看流量大小。基本
规则集可从Sourcefire(需要登记)免费获取;规则更新便于管理。如果你想选用得到厂商支持的解决方案,可以向Sourcefire购买正式的商
业版本。不管怎样,Snort都能迅速成为任何网络的一个重要补充。
  IT管理员往往认为,自己不能跳出既定的框框。无论是自定义的应用程序,还是某个“未得到厂商支持”的硬件,许多人认为要是监测工具处理不了,那就无法处理。事实绝非如此;只要花点心思,几乎可以监测及登记任何对象,并且提高其可见性。
  一个例子就是使用数据库后端的自定义应用程序,比如网店或内部财务应用程序。管理人员希望看到清晰的图形和图表,可以描述采用某种格式的使用数据。如果你
已经在使用Cacti之类的工具,有几个办法可以并入这种数据,比如创建简单的Perl或PHP脚本,对数据库执行查询,然后把计数返回给
Cacti;或者甚至使用专用的管理信息库(MIB),编写针对数据库服务器的SNMP调用。可以完成这项工作,而且通常很容易。
  对于未得到支持的硬件,只要它能识别SNMP协议,你只要稍稍研究一下,极有可能获取所需的数据。一旦你有了可供查询的相应MIB,随后可以使用该信息来
编写监测设备的Nagios插件。一个例子就是我为APC硬件编写的几个Nagios插件――硬件安装完后,这些插件并不存在;但我想要集中监测这些设
备。于是我编写了一个简短的插件来监测配电装置(PDU)的电流大小、监测并排式冷却装置的气流和机架进气口温度,等等。如今,我不但通过
Cacti查看图形中的数据,Nagios还能监测同样的数据,查找异常情况;要是数字不对头,还会通过IM、电子邮件甚至短信向我汇报。
  让大多数这些工具运行起来不是很难。在刚装好的CentOS设备上,你只要安装来自RPMForge的存储库RPM,然后输入:yum install
nagios ntop
cacti,那么Nagios、Ntop和Cacti就会下载及安装。这些工具配置起来可能需要一段时间,长短取决于基础架构的规模,不过让它们开始运行
起来很简单。至少,值得试一下。
  不管你使用哪些工具来监测自己的基础架构,这些工具的存在实际上相当于为你提供了另一个IT管理员――只不过这个IT管理员未必能够解决问题,但能全天候
不间断地监测各个方面。完全有 必要在事先投入时间,不管你选择了哪一个工具。一定要在另一台服务器上运行一小批独立的监测工具,留意一下主监测服务器。
这时候,总是有必要确保监测工具在你的监视之下。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/69737/showart_1961014.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP