三、监控工具
常用的监控工具有,
- MRTG
- RRDTool
- Cacti
- Nagios
- Zabbix
- ……
1.什么是MRTG?
MRTG是一套历史悠久的软件,监测网络流量很方便,但是如果需要监测其他的系统性能,比如CPU负载、系统负载、网络连接数等,就不是那么简单了。即使实现了这些功能,但管理起来非常麻烦。比如公司有一两千个被监测点,分布在不同的机房,为了管理方便需要将这些服务器和网络设备分类,这样的话就需要将这些被监测点放在不同的MRTG配置文件中,运行多个crontab,甚至还要自己写HTML页面对其进行管理。
优点:
- 简单、易上手,基本安装完了之后只要修改一下配置文件即可使用。
缺点:
- 使用文本式的数据库,数据不能重复使用。
- 只能按日、周、月、年来查看数据。
- 由于MRTG本来只是用来监测网络的流量,所以只能存储两个DS(Data Source),即存储流量的输入和输出。
- 每取一次数据即需要绘图一次,浪费系统资源。
- 图像比较模糊。
- 无用户、图像管理功能。
- 没有详细日志系统。
- 无法详细了解各流量的构成。
- 只能用于TCP/IP网络,对于SAN网络流量无能为力。
- 不能在命令行下工作。
官方网站:http://oss.oetiker.ch/mrtg/
2.什么是RRDTool?
与MRTG一样,RRDTool也是由瑞士人Tobias Oetiker撰写的开源软件,但RRDTool并非MRTG的升级版本,两者有非常大的区别,也可以说RRDTool是将用来取代MRTG的产品。RRDtool是使用“C”程序语言开发的,它保存收到的数据到 “.rrd” 文件。”.rrd” 文件里的记录的数量将永远不会增加,这就意味着旧的记录将被经常移除。这意味着人们可以获得最近日志数据的精确图形,也可以获得基于旧数据的模糊图形。默认的,你可以有每天,每周,每月和每年的图形。简单的说,rrdtool就是一个强大的绘图的引擎。
优点:
- 使用RRD(Round Robin Database)存储格式,数据等于放在数据库中,可以方便地调用。比如,将一个RRD文件中的数据与另一个RRD文件中的数据相加。
- 可以定义任意时间段画图,可以用半年数据画一张图,也可以用半小时内的数据画一张图。
- 能画任意个DS,多种图形显示方式。
- 数据存储与绘图分开,减轻系统负载。
- 能任意处理RRD文件中的数据,比如,在浏览监测中我们需要将数据由Bytes转化为bits,可以将原始数据乘8。
缺点:
- RRDTool的作用只是存储数据和画图,它没有MRTG中集成的数据采集功能。
- 在命令行下的使用非常复杂,参数极多。
- 无用户、图像管理功能。
官方网站:http://oss.oetiker.ch/rrdtool/
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/
5.什么是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等平台上。
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)等配合使用。
特点:
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
- 功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
官方网站:http://www.zabbix.com/
四、总结
大家从上面的博文中可以看到,我们监控种类有两种,一种是基于snmp的监控工具,另一种是基于编写脚本调用系统状态监测的命令来实现监控。这两种方式各有优势,大家可以在生产环境中根据实际需要进行选择使用,一般我们都是主要使用监控工具(Cacti与Nagios)进行监控并结合shell脚本进行辅助监控的方案。在下面的几篇博文中我们主要讲解snmp协议、RRDTool画图工具使用、Cacti监控工具使用、Nagios监控工具使用,最后有时间我们可以和大家说一说,怎么将Cacti与Nagios整合使用。好了,到这里我们Linux监控概述就说到这里,在下一篇博客中我们主要讲解snmp协议。希望大家有所收获^_^……