原文地址:http://server.zol.com.cn/242/2422737_all.html#p2422737
“7·23”甬温线特别重大铁路交通事故发生已经有十余天了,国务院事故调查组正在紧锣密鼓地展开调查事故的原因。7月28日,事故调查组组长、国家安全监管总局局长骆琳在会议上也曾表示,调查结果争取在9月中旬公布。在事故原因未能正式调查清楚之前,很业内人士以及媒体都通过分析,提出了自己的观点。无论,业界分析的原因是否与调查结果相同或想以,有一点是共识我们可以首先提出来:动车运行的安全性仍然需要进一步,遭遇到各种突发事件,我们的应对能力仍然显得不足。
“7·23”甬温线特别重大铁路交通事故示意图(图片来自新华网)
或许这样的话很多人会说是马后炮,但是,我们希望通过这个事件,能够让我们对自己所处行业的安全问题引以为戒。
对于很多企业来说,为了保证IT系统能够正常运行,很多企业都有选择一种系统监控软件进行实时或者远程监控。下面,编者搜集了一些切实可用的系统监控软件,希望能够帮助企业IT系统稳定、安全地运行。
首先,监视系统Nagios。Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。
具体来看,Nagios的主要功能有:监视网络服务 (SMTP,POP3,HTTP,NNTP,PING等),监视主机资源(进程,磁盘等),简单的插件设计可以轻松扩展Nagios的监视功能,服务等监视的并发处理,错误通知功能(通过email,pager,或其他用户自定义方法),可指定自定义的事件处理控制器,可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等,也可以通过手机查看系统监控信息。
分布式监控系统Ganglia
Ganglia是一个跨平台可扩展的,高 性能计算系统下的分布式监控系统,如集群和网格。它是基于分层设计,它使用广泛的技术,如XML数据代表,便携数据传输,RRDtool用于数据存储和可 视化。它利用精心设计的数据结构和算法实现每节点间并发非常低的。它已移植到广泛的操作系统和处理器架构上,目前在世界各地成千上万的集群正在使用。它已 被用来连结大学校园和世界各地,可以处理2000节点的规模。
系统监控工具NetXMS
NetXMS是一款全新的发展迅速的系统监控工具,在GPL2许可下发布。它可用于监测整个IT基础设施,从支持SNMP的硬件(如交换机和路由器)到您的服务器或者是应用程序。NetXMS是一个非常可靠和强大的监测系统,使您提高网络可用性和服务水平。
NetXMS具有三层结构,包括信息收集、监测代理(无论是我们自己的高性能的代理或SNMP代理),并送交监测服务器的处理和储存。网络管理员可以访问收集到的数据使用的是Windows为基础的管理控制台,网络界面或管理控制台。
在设计上具有灵活性和可扩展性的考虑,NetXMS内容广泛的支持平台,让你自由选择平台。NetXMS服务器的核心系统目前适用于WindowsNT/2000/2003/XP,Linux,Solaris和FreeBSD的。
高性能的模块化监测代理商可为同一平台以及为OpenBSD系统,NetBSD的,的NetWare,HP-UX和AIX操作系统。NetXMS目前支持以下数据库:MySQL和PostgreSQL数据库,Microsoft SQL Server和Oracle。由于采用模块化结构,添加其他数据库的支持之需要短短几天时间。
轻量级系统监控Conky
Conky是一个X系统下的免费的,重量轻,系统监控的,即任何资料都能显示在您的桌面上。它可运行在Linux和BSD上。
轻量级系统监控Conky具有的功能包括,(1)很多的操作系统信息(系统名 ,正常运行时间,CPU使用率,内存使用率,磁盘使用情况,进程的统计资料,以及网络监控等到);(2)基于IMAP和POP3支持;(3)支持许多流行的音乐播放器(XMMS2,BMPx等)。
自动故障排除和监控的GlassBox
GlassBox是一个自动故障排除和监控的应用程序,通过一次点击诊断常见的问题。无论是在生产或测试,你都可以拖放到您现有的Java应用服务器(Tomcat, JBoss, WebSphere, WebLogic)中。它故障排除的知识很简单,任何人都可以找出失败的原因。简单易懂的英语,你不再需要涉及日志和图表。
GlassBox具体包含的功能有,对正在发生的事情捕捉更多的方面(例如,堆栈跟踪和参数),尤其是异常情况;监测最高级别的资源信息(例如,总共花费的时间,要求服务或连接到数据库);监测更多的业务,资源,如JMS和EJB组件,XML处理;处理分布式监测,跟踪信息,集群应用及相关资料分发;利用Java 5的管理信息,如CPU的时间或线程的具体统计数字;使用应用服务器JMX统计信息,如线程池;捕捉历史和趋势,持久存储和报告;利用JMX提供警示和揭露统计摘要;自适应发现相关参数跟踪(例如,未知的数据库查询或Servlet的请求)。
为更高级别的数据库和服务访问框架提供资源监测(如Hibernate,TopLink,持久性EJB等);允许不同的数据量抽样抓获;监控系统事件,如Web应用程序404错误的请求;提供不同程度的统计汇总(例如,直方图);监测商业活动,如客户购买或放弃的购物车。
collectd是一个守护(daemon)进程,用来收集系统性能和提供各种存储方式来存储不同值的机制。比如以RRD文件形式。
当系统运行和存储信息的时候,Collectd会周期性统计系统的相关统计信息。那些信息可以用来找到当前系统性能瓶颈。(如作为性能分析 performance analysis)和预测系统未来的load(如能力部署capacity planning).如果你需要美观的图形来显示您的数据,并且已经厌烦了内部解决方案,你找到了正确的地方。
一般来说,一图胜过千言,所以这里显示了某个系统在过去60分钟内的CPU利用率图形。
在互联网上还有其他的免费,开源的项目类似于collectd的项目。为什么你要选择collectd呢?和其他项目相比,我们觉得collectd有一些主要的特点:第一,它完全是由C语言编写,故性能很高,可移植性好,它允许运行在系统没有脚本语言支持或者cron daemon的系统上,比如嵌入式系统。
同时,它包含优化以及处理成百上千种数据集的新特性。collectd包含有超过70多种插件,其中有标准的case到非常特殊和高级的专题。同时,collectd提供强大的网络联网特性,它能以多种方式来扩充。最后,collectd开发及时同时文档支持也是非常好的。
虽然collectd能够很大程度满足您的管理需求,但是它还是存在一些不足:它本身不能生成图形。虽然它能写RRD文件,但是它不能从这些文件生成图形。在contrib/ 目录下包含简单的脚本,可以看看kcollectd,一个X window前端和drraw,一个非常通用的解决方案。
绝世好工具OpenNMS
OpenNMS是一个企业级基于Java/XML的分布式网络和系统监控管理平台。OpenNMS是你管理网络的绝好工具,它能够显示你网络中各中终端和服务器的状态和配置,为你方便地管理网络提供有效的信息。
Opsview是一个企业级的网络、服务器和应用程序监控工具,设计为可伸缩、灵活和易用的。可跟一些常用的监控系统做集成,例如Nagios Core、Nagvis、Net-SNMP 和RRDTool等。监控服务运行于Linux 和 Solaris 10上,可监控各种系统的服务器,包括Windows。
开源监控软件Pandora FMS
Pandora FMS是一个开源的应用程序,用来监测网站的各种活动。如果一个网站超额或当机,如果网站内容改变,硬盘或CPU被远程服务调用时(通过SNMP或TCP/IP),以及其它情况。
Pandora FMS可以运行于任何操作系统, 获取数据并发送到服务器。你可以收到实时的监测报告,并发送到你指定的邮箱。它也可以通过e-mail,SMS或Jabber(MSN, GTalk等)发到报告。
开源安全信息管理系统OSSIM
OSSIM即开源安全信息管理系统(OPEN SOURCE SECURITY INFORMATION MANAGEMENT)是目前一个非常流行和完整的开源安全架构体系。OSSIM通过将开源产品进行集成,从而提供一种能够实现安全监控功能的基础平台。 它的目的是提供一种集中式、有组织的,能够更好地进行监测和显示的框架式系统。
OSSIM明确定位为一个集成解决方案,其目标并不是要开发一个新的功能,而是利用丰富的、强大的各种程序(包括Snort、Rrd、Nmap、 Nessus以及Ntop等开源系统安全软件)。在一个保留他们原有功能和作用的开放式架构体系环境下,将他们集成起来。而OSSIM项目的核心工作在于 负责集成和关联各种产品提供的信息,同时进行相关功能的整合。由于开源项目的优点,这些工具已经是久经考验,同时也经过全方位测试、可靠的工具。
监控系统状态Monitorix工具
Monitorix是一套可以监控系统状态的工具,可监控的项目非常得多,你也可以自行设定要监控的服务,预设就可以分析 CPU与记忆体使用率、磁碟存取使用率(Disk I/O Usage)、网络使用率(Network traffic and usage)、各服务使用需求(network services demand)、使用者登入的狀況等。下面是监控界面截图:
监控工具JavaMelody
JavaMelody能够监测Java或Java EE应用程序服务器,并以图表的方式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、 Guice)的执行数量,平均执行时间,错误百分比等。图表可以按天,周,月,年或自定义时间段查看。
小结:通过对于以上系统监控软件的体验,编者发现这些软件可以分为开源软件,也有企业开发的。同时,它们大多开发了简单直观的操作界面,负责对企业TI系统运行情况的监控,也能够自动报错。当然,有些软件因为是开源的,所以,特定某个功能仍然需要企业用户自己二次开发。
有了这些承载企业业务的IT系统运行,可以预防IT系统运行过程中万无一失。所以,系统监控软件能够在一定程度上帮助企业化解日常运行过程中的难题:包括IT系统崩溃,以及一些异常现象等。