设为首页 - 加入收藏 - 网站地图 欢迎加QQ群 :14364084
当前位置:谭博的博客 > linux > 正文

Linux 系统监控工具

时间:2014-11-18 14:49 来源:未知 标签: 作者:谭博 阅读:

大纲

一、监控概述

二、监控分类

三、监控工具

四、总结

说明:本博文的一些内容自于开源社区与官方网站并不是所有内容全是原创。

 

一、监控概述

如何对现有IT架构的整体以及细节运行情况进行科学、系统和高效地监控是目前各企业运维和管理部门一项非常重要的工作内容。随着当前企业IT环境中服务器、应用数量和类型的不断地增加,运维部门需要通过科学和高效的手段尽可能详细、实时和准确地获取整个架构中具体到每个服务器、每个系统甚至每个应用程序工作的细节,并且会对所获取到的原始数据进行分析、绘图和统计,以便为后续的性能调优、建构调整以及各类型排错建立参考依据。

 

常见的监测对象基本上涵盖了IT运行环境的方方面面,包括机房环境、硬件、网络等,而每一个方面所涉及的监测项目则种类繁多。例如对硬件环境的监测中,所涵盖内容就会包括服务器的工作温度、风扇转速等指标;针对系统环境的监测,将包括基本的操作系统运行环境,如CPU、内存、I/O、存储空间使用状况、网络吞吐量、进程数量和状态等情况;针对具体的应用情况,涉及监测的内容可能会更多,而且也会有很多专门针对应用的指标。

 

除了监测的内容需要尽量全面之外,同时我们还希望所使用的监测解决方案能够灵活和具备更多扩展功能。例如有效地支持IT架构的变化和扩展,在监测量增加的情况下能够尽可能少地占用资源,拥有强大的事件通知机制等等。

 

本博文所涉及的内容,主要是针对操作系统以及软件环境的监测,而且尤其是针对Linux操作系统的运行情况监测。尽管目前有很多的商用软件以及解决方案来实现相关的功能,但是实际上我们也有很多开源的解决方案可以起到相同的作用,而且效果也非常不错。下面的内容中,我们将会对这些解决方案的实现方法进行详细描述。

 

二、监控分类

在Linux系统上的系统监测所采用的方式基本上有两种,

 

第一种,通过SNMP协议结合数据采集软件来实现:

这种方法所涉及的架构一般包括两部分,其中一部分是被监测服务器,另外一部分则是监控端。至于实现方法具体来说就是在Linux服务器上启动SNMP简单网络管理协议的进程snpmd来动态提供服务器在软件甚至硬件各方面的运行参数,这样服务器就成为了一个被监测的节点。然后在其他的监控服务器上的客户端软件应该具备两个功能:采集SNMP数据以及汇总统计信息。在绝大多数情况下,监控服务器上的监测软件都会基于Web页面方式提供系统运行状态图,而且涵盖了各种运行指标。同时新的状态信息能够动态更新到Web页面。这种类型的监测所获得的数据格式标准而且全面,配置简单,所以从综合监测的角度看是一个不错的方案。

 

第二种,通过编写脚本调用系统状态监测的命令,并结合数据采集软件来实现:

在某些情况下,SNMP协议的配置会相对比较麻烦,而且获取SNMP信息往往需要考虑选择不同的监测软件。从另外一个角度讲,其实Linux操作系统本身就提供了很多非常好用的状态获取工具,如sar(可实现多个指标的监测),iostat(专用于I/O使用率监测),vmstat(专用于cpu和内存使用情况监测)以及free命令等工具。这些工具都可以通过结合系统任务计划以及自编脚本进行周期性调用,这就给监测提供了相当的便利。因为可以将这些命令嵌入到脚本中以周期性生成系统监测软件所需要的数据,最终一样可以通过这些数据结合绘图软件绘制出直观的统计图。这种类型的监测所获得的信息更加灵活和精确,对于一些熟悉脚本编程的用户来说,使用起来更是得心应手。另外采用这种方式的情况下,利用命令监测可以无限制扩展,用户可以通过各种管道来获得和定制自己的监测脚本。

 

三、监控工具

常用的监控工具有,

  • MRTG

  • RRDTool

  • Cacti

  • Nagios

  • Zabbix

  • ……

 

 

3.什么是Cacti?

Cacti是一个使用RRDtool引擎的基于网页的PHP/MySql图形解决方案。Cacti是一套基于PHP、MySQL、SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用RRDtool绘画图形,它的界面非常漂亮,能让你根本无需明白rrdtool的参数能轻易的绘出漂亮的图形。而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,Cacti还提供自己增加模板的功能,让你添加自己的snmp_query和script!功能非常强大完善,界面友好。可以说,cacti将rrdtool的所有“缺点”都补足了!

 

官方网站:

http://www.cacti.net/

 

4.什么是Nagios?

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

 

Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。

 

Nagios与Cacti区别:

Cacti 和 Nagios是不同功用的系统,Nagios 适合监视大量服务器上面的大批服务是否正常,重点并不在图形化的监控,其集成的很多功能例如报警与通知机制都是 Cacti 没有或者很弱的。Cacti 主要用还是用来收集历史数据和画图, 所以界面比 nagios 漂亮很多。

 

综合上述:

Cacti偏沉于收集流量画图,系统负载方面的。而Nagios偏沉于系统状态正常与否方面的, Nagios能够和短信发送机共同用来规模较大的网络,Cacti+Nagios 两者结合使用取长补短方为上上之策。

 

官方网站:

http://www.nagios.org/

 

 

 

四、总结

大家从上面的博文中可以看到,我们监控种类有两种,一种是基于snmp的监控工具,另一种是基于编写脚本调用系统状态监测的命令来实现监控。这两种方式各有优势,大家可以在生产环境中根据实际需要进行选择使用,一般我们都是主要使用监控工具(Cacti与Nagios)进行监控并结合shell脚本进行辅助监控的方案。

 

关注微信公众号

微信扫一扫,打赏我

热评文章
    内容不错,支持一下
    评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)