【IT168 技术】从设备发现到系统、网络和流量可视性,这些免费开源工具非常实用。在房地产的世界里,重点永远是、、,而在网络和服务器世界,重点则是可视性、可视性、可视性,如果你不知道你的网络和服务器在每天每秒正在做什么,你很可能会出问题。
幸运的是,这里有很多好工具(商业和开源工具)来帮助你满足需求。好用和免费总是胜过好用和昂贵,在本文中我们提供了一些很好用的开源工具,这些工具适合各种规模的网络。从网络和服务器到趋势、图形,甚至是交换和由器配置备份,这些工具都可以帮你解决问题。
首先,最开始出现的是MRTG。早在20世纪90年代,Tobi Oetiker认为应该编写简单的图形工具来构建轮叫调度(round-robin)数据库机制,以用于由器吞吐量。MRTG随后的是RRD工具,这是一个自给式轮询数据库和图形解决方案,目前正用于非常多的开源工具中。而Cacti则是目前的开源网络图形标准工具,它将MRTG的最初目标提升到全新的水平。
Cacti是一个LAMP应用程序,它为几乎所有类型的数据提供完整的图形架构。在笔者的某些更高级的Cacti安装中,笔者选择了各种数据,从数据中心冷却装置的流体回流温度,到文件管理器卷的空间,到FLEXlm许可证利用率。如果设备或服务返回数值数据,可能会被集成到Cacti。还有模版可以各种设备,从Linux到Windows服务器到思科由器和交换机,基本上是使用SNMP的所有设备。还有用于更广泛的硬件和软件的分布式模版集。
Cacti的默认收集方法是SNMP,本地Perl或者PHP脚本也可以使用。该框架巧妙地分离数据采集和图形为离散的实例,所以我们很容易重新组织现有数据为不同的显示。此外,你可以轻松地通过点击和拖动来选择特定时间框架和图形部分。在某些安装中,我有些几年前的数据,这些数据无法说明网络设备或服务器的当前状况是否为异常,或者经常发生。
使用针对Cacti的PHP Network Weathermap插件,你可以轻松地创建实时网络地图,显示网络设备之间的链利用率,当你悬停在网络链接的描述时会出现图标。在部署Cacti的很多,这些地图会清楚地显示在安装在高墙上的42寸液晶显示器,全天候显示,让IT人员清楚了解网络利用率和链状况。
Cacti是广泛的性能图表和趋势工具,可以用于几乎任何可的指标,并绘制的图表上。它还是无限可定制,这意味着它可以非常复杂。
Nagios是成熟的网络架构,已经使用多年。Nagios使用C语言编写,它提供系统和网络管理员可以在软件包找到的一切功能。这个Web GUI快速而直观,并且,后端也非常强大。
与Cacti一样,Nagios有着非常活跃的社区支持,并且有针对各种硬件和软件的插件。从基本的ping测试到整合WebInject等插件,你可以不断服务器、服务、网络链接等的状况。我使用Nagios来服务器磁盘空间、RAM和CPU利用率、FLEXlm授用率、服务器排气温度,以及WAN和互联网链接延迟性。它可以用来确保Web服务器不仅响应HTTP查询,而且他们还会返回预期的页面,而没有被拦截。
没有通知的网络和服务器显然是不完整的。Nagios具有全面的邮件/短信通知引擎以及升级格局,可以用来对通知谁以及何时通知作出明智的决策,如果利用得当的话,这可以节省很多时间。此外,我整合了Nagios通知与Jabber,这就引出了例外情况,我会从Nagios收到介绍问题的IM(除了SMS或邮件),这取决于该对象的升级设置。这个Web GUI可以用来快速停止通知或者确认问题,甚至可以记录管理员输入的笔记。
Nagios的不足之处在于配置。该配置最好通过命令行来完成,并需要新手花很多时间来学习,而已经熟悉标准Linux/Unix配置文件的人员可能觉得“宾至如归”。与很多工具一样,Nagios的功能非常强大,但为之需要付出很多努力。
不要让复杂性阻碍了你,Nagios为笔者节省了很多麻烦。这种工具提供的早期预警系统的优势不容忽视,这值得你花时间和精力来部署。
Icinga最开始是作为Nagios的分支,但最近被改写为Icinga 2。这两种版本都正在积极开发中,现在已经可用,Icinga 1.x向后兼容Nagios插件和配置。Icinga 2已经被开发为更小更时尚,它提供分布式和多线程框架,这是Nagios和Icinga 1中没有的。你可以从Nagios迁移到Icinga 1,以及从Icinga 1到Icinga 2。
与Nagios一样,Icinga可以用来任何使用IP通信的设备,正如你使用SNMP和定制插件及附件一样。
有几个用于Icinga的Web用户界面,与Nagios的主要区别是配置,其配置可以通过web用户界面来进行,而不需要通过配置文件。对于喜欢管理配置而不是命令行的人,这是很好的优势。
Icinga整合了各种图形和软件包,例如PNPP4Nagios、inGraph以及Graphite,提供的性能可视化。Icinga还扩展了报表功能。
如果你曾经通过远程登录到交换机以及MAC地址查找搜索网络中的设备,或者你只是希望知道某个设备的物理(或者,也许更重要的是,它曾经的),那么,你可以好好看看NeDi。
NeDi是一个LAMP应用程序,它通常查看MAC地址以及网络交换机上的ARP表,并将其在本地数据库发现的每个设备进行登记。NeDi并不是很出名,但它常方便的工具,特别是在设备不断移动的。
你可以登录到NeDi Web GUI,并通过MAC地址、IP地址或者DNS名称来搜索交换机、交换机端口或者无线AP。NeDi从每台网络设备尽可能多地收集信息,包括序列号、固件和软件版本、当前模版、模块化配置等。你甚至可以使用来标记丢失或被盗的设备的MAC地址。如果它们再次出现在网络,NeDi会让你知道。
配置很简单,其中一个简单配置文件允许大量定制化,包括基于正则表达式或网络边界定义来跳过设备的能力。如果网络被不可发现的边界隔开(例如MPLS网络),你甚至可以包含设备的种子列表。NeDi通常使用思科协议(Cisco Discovery Protocol)或者链层发现协议(Link Layer Discovery Protocol),发现新的交换机以及由器,然后连接它们来收集它们的信息。在设置好初始配置后,运行发现相对较快。
NeDi与Cacti整合了一定程度,如果提供登录凭证来执行可行的Cacti安装,设备发现会连接到相关的Cacti图表。
Ntop(现在的“下一代”被称为Ntopng)已经走过了漫长的十年的道。这个工具可以帮助你网络流量,并连接到快速简单的Web图形用户界面。它使用C语言编写,完全。你运行配置为观察特定网络接口的单个程序,就可以了。
Ntop提供了简单易懂的图表和表格,来显示当前和过去的网络流量,包括协议、源、目的地以及特定交易的历史,以及两端的主机。你还会发现广泛的网络利用率图表、实时地图以及趋势,以及针对各种附加件(例如NetFlow和sFlow)的插件框架。推背图原文甚至还有Nbox,嵌入到Ntop的硬件器。
Ntop甚至继承了轻量级Lua API框架,可以用来通过脚本语言来支持扩展。Ntop还可以存储主机数据在RRD文件中,以支持持久性数据采集。
Ntopng最方便的用途之一是现场流量检查。当我的某个Cacti PHP Weathermap突然显示红色的网络链接集,我知道这些链接超过了85%的利用率,但我不知道为什么。通过切换到监测网络网段的Ntopng程序,我可以查看最高用量者的每分钟的报表,并立即知道哪个主机在占用流量。
这种可见性非常有价值。从本质上讲,你可以在被配置为交换机级别的任何端口运行Ntopng,来任何端口或者VLAN。
Zabbix是全面的网络和系统工具,它集成了多个功能到单个基于web的控制台。它可以配置为和收集来自各种服务器和网络设备的数据,对每个对象提供服务和性能。
Zabbix可用于在系统运行的代理,它也可以使用SNMP或者其他方法(例如对服务SMTP和HTTP的远程检查)运行无代理。它支持VMware和其他虚拟化管理程序,并生成关于管理程序性能和活动的数据。还可以Java应用程序服务器、web服务和数据库。
主机可以手动添加或者通过自动发现过程添加。一组广泛的默认模版集适用于最常见的用例,例如Linux、FreeBSD和Windows服务器;知名服务(例如SMTP和HTTP),以及ICMP和IPMI设备可进行详细的硬件。此外,使用Perl、Python或几乎任何语言编写的自定义检查也可以整合到Zabbix。
Zabbix还提供可定制的仪表板以及Web用户界面显示来突显你最关键的组件。通知和升级可以作为自定义操作应用到主机或主机组。你还可以配置操作为触发远程命令,当观察到某个事件标准,可以在被的主机运行脚本。
Zabbix会以图表形式显示性能数据,例如网络吞吐量和CPU利用率,并以可定制的显示方式收集它们。此外,Zabbix支持定制地图、屏幕以及幻灯片,显示被设备的当前状态。
Zabbix最初的部署很复杂,但谨慎使用模版和自动发现可以缓解集成的麻烦。除了可安装的工具包,Zabbix还可以作为几种流行管理程序的虚拟设备。
Observium是一个网络和主机器,它可以扫描地址范围使用通用SNMP登录凭证来系统。作为LAMP应用程序,Observium比较容易设置和配置,需要安装常见的Apache、PHP、MySQL、数据库创建、Apache配置等。它被设计为安装作为其自己的服务器,包含专用URL,而不是隶属于更大的web树。
你可以登录到图形用户界面,并开始添加主机和网络,以及自动发现范围和SNMP数据,让Observium在整个网络爬行,并收集每个系统的数据。Observium还可以通过CDP、LLDP或者FDP发现网络设备,主机代理可以部署到Linux系统来帮助收集数据。
所有这些数据显示在易于的用户界面,提供大量统计数据、图表和图形。这包括ping和SNMP响应时间,以及IP输出、分片、数据包数量等的图表。根据设备的不同,这些数据可以用于每个端口,包括模块化设备。
对于服务器来说,Observium会显示CPU、RAM、存储、swap、温度和事件日志状态。你还可以整合数据收集和服务的性能图表,包括Apache、MySQL、BIND、Memcached、Postfix等。
Observium作为VM很好用,这样可以迅速成为服务器和网络状态信息的工具。这个工具可以给各种规模的网络带来自动发现和图表功能。
无论我们面对的是定制应用程序或“不受支持”的硬件,我们很多人都认为,如果工具无法立即处理它,它就不能被处理。但其实并不是这么回事,只要付出一点劳动,几乎什么都可以、登记和更具可视性。
其中一个例子可能是具有数据库后端的自定义应用程序,例如web商店或内部财务应用程序。管理层希望看到漂亮的图形和图表来描述数据的使用情况。例如,如果你已经在使用Cacti,你有几种方法可以构建这种图表,例如构建简单的Perl或者PHP脚本来在数据库运行查询,并传输计数到Cacti,或者甚至SNMP调用到使用私有MIB(管理信息库)的数据库服务器。这可以做到,并且通常很容易完成。
如果是不受支持的硬件,只要它使用SNMP,你都可以获取你需要的数据,但可能需要一点研究。只要你有正确的MIB来查询,你然后可以使用这些信息来编写或修改插件来收集这些数据。在很多情况下,你甚至可以使用标准SNMP整合你的云服务到这种中,或者通过云供应商提供的API。只是因为你有云服务并不意味着你应该将你的所有交给云提供商。因为供应商可能不像你一样了解你的应用程序和服务堆栈。
发挥这些工具的最大优势并不是很大的挑战,这些工具通常有针对最流行的Linux发行版的数据包可供下载。在某些情况下,它们可能被预先配置为虚拟服务器。配置和调整这些工具可能需要一些时间,但最初并不是很困难。最起码,这些工具值得尝试。