网络资源监控工具

1. Munin

       Munin是一款开源网络资源监控工具,可以分析资源趋势、“刚刚是什么让性能死掉”方面的问题。可监控核心系统资源,包括内存、磁盘、CPU 占用、服务器应用如MySQL、Apache和Squid等。它使用起来非常方便,是一款即插即用型工具,并且提供了许多丰富的图表。

开源linux系统监控软件方案比较 - itoedr - itoedr的it学苑
  Munin的界面示意图

          Munin是一款通过客户端——服务器架构收集数据并将其图形化的工具。Munin允许你跟踪主机的运行记录,就是所谓的节点,然后将它们发送到中央服务器,随后就能以图像形式展示它们。

开源linux系统监控软件方案比较 - itoedr - itoedr的it学苑
Munin的模块化组件
 

         正因如此,munin支持对新兴云系统的监控。

2.Graphite

       Graphite是一个企业级的监控工具,使用Python编写,采用django框架。最初由Chris Davis在Orbitz工作时,作为一个辅助项目开发的,最终成一个基本的监控工具。因为都使用python语言开发,同时web前端都使用django框架,所以在个性代再开发方面与openstack结合最为方便。

开源linux系统监控软件方案比较 - itoedr - itoedr的it学苑

           Graphite可用来收集服务器所有的及时状态、用户请求信息、Memcached命中率、RabbitMQ 消息服务器的状态、Unix操作系统的负载状态。Graphite服务器大约每分钟需要有4800次更新操作,简单的文本协议和强大的绘图功能可以方便地 扩展到任何需要监控的系统上。

           Graphite有时也被应用于前端展示。比如collectd就可以与方结合使用形成一个统一系统。          

3.Ganglia
         Ganglia是笔者最推崇的方案,是一款大型最成熟的系统,作者好象要我们展示你的系统运行的每一个细节.而且系统本身体也提供了与多种语言的api接口.

开源linux系统监控软件方案比较 - itoedr - itoedr的it学苑
         ganglia的web前端界面

        Ganglia是UC(University of California)Berkeley发起的一个开源集群监视项目,Ganglia是一个跨平台可扩展的,高性能计算系统下的分布式监控系统。它已被广 泛地移植到各种操作系统和处理器架构上,目前在世界各地成千上万的集群中应用。当然对于新兴的云系统的监控也是顺理成章的功能。

         Ganglia的核心包含了gmond、gmetad以及一个Web前端。

开源linux系统监控软件方案比较 - itoedr - itoedr的it学苑
图示:ubuntu收录了此软件入库
 

         Ganglia主要是用来监控系统性能,如:CPU、内存、硬盘利用率、I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。 

4.Nagios

         Nagios原名为NetSaint,由Ethan Galstad开发并维护至今。Nagios是企业级的监控系统,能有效监控Windows、Linux和Unix的主机状态以及交换机路由器等网络设置,打印机等。

开源linux系统监控软件方案比较 - itoedr - itoedr的it学苑 

           Nagios最大的特点就是能在系统或服务状态异常时发出邮件或短信报警,第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。 

5.collectd

           collectd是一款用C语言开发的开源的性能监测工具,无需系统cron支持、简单易用。collectd是插件式架构,主要分为输入、输出类型插件。这是笔者最为喜欢的系统,模块化的方案尤其让人爱不释手。

开源linux系统监控软件方案比较 - itoedr - itoedr的it学苑
collectd的前端界面
 

             当系统运行和存储信息的时候,collectd会周期性地统计系统相关信息。那些信息可以用来找到当前系统性能瓶颈。与其他监测工具相比,collectd 它完全是由C语言编写,性能很高、可移植性好,它允许运行在系统没有脚本语言支持或者cron daemon的系统上,比如嵌入式系统。同时,它包含优化以及处理成百上千种数据集的新特性。

collectd包含有超过70多种插件,同时,collectd提供强大的网络联网特性,它能以多种方式来扩充。而collectd不足之处则是不能直接生成图片。虽然它能写RRD文件,但是它不能从这些文件生成图形。不得不补充一下的是,在:http://pommi.nethuis.nl/category/cgp/却提供了collectd的前端web工具(实际上是RRD的展示php平台)。

        其它如salt/zabbix也都是值得借鉴的开源平台。

6.企业级开源系统zabbix

Zabbix是一个企业级的开源分布式监控解决方案,Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。

zabbix-Server:Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低。

zabbix-Agent:目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windows。有此组件就支持集群与任意服务终端的集中监控了。

支持SNMP:支持各类常见的网络设备,这样就可以支持对设备级的嵌入式系统的监控了。

主要功能:zabbix备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制) 支持自动发现网络设备和服务器;支持分布式,能集中展示、管理分布式的监控点;扩展性强,server提供通用接口,可以自己开发完善各类监控。

优点:开源,无软件成本投入;Server对设备性能要求低(实际测试环境:虚拟机CentOS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上);支持设备多;支持分布式集中管理;开放式接口,扩展性强。

虽然中文资料不足,但是本身已经支持中文界面了,相信是国人的贡献。

Zabbix支持多种网络方式下的监控,可通过分布式的方式部署和安装监控代理,整个架构如下图所示。

zabbix架构图

 开源linux系统监控软件方案比较 - itoedr - itoedr的it学苑

ubuntu库中收录的zabbix很是全功能了

7.Icinga2( Nagios的c++版本 )
          Icinga2是 Nagios的c++版本,支持多线程与多种主机监控,效率很高,与collectd在效率上相当.   值得说明一下的是,这一平台是支持中文前端的.而且还有各种系统的监控接口.
开源linux系统监控软件方案比较 - itoedr - itoedr的it学苑
 icinga在ubuntu库中的资源
开源linux系统监控软件方案比较 - itoedr - itoedr的it学苑