随着网络信息化应用项目的不断推进,许多公司或单位都已经积累了一定的网络硬件设备数量,而这些网络硬件设备根据不同的功能,会分散在不同的物理位置上,可能有些网络硬件设备是集中式管理,而部分网络硬件设备无法集中式管理,而只能采取分散性放置。这样会给计算机网络设备管理带来一定的困难,因为一旦网络设备出现故障,而不能准确及时有效的分析出网络故障所处的位置,对于建立在网络硬件设施基础之上的网络信息系统应用的影响是非常巨大的,所产生的后果也是非常严重的。所以,如何准确有效的获取这些网络基础设备的运行状态信息,方便快捷的监控网络硬件设备的运行状态已经是摆在网络管理人员面前,亟需解决的一个大问题。
OpenNMS 是网络管理系统Network Management System 的简称,是一种开源软件网络监视工具。可用来自动发现网络节点,监控网络服务,如 HTTP,DNS,SSH 等,当系统服务停止时,OpenNMS会依管理者所建立的规则寄出通知,告知运维人员网络障碍,事件汇整,自动执行对应动作,以及服务层级效能监控。 它可以支持SNMP网络管理协议,确保管理的扩展性,并且提供定制功能从而有利于管理范围的伸缩,流量和接点系统硬件使用情况需要在配置snmp.
目前,OpenNMS专注以下三个方面:
OpenNMS缺少足够的中文文档和本土服务支持,目前汉化还有很长的一段距离要走。 而且对技术要求很高,一般运维人员要想用好难度很大。在使用的过程中会出现不能启动现象,特别是关于SNMP问题的,一般需要关掉TRAP服务。
SugarNMS智和网管平台已经实现的包括设备拓扑、故障管理、性能管理、配置管理以及安全管理等基础网管功能,采用了设备统一接入模型,全面监控网络设备、主机/服务器、中间件应用、Web服务等。
1.自动发现:在自动发现的过程中可搜索到网络设备,并识别设备类型和厂商型号,生成设备的面板图或搜索设备资源,如:板卡、端口、CPU、内存、磁盘等,并发现设备之间的链路关系。
2.拓扑管理:以具象化拓扑图方式展示网络设备及其连接关系,用户可编辑。通过拓扑图可以对设备、设备资源、连接进行管理。
3.设备管理:通过拓扑视图中,用户可以方便的管理设备及其配置参数。
4.设备资源管理:支持在拓扑图的基础上,进一步展示设备细节,包括设备的物理组件,服务器上的服务(Web服务器、中间件应用服务、数据库服务器、邮件服务器)或者用户定义的其他监控对象。
5.连接管理:用户可以通过拓扑视图编辑连接,选择连接实时显示的性能数据项。
6.故障管理:可以收集多种故障信息,并及时的展现出来,通过设备、资源、连接可以查看到故障信息,也可以通过统一的故障管理界面管理故障。
7.性能管理:全面采集或接收设备资源的多种新能数据,通过曲线图、柱状图或表格等形象化的展示出来,按天、星期、月 查看性能指标变化。
8.安全管理:支持多种安全管理功能,如QOS安全策略、MAC-IP绑定、黑白名单以及准入控制等。
9.统计报表:支持多项数据的统计功能,让用户对网络有一个全面直观的了解放。支持将软件中的统计图表导出或打印,以便备份或对比查看。
Nagios是一个开源服务器/网络监控解决方案,为服务器、交换机、应用程序和服务提供完整的监控和报警机制。它有一个插件API,所以你可以扩展它的开箱即用的功能。Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。
Nagios的主要功能特点:
1.监视网络服务 (SMTP, POP3, HTTP, NNTP, PING等)
2.监视主机资源 (进程, 磁盘等)
3.简单的插件设计可以轻松扩展Nagios的监视功能
4.服务等监视的并发处理
5.错误通知功能 (通过email, pager, 或其他用户自定义方法)
6.可指定自定义的事件处理控制器
7.可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等
8.可以通过手机查看系统监控信息
collectd是一个守护(daemon)进程,用来收集系统性能和提供各种存储方式来存储不同值的机制。比如以RRD 文件形式。当系统运行和存储信息的时候,Collectd会周期性统计系统的相关统计信息。那些信息可以用来找到当前系统性能瓶颈。(如作为性能分析 performance analysis)和预测系统未来的load(如能力部署capacity planning).如果你需要美观的图形来显示您的数据,并且已经厌烦了内部解决方案,恭喜您,你找到了正确的地方。
collectd的强大之处在于其丰富的插件。在README文件中可以找到插件列表的描述。
插件主要分为两类:输入和输出。
输入插件:用于周期性的查询,通过某种方式查询到想要得到的当前值提交给守护进程。比如,CPU插件读取当前CPU计数器的各种参数(用户,系统,nice等等)并派发这些值到守护进程
输出插件:从守护进程中取值处理。一般应用会写到RRD文件和CSV文件,或者通过网络发送数据到远程盒子(a remote box)。
当然并非所有插件都可以这样划分。比如,网络插件(network plugin)可以发送(输出)与接收(输入)值。另外,该插件在初始化时启动了一个socket端口,接收到数据后就发送数据,这一点不同于其他输入插件。你可以理解为网络插件是异步工作,这样也很合理。
除此之外,还有日志插件(log)目前有两个:logfile插件和syslog插件。通过这些插件,collectd可以提供给用户解决方案的信息。你可以设置不同的log level。
从版本4.3.0开始collectd支持了监测功能。这一点通过用户定义阈值来实现。如果某个值超出了阈值范围,通知将会被派发到通知插件(notification plugin)。
Monit是一款功能非常丰富的进程、文件、目录和设备的监测软件,用于Unix平台。它可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种原因导致的软件错误。Monit是一个跨平台的用来监控Unix/linux系统(比如Linux、BSD、OSX、Solaris)的工具。Monit特别易于安装,而且非常轻量级,并且不依赖任何第三方程序、插件或者库。
用monit来监控进程,尤其对监控守护进程很有用,比如在系统启动时间启动的 /etc/init.d,比如sendmail,ssh,apache,mysql等
1、你可以用Monit来监控files,directories,文件系统,monit可以监控这些项目的改变,比如时间戳,校验和改变,文件大小改变,这样比较安全,比如你改变了文件的内容,那么它的md5或者sha1校验码不会改变。
2、monit可以监控到各种服务器的网络链接,本地或者远程,TCP还是UDP,Unix DomainSockets 都支持
3、monit可以用来在某些时候测试程序或者脚本,你可以测试程序的返回值,并以此为依据,进行一些必要的操作,比如执行某一个动作或者发送一个警报
4、Monit可以用来监控一般的系统资源,比如CPU使用,内存,以及负载均值(Load Acerage)
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结 构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。
cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
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还扩展了报表功能。
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux ,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000/2003/XP/Vista)等系统之上。
zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(trapping方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率,I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
每台计算机都运行一个收集和发送度量数据的名为 gmond 的守护进程。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得 Ganglia 可以实现良好的扩展。gmond 带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。所有这些数据多次收集会影响节点性能。网络中的 抖动”发生在大量小消息同时出现时,可以通过将节点时钟保持一致,来避免这个问题。
gmetad可以部署在集群内任一台节点或者通过网络连接到集群的独立主机,它通过单播路由的方式与gmond通信,收集区域内节点的状态信息,并以XML数据的形式,保存在数据库中。
Munin是一个功能强大的服务器监控软件,与传统的服务器状态监控软件Nagios、cacti所不同的是,Munin不需要PHP、MysqL,没有Web操作界面,更节省服务器资源,同时Munin又具备了自动采集数据并绘出图像出来,简单、方便、快捷。
Munin的主要优点就是它能够同时提供收集信息和分析信息的功能,这样你就无需在每个节点上安装一个web服务器,并且详细信息页面底部的附加信息能够帮助你获取一些重要数据的统计信息。
功能主要为收集和分析功能,这可以帮助你收集多个服务器信息并在一个中央服务器上分析所有收集到的信息,通过apt源或者yum源使其安装和更新都相当简单。当你访问http://localhost/munin时,Munin会显示一张概览图向你展示所有连接到的节点,包括到节点的具体功能,如磁盘、网络、NFS和进程。点击节点名称会显示两行的图表,每一行都会在左边显示每日统计信息,右边显示每周统计信息,点击这些图表能够提供显示某日、某月的详细信息页面。在这项细节信息页面的底部,显示的是关于数据的更加详细的信息,包括不规则活动通知等。
Monit是一款运行于应用层功能非常丰富的用于对系统中的进程、文件、目录、以及设备等进行监视和管理的工具。Monit 包含一个内嵌的 HTTPS Web 界面,可以使用浏览器方便地查看 Monit 所监视的服务器。Monit 对管理员来说可谓神器也。Monit可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种原因导致的软件错误。 Nagios 也就是在监控,而 Monit 不但本地监控,远程服务监控。可以做到服务就永远都能死而复生”,是服务一直在线。