1、zabbix
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,,AIX,Free BSD,Open BSD,OS X等平台上。
1.1、安装使用
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主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
1.2、特点
zabbix的主要特点:
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
等等
1.3、Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视。
2、cacti
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
2.1、简介
Cacti是通过snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。软件Cacti的发展是基于让RRDTool使用者更方便使用该软件,除了基本的Snmp流量跟系统资讯监控外,Cacti也可外挂Scripts及加上Templates来作出各式各样的监控图。
cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。关于RRDTool的知识请参阅RRDTool教学。
2相关知识
如果要自定义监测的指标还需要一定的shell脚本或xml语言能力。如果想帮助cacti的开发,则需要通晓php脚本。
3、Ganglia
Ganglia是伯克利开发的一个集群监控软件。可以监视和显示集群中的节点的各种状态信息,比如如:cpu 、mem、硬盘利用率,I/O负载、网络流量情况等,同时可以将历史数据以曲线方式通过php页面呈现。而ganglia又依赖于一个web服务器用来显示集群状态,用rrdtool来存储数据和生成曲线图,需要xml解析因此需要expat,配置文件解析需要libconfuse。安装apche的httpd还需要支持php4以上,同时还有一些依赖软件。
在redhat可以通过如下命令安装这些依赖软件:
yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpmbuild glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel
libconfuse可以通过如下命令得到:
wget http://download.fedora.redhat.com/pub/epel/5/x86_64/libconfuse-2.5-4.el5.x86_64.rpm
wget http://download.fedora.redhat.com/pub/epel/5/x86_64/libconfuse-devel-2.5-4.el5.x86_64.rpm
4、Nagios
Nagios是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主机和服务进行监控,在状态变差和变好的时候给出告警信息。
Nagios最初被设计为在Linux系统之上运行,然而它同样可以在类Unix的系统之上运行。
Nagios更进一步的特征包括:监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);
监控主机资源(处理器负荷、磁盘利用率等);
简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
并行服务检查机制;
具备定义网络分层结构的能力,用”parent”主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;
当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位;
自动的日志回滚;可以支持并实现对主机的冗余监控;可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;
5、Zenoss
Zenoss是用Python编写的,拥有基于浏览器的用户界面,并使用了Ajax使操作更加快捷而富有效率。它将监控、报警、趋势显示、图表显示和记录历史数据等功能合成在一个统一的工具里,它还能在网上自动发现资源,在默认情况下,Zenoss使用SNMP从远程机器上收集数据,但它也可以使用SSH,并且支持Nagios插件。
Zenoss Core是开源企业级IT管理软件-是智能监控软件,他允许IT管理员依靠单一的WEB控制台来监控网络架构的状态和健康度。Zenoss Core同时也是开源的网络与系统管理软件。
5.1、Zenoss概览
Zenoss提供功能丰富的产品,以监测整个IT基础设施:
网络 -路由器,交换机,防火墙,接入点
服务器 -微软的Windows , Linux , Unix系统,惠普, NetApp,戴尔
虚拟化 -完整虚拟机虚拟化基础架构( VI3 )管理, XenSource监测
应用领域 -Process(程序),Port,网络应用服务, Web服务,数据库,中间件,商业企业应用方案
Zenoss系统将各种监视和管理信息通过一个标准的web浏览器集中向用户展示,系统的各种功能都可以通过web界面进行访问而无需编写任何配置文件。从一个较高的层面来讲,Zenoss由四个主要部分组成。
5.2、生命周期
配置管理 -自动发现,inventory, CMDB,变更追踪
可用性管理 -活跃测试向上和向下的堆栈
性能监控 -收集和分析数据向上和向下的堆栈
事件/日志管理 -集中收集和管理警报和违反的规则
自动修复 -应对和解决发生的问题
5.3、Zenoss标准模型
Zenoss的核心是Zenoss标准模型,该模型详细地描述了Zenoss管理的设备,同时还描述了设备之间、Zenoss业务对象之间以及其它用户定义的重要分组之间的关系。由于该模型高度复杂,因此模型信息的来源也多种多样,其中一个最主要的来源称之为Zenoss自动发现进程,自动发现是指,Zenoss通过一个可用的传输通道来发现设备上的服务、接口等信息。通过这些发现的信息,Zenoss在系统中为设备建立一个模型。同时,用户可以通过Web界面手工输入设备相关数据的方式(或通过Zenoss的外部API)为设备建立模型。Zenoss的2.0版本增加了发现锁定功能,该功能使得自动发现的信息可以与手工录入的设备信息紧密地结合在一起,并为设备进行建模,而建立后的设备模型用于驱动Zenoss系统的所有监视元素。
5.4、Zenoss可用性监控
Zenoss的可用性测试包括针对IT基础架构的系统运行测试,通过测试可以判断系统是否在正常运行,这些测试通常在被监控的系统外部运行,测试手段包括: ping测试、进程测试和服务测试。
5.5、Zenoss 性能监视系统
Zenoss性能监视系统的作用是,跟踪重要的IT资源信息并随时记录其变化。对系统管理员来说,随时了解磁盘可用率、CPU负载以及Web页面载入时间都相当重要。而Zenoss就可以通过SNMP、自定义脚本(ZenCommands) 或XML-RPC来采集这些数据。由于性能信息被整合在Zenoss模型中,因此浏览在其它Zenoss信息时,用户也可以根据上下文获得有关设备的性能数据。
6、OpenNMS简介
OpenNMS的开发基于TMN及FCAPS这两个模型。
电信管理网络(TMN)是由 ITU-T 推荐 M.3000于1985年提出作为一种应用于电信服务供应商所持有的运营支持系统(OSS)的参考模型。就概念而言,TMN 是一种相互连接不同类型OSS 组成部分和网络元素的结构体系。同时 TMN 也包含标准化接口和协议,用于交换 OSS 组成部分和网络单元间的信息,以及网络管理所需的全部功能。
TMN 模型组成主要包括以下四层:
(1)商业管理层(Business Management Layer):执行商业方面的相关功能,分析发展趋势如质量问题,提供记帐基础和其它财务报告。
(2)服务管理层(Service Management Layer):执行网络服务处理功能:定义、管理和服务控制。
(3)网络管理层(Network Management Layer):执行网络资源分配功能:配置、控制和网络监督。
(4)单元管理层(Element Management Layer):包含个人网络单元的处理功能。即:警报管理、信息处理、文件备份、日志、硬件和软件的维护等。
在 TMN 模型的每一层,对应五大功能区域(简称为 FCAPS)定义如下:
(1)故障管理(Fault Management):故障识别、隔离、报告和记录。
(2)计费管理(Accounting Management):收集、缓冲、付款传送和计费信息。
(3)性能管理(Performance Management):收集、缓冲、有关网络最优化的运行统计传送、以及容量编制(Capacity Planning)
(4)配置管理(Configuration Management):网络设备安装、状态和参数设置、网络容量配置。
(5)安全管理(Security Management):认证功能管理:OSS 的同时使用处理,阻止非法用户的***。
首先OpenNMS提供了较为全面的故障管理(Fault Management),在OpenNMS中,有三种不同且互相独立的方式来发现故障:
(1)服务定期查询(周期性检查服务运行情况)
(2)收到自动发送的通知消息(如SNMP trap)
(3)性能数据的阈值检查
此外OpenNMS也提供了较为完善的性能管理(Performance Management),在OpenNMS中是通过称之为数据收集器提供的数据收集接口来定期收集性能数据,目前的实现中,包括诸如SNMP,JMX,HTTP及NSClient,对于收集的性能数据可以用于显示性能图表,阈值检查,TopN分析等。
那么对于FCAPS剩下的三项即配置管理、计费管理、安全管理,OpenNMS只在某种程度上实现了其部分功能。例如对于计费功能,OpenNMS只提供了对于网络的使用情况的数据、系统资源诸如带宽、CPU、磁盘空间等的使用情况。
对于配置管理,OpenNMS提供了资产管理,另外还可以通过UI开启/关闭设备接口,也只仅限于这些功能。
对于安全管理,提供了对于SNMPv3的支持,另外还提供了基于用户的访问控制及LDAP安全模型。
从TMN的四层模型来看,OpenNMS主要提供了服务管理层(SM)及网络管理层(NM)的功能。
OpenNMS概念解释:
接口(Interface) :任何被指定给网络设备, 能响应网络要求的IP地址, 或者, 任何透过SNMP协议回报自称是接口者.
服务(Service) :任何单一, 预先定义指定给一个接口的网络服务.
节点(Node) :任何拥有一个以上接口的实体设备. 一个节点可能有数个接口, 每个接口可能有数个服务. (某一特定 的接口是否"属于"某个节点可以用几种不同的方式来决定, 例如SNMP或NetBIOS名称. 然而, 如果某个特定接口并没有归属于任何节点的信息, 就会被表示为一个独立的节点. )
事件(Event) :任何重大发生或发现.
故障(Outage) :一个暂时性的运作停摆, 其特征为无法和一个监控的服务沟通.(无法轮询)
告警(Notice) :当特定事件产生的时候, 系统可以发出告警. 发出告警意味着用电邮或传呼(pagers)或其它方式, 告知使用者或一群使用者, 所发生的事件; 某些情形下可能会触发修正动作.
7、Hyperic HQ
Hyperic HQ是一款基于Java的监控系统,它的目标跟其他同类别的软件不太一样,它要成为企业级的监控系统。跟Zenoss一样,它也能自动发现资源,支持Nagios插件,但是它的逻辑组织和架构很不一样,显得有点庞大。至于它是不是合适你的需求,那要看你的参数设置和监控的方式了。
面对管理复杂的IT基础设施,Hyperic HQ向今天的IT技术人员提供了无与伦比的可视性软件。Hyperic HQ使用易用的portal,通过单击就能自动发现和开始管理你的基础设施。
7.1、Hyperic HQ的作用
Hyperic HQ是工业级,功能丰富的产品,提供监测生产环境中软件的各技术栈的可视性,包括开源的,商业的或混合软件。因而,公司现在能够集中管理在下一代数据中心中所运用的快速发展的技术,能够更为充分和有效地避免昂贵的宕机。作为一个可扩展的系统,Hyperic HQ可以管理所有种操作系统,Web Server,应用服务器,数据库服务器等。使用Hyperic HQ Portal,可以快速配置软件并监测,警告,诊断,控制绝大多数应用程序。
关键优势包括:
Hyperic HQ:通过点击就会自动发现所要管理的Asset Inventory(资产列表);
Hyperic HQ:监测九大操作系统上超过65种技术的度量值;
Hyperic HQ可以追踪性能,配置,安全变化;
Hyperic HQ最大化可用性:在问题发生之前,警报、控制去纠正问题;
Hyperic HQ可以扩展,定制,更好管理你独特的环境需要
8、Groundwork Open Source
Groundwork Open Source实际上是基于Nagios的,它把Nagios和其他几个工具集成为一个系统,并安上一个统一的门户界面。描述它的最好方法可能就是:如果你对Nagios、Cacti及其他工具很熟悉,并且能够花大量的时间把它们无缝地集成在一起的话,你也能在家庭作坊里做一个出来。
GroundWork Monitor Open Source提供了一个完整的入门级的系统和网络可用性监测解决方案,在问题出现并未变严重之前及时发现,以确保设备的正常运行。它是第一个完全整合的系 统和网络监控解决方案,系统管理员只需要一个包就能运用它的基本功能。由于它的开放源码体系结构,GroundWork Monitor Open Source通过融合多种技术在满足所有的系统和网络监控的需求方面提供了明显的灵活性和可扩展性。
GroundWork Monitor Open Source采取最佳的开源项目,包括Nagios, Nmap, Sendpage, PHP, Apache, MySQL等等,他们形容成一个完整的软件包,用于监测各种平台和设备种类包括linux ,在unix , windows ,网络设备等.
GroundWork Monitor Open Source的监控覆盖服务器,路由器,交换机,网络设备和其他的一些电子设备,使它们更好的顺利运作。它的模块化结构使我们通过简单的web界面就能完 成配置,时效明显。实时状态信息报告,历史性趋势报告及精细的报告引擎使得你可以更加主动地对你的整个环境加以控制。