【IT168 专稿】8月29日,2010年系统架构师大会在北京永泰福朋.喜来登大酒店拉开帷幕。本次大会主题是:“企业IT应用最佳实践”,是由IT168联合旗下三大技术社区ChinaUnix、ITPUB、IXPUB主办的继2009年第一届系统架构师大会之后偏重技术经验分享和案例剖析的又一次技术盛宴。据悉,本次技术大会邀请了37位各行各业、国内最顶级的技术专家分享来自企业技术一线的系统架构最佳实践经验。
淘宝网技术委员会主席,淘宝网核心工程师章文嵩淘宝网技术委员会主席,淘宝网核心工程师章文嵩
在8月27日下午,存储与架构分论坛上,淘宝网技术委员会主席,淘宝网核心工程师章文嵩向我们详细介绍了淘宝网图片处理与存储系统的架构。章文嵩博士的演讲日程包括了淘宝的整个系统架构、淘宝图片存储系统架构,淘宝网独立开发的TFS集群文件系统,前端CDN系统以及淘宝网在节能服务器方面的应用和探索。
本文侧重介绍淘宝网图片处理与访问系统前端的CDN系统架构,有关淘宝网图片存储与处理系统架构的介绍请参考:揭秘淘宝286亿海量图片存储与处理架构
从商用系统到自主研发
实际上,淘宝网对CDN系统的要求还是十分严格的,CDN服务的图片规模包括大约250T容量的原图和大约250T容量的缩略图总和;约286亿左右的图片数,平均图片大小是17.45K;8K以下图片占图片数总量的61%,占存储容量的11%
CDN的部署规模达到22个节点,部署在网民相当密集的中心城市(7月初),每个节点目前处理能力在10G或以上,CDN部署的总处理能力已到220G以上,目前承载淘宝流量高峰时119G,含一些集团子公司的流量。
淘宝网现有的CDN系统也完全是淘宝自己开发的,最早淘宝也应用过一段商用的CDN产品,选择Netscaler的CDN系统来解决海量小图片访问和读取的问题。使用一段时间后,认为市场普遍的商用产品存在一些性能瓶颈、功能欠缺,并且性能不稳定。面对淘宝网背后如此巨大的图片存储规模,商用系统在整个系统的规模、性能、可用性和可管理性都无法达到要求。
目前淘宝网自主开发的CDN系统,采用了全新的优化架构,包括CDN监控平台、全局流量调度系统支持基于节点负载状态调度和基于链路状态调度、CDN实时图片删除、CDN访问日志过滤系统、配置管理平台。
新旧CDN架构平台对比
淘宝网老架构的CDN平台应用Netscaler产品
图为淘宝网应用Netscaler产品的老架构的CDN平台,背后管理500TB容量,前端缓存空间约1TB左右,命中率较低,因此需要强大的调度策略。
淘宝网最新的CDN系统架构
上图为最新的CDN系统架构,全部由淘宝网自己开发,前面介绍过CDN系统的服务规模,包括约250T容量的原图+ 250T容量的缩略图,总计500TB图片存储容量;约286亿左右的图片数,平均图片大小是17.45K;8K以下图片占图片数总量的61%,占存储容量的11%,实际上带给CDN系统极大的挑战。
CDN部署规模达到22个节点,部署在网民相当密集(具体访问量)的中心城市(7月初),每个节点目前处理能力在10G或以上,部署的总处理能力已到220G以上,目前承载淘宝流量高峰时119G(含一些集团子公司的)。
新旧两代CDN架构的对比
上图是淘宝网对新旧2代CDN架构进行对比,新的CDN系统在流量分布均匀性上有了较大改进,所有的频道统一调度到128台squid,而不是将squid按频道分组,可提高命中率2%以上;扩展能力也有了较大提升,在一个VIP上新架构可以扩展到近100G的流量(当然要用万兆网卡);灵活性也有了较大提高,一致性Hash调度方法使得增加和删除服务器非常方便,只有1/(n+1)的对象需要迁移新的CDN架构。除了在可维护性商稍微弱一点,其余的指标全面超出商用的产品。
Squid节点的改进和优化
新的CDN在squid节点上也进行了一些改进和优化,包括:
在COSS存储系统基础上实现了TCOSS,FIFO加上按一定比例保留热点对象,支持1T大小的文件
Squid内存优化,一台Squid服务器若有一千万对象, 大约节省1250M内存,更多的内存可以用作memory cache。
用sendfile来发送缓存在硬盘上的对象,加上page cache,充分利用操作系统的特性
针对SSD硬盘,可以采用DIRECT_IO方式访问,将内存省给SAS/SATA硬盘做page cache
在Squid服务器上使用SSD+SAS+SATA混合存储,实现了类似GDSF算法,图片随着热点变化而迁移。
根据淘宝网的资料数据,SSD的存储成本大约是20¥每GB左右,SAS硬盘的存储成本约在 5-6¥每GB,SATA盘的每GB成本不到1¥。随着对应用性能的要求提升,应用SSD是未来的趋势,针对不同硬盘的存取特性进行优化是十分必要的。
目前在squid节点中的热点迁移采用了两种策略,一种是根据文件大小来定义迁移到哪种磁盘上去。例如较大的文件存放在SATA磁盘,中等大小的文件放在SAS磁盘上,较小的文件存放在SSD磁盘。下图是淘宝网进行自动分层迁移后的性能测试结果,测试环境包括1块SSD硬盘+4块SAS硬盘+SATA硬盘。访问负载状况如下:
第一种迁移策略按文件大小决定存储的磁盘类型,上图中:黑色为SATA,绿色为SSD,红色为SAS,4块SAS硬盘上的访问量总和超过SSD硬盘上的访问量
另外一种策略则是根据访问热度来决定,最热的文件存放在SSD盘,较热的存放在SAS盘,最冷的文件存放在SATA盘。下图是淘宝网同样在1块SSD硬盘+4块SAS硬盘+SATA硬盘下的测试结果,访问负载状况如下:
第二种迁移策略按访问的热度来进行迁移,其中:黑色为SATA,绿色为SSD,红色为SAS;SSD硬盘上的访问量是4块SAS硬盘上访问量之和的5倍以上,SAS和SATA的硬盘利用率低了很多。
节点的运行状况
淘宝网列出了两个代表性节点的运行性能状况。
节点一由32台DELL R710服务器构成,逻辑结构包括2LVS+32Haproxy+64Squid构成,于12月21日上线运行。
以下是该节点的运营状况:
节点二由30台DELL PowerEdge 2950服务器构成,逻辑结构包括:2LVS + 30Haproxy + 60 Squid,于2010年5月上线运行。以下是该节点的理论运行状况:
淘宝CDN的发展方向
淘宝网未来的CDN发展方向针对研发、运维和CDN建设有不同的要求。
从CDN的研发和运维上,未来淘宝CDN将:
–针对教育网的CDN解决方案,广大校园用户将能体会到更高的访问速度和性能
–动态页面加速,节点间应用级路由
–持续提高节点性能(应用软件、操作系统等)
–优化GTM全局调度系统
–持续提高CDN系统可运维性,完善CDN内容管理系统
此外,淘宝CDN建设的思路也有一些调整和改变,建设思路正在转向“部署更多的小节点,尽可能离用户近一些”的方向,同时会更加强调定制化和快速部署 。
【IT168 专稿】8月27日下午,在IT168系统架构师大会存储与系统架构分论坛上,淘宝网技术委员会主席,淘宝网核心工程师章文嵩向我们详细介绍了淘宝网图片处理与存储系统的架构。章文嵩博士的演讲日程包括了淘宝的整个系统架构、淘宝图片存储系统架构,淘宝网独立开发的TFS集群文件系统,前端CDN系统以及淘宝网在节能服务器方面的应用和探索。
LVS创始人,淘宝网技术委员会主席,淘宝网核心工程师章文嵩先生
本文侧重介绍淘宝网后台的图片存储系统架构、包括TFS集群文件系统,以及前端处理服务器架构。该系统前端CDN架构,以及淘宝网在节能服务器应用方面的探索,请参考:
淘宝商城286亿图片访问的CDN架构全解析
教你省钱!淘宝总结节能服务器应用场景
解决海量并发小文件的系统噩梦
对于淘宝网这类型访问量极高的电子交易网站来说,对图片系统的要求和日常的照片分享完全不在一个级别。日常照片分享往往集中在几个有限的亲朋好友之间,访问量不会特别高,而淘宝网商铺中的商品照片,尤其是热门商品,图片的访问流量其实是非常大的。而且对于卖家来说,图片远胜于文字描述,因此卖家也格外看重图片的显示质量、上传时间、访问速度等等问题。根据淘宝网的流量分析,整个淘宝网流量中,图片的访问流量会占到90%以上,而主站的网页则占到不到10%。
淘宝网电子商城首页截图,淘宝网的后端系统上保存着286亿多个图片文件,淘宝网整体流量中,图片的访问流量要占到90%以上。且这些图片平均大小为17.45KB,小于8K的图片占整体图片数量61%,整体系统容量的11%
与此同时,这些图片的存储与读取还有一些头疼的要求:例如,这些图片要求根据不同的应用位置,生成不同大小规格的缩略图。考虑到多种不同的应用场景以及改版的可能性,一张原图有可能需要生成20多个不同尺寸规格的缩略图。
淘宝整体图片存储系统容量1800TB(1.8PB),已经占用空间990TB(约1PB)。保存的图片文件数量达到286亿多个,这些图片文件包括根据原图生成的缩略图。平均图片大小是17.45K;8K以下图片占图片数总量的61%,占存储容量的11%。
这就给淘宝网的系统带来了一个巨大的挑战,众所周知,对于大多数系统来说,最头疼的就是大规模的小文件存储与读取,因为磁头需要频繁的寻道和换道,因此在读取上容易带来较长的延时。在大量高并发访问量的情况下,简直就是系统的噩梦。
分析自主研发和商用系统的经济效益
淘宝网成立于2003年,在整个系统的构建和规划上也做过相当多的尝试和探索。
下图是淘宝网2007年之前的图片存储系统。淘宝网之前一直采用的商用存储系统,应用NetApp公司的文件存储系统。随着淘宝网的图片文件数量以每年2倍(即原来3倍)的速度增长,淘宝网后端NetApp公司的存储系统也从低端到高端不断迁移,直至2006年,即时是NetApp公司最高端的产品也不能满足淘宝网存储的要求。
淘宝网2007年以前的图片存储系统架构图,由于淘宝网图片速度已每年2倍的速度增长,商用系统已经完全不能满足其存储需求,目前淘宝网采用自主研发的TFS集群文件系统来解决海量小图片的读取和访问问题
章文嵩博士在这里总结了几点商用存储系统的局限和不足:
首先是商用的存储系统没有对小文件存储和读取的环境进行有针对性的优化;其次,文件数量大,网络存储设备无法支撑;另外,整个系统所连接的服务器也越来越多,网络连接数已经到达了网络存储设备的极限。此外,商用存储系统扩容成本高,10T的存储容量需要几百万¥,而且存在单点故障,容灾和安全性无法得到很好的保证。
谈到在商用系统和自主研发之间的经济效益对比,章文嵩博士列举了以下几点经验:
1.商用软件很难满足大规模系统的应用需求,无论存储还是CDN还是负载均衡,因为在厂商实验室端,很难实现如此大的数据规模测试。
2.研发过程中,将开源和自主开发相结合,会有更好的可控性,系统出问题了,完全可以从底层解决问题,系统扩展性也更高。
自主研发和采用商用系统的经济效益对比
3.在一定规模效应基础上,研发的投入都是值得的。上图是一个自主研发和购买商用系统的投入产出比对比,实际上,在上图的交叉点左边,购买商用系统都是更加实际和经济性更好的选择,只有在规模超过交叉点的情况下,自主研发才能收到较好的经济效果,实际上,规模化达到如此程度的公司其实并不多,不过淘宝网已经远远超过了交叉点。
4.自主研发的系统可在软件和硬件多个层次不断的优化。
TFS 1.0版本的集群文件系统
从2006年开始,淘宝网决定自己开发一套针对海量小文件存储难题的文件系统,用于解决自身图片存储的难题。到2007年6月,TFS(淘宝文件系统,Taobao File System)正式上线运营。在生产环境中应用的集群规模达到了200台PC Server(146G*6 SAS 15K Raid5),文件数量达到上亿级别;系统部署存储容量: 140 TB;实际使用存储容量: 50 TB;单台支持随机IOPS 200+,流量3MBps。
淘宝集群文件系统TFS 1.0第一版的逻辑架构,TFS最大的特点就是将一部分元数据隐藏到图片的保存文件名上,大大简化了元数据,消除了管理节点对整体系统性能的制约,这一理念和目前业界流行的“对象存储”较为类似。
图为淘宝集群文件系统TFS 1.0第一版的逻辑架构:集群由一对Name Server和多台Data Server构成,Name Server的两台服务器互为双机,就是集群文件系统中管理节点的概念。
• 每个Data Server运行在一台普通的Linux主机上
• 以block文件的形式存放数据文件(一般64M一个block)
• block存多份保证数据安全
• 利用ext3文件系统存放数据文件
• 磁盘raid5做数据冗余
• 文件名内置元数据信息,用户自己保存TFS文件名与实际文件的对照关系–使得元数据量特别小。
淘宝TFS文件系统在核心设计上最大的取巧的地方就在,传统的集群系统里面元数据只有1份,通常由管理节点来管理,因而很容易成为瓶颈。而对于淘宝网的用户来说,图片文件究竟用什么名字来保存实际上用户并不关心,因此TFS在设计规划上考虑在图片的保存文件名上暗藏了一些元数据信息,例如图片的大小、时间、访问频次等等信息,包括所在的逻辑块号。而在元数据上,实际上保存的信息很少,因此元数据结构非常简单。仅仅只需要一个fileID,能够准确定位文件在什么地方。
由于大量的文件信息都隐藏在文件名中,整个系统完全抛弃了传统的目录树结构,因为目录树开销最大。拿掉后,整个集群的高可扩展性极大提高。实际上,这一设计理念和目前业界的“对象存储”较为类似,淘宝网TFS文件系统已经更新到1.3版本,在生产系统的性能已经得到验证,且不断得到了完善和优化,淘宝网目前在对象存储领域的研究已经走在前列。
TFS 1.3版本的集群文件系统
到2009年6月,TFS 1.3版本上线,集群规模大大扩展,部署到淘宝的图片生产系统上,整个系统已经从原有200台PC服务器扩增至440台PC Server(300G*12 SAS 15K RPM) + 30台PC Server (600G*12 SAS 15K RPM)。支持文件数量也扩容至百亿级别;系统部署存储容量:1800TB(1.8PB);当前实际存储容量:995TB;单台Data Server支持随机IOPS 900+,流量15MB+;目前Name Server运行的物理内存是217MB(服务器使用千兆网卡)。
TFS 1.3版本逻辑结构图
图为TFS1.3版本的逻辑结构图,在TFS1.3版本中,淘宝网的软件工作组重点改善了心跳和同步的性能,最新版本的心跳和同步在几秒钟之内就可完成切换,同时进行了一些新的优化:包括元数据存内存上,清理磁盘空间,性能上也做了优化,包括:
完全扁平化的数据组织结构,抛弃了传统文件系统的目录结构。
在块设备基础上建立自有的文件系统,减少EXT3等文件系统数据碎片带来的性能损耗
单进程管理单块磁盘的方式,摒除RAID5机制
带有HA机制的中央控制节点,在安全稳定和性能复杂度之间取得平衡。
尽量缩减元数据大小,将元数据全部加载入内存,提升访问速度。
跨机架和IDC的负载均衡和冗余安全策略。
完全平滑扩容。
在后面“图片服务器部署与缓存”一页中详细介绍了淘宝网整个图片处理系统的拓扑图。我们可以看到:TFS在淘宝的部署环境中前端有两层缓冲,到达TFS系统的请求非常离散,所以TFS内部是没有任何数据的内存缓冲的,包括传统文件系统的内存缓冲也不存在。
TFS主要的性能参数不是IO吞吐量,而是单台PCServer提供随机读写IOPS。由于大家硬件型号不同,当然也是因为一些技术保密的原因,淘宝网很难给出一个参考值来说明性能。但基本上可以达到单块磁盘随机IOPS理论最大值的60%左右,整机的输出随盘数增加而线性增加。
开发中的TFS2.0与开源TFS
TFS 2.0已经在开发过程中,主要解决的问题是大文件存储的难题。TFS最早开发的时候针对小文件频繁并发读取的难题而开发,设计的块大小是64MB,意味着每个文件小于64MB,这对于一般的图片存储来说完全足够用了,但对于大文件存储还有一些瓶颈。
TFS 2.0将重点针对大文件跨越块的存储进行优化。此外,还包括SSD、SAS硬盘不同硬盘特性的应用优化。根据淘宝网的资料数据,SSD的存储成本大约是20¥每GB左右,SAS硬盘的存储成本约在 5-6¥每GB,SATA盘的每GB成本不到1¥。随着对应用性能的要求提升,应用SSD是未来的趋势,针对不同硬盘的存取特性进行优化是十分必要的。
此外,章文嵩宣布,TFS将在9月份完全开源,完全开源则意味着淘宝网将提供所有的源代码,开源版本的TFS将与淘宝网线上应用的系统完全一致。
图片服务器部署与缓存
下图为淘宝网整体系统的拓扑图结构。整个系统就像一个庞大的服务器一样,有处理单元、缓存单元和存储单元。前面已经详细介绍过了后台的TFS集群文件存储系统,在TFS前端,还部署着200多台图片文件服务器,用Apatch实现,用于生成缩略图的运算。
这里需要补充一点,根据淘宝网的缩略图生成规则,缩略图都是实时生成的。这样做的好处有两点:一是为了避免后端图片服务器上存储的图片数量过多,大大节约后台存储空间的需求,淘宝网计算,采用实时生成缩略图的模式比提前全部生成好缩略图的模式节约90%的存储空间,也就是说,存储空间只需要后一种模式的10%;二是,缩略图可根据需要实时生成出来,更为灵活。
淘宝网图片存储与处理系统全局拓扑,图片服务器前端还有一级和二级缓存服务器,尽量让图片在缓存中命中,最大程度的避免图片热点,实际上后端到达TFS的流量已经非常离散和平均
图片文件服务器的前端则是一级缓存和二级缓存,前面还有全局负载均衡的设置,解决图片的访问热点问题。图片的访问热点一定存在,重要的是,让图片尽量在缓存中命中。目前淘宝网在各个运营商的中心点设有二级缓存,整体系统中心店设有一级缓存,加上全局负载均衡,传递到后端TFS的流量就已经非常均衡和分散了,对前端的响应性能也大大提高。
根据淘宝的缓存策略,大部分图片都尽量在缓存中命中,如果缓存中无法命中,则会在本地服务器上查找是否存有原图,并根据原图生成缩略图,如果都没有命中,则会考虑去后台TFS集群文件存储系统上调取,因此,最终反馈到TFS集群文件存储系统上的流量已经被大大优化了。
淘宝网将图片处理与缓存编写成基于Nginx的模块,淘宝网认为Nginx是目前性能最高的HTTP服务器(用户空间),代码清晰,模块化非常好。淘宝网使用GraphicsMagick进行图片处理,采用了面向小对象的缓存文件系统,前端有LVS+Haproxy将原图和其所有缩略图请求都调度到同一台Image Server。
文件定位上,内存用hash算法做索引,最多一次读盘。写盘方式则采用Append方式写,并采用了淘汰策略FIFO,主要考虑降低硬盘的写操作,没有必要进一步提高Cache命中率,因为Image Server和TFS在同一个数据中心,读盘效率还是非常高的。
演讲人简介
章文嵩博士是淘宝网的研究员,主要负责基础核心软件研发、推进网络软硬件方面的性能优化、搭建下一代高可扩展低碳低成本淘宝电子商务基础设施。他也是开放源码及Linux内核的开发者,著名的Linux集群项目--LVS (Linux Virtual Server)的创始人和主要开发人员,LVS集群代码已在Linux 2.4和2.6的官方内核中。在设计和架构大型系统、系统软件开发、Linux操作系统、系统安全和软件开发管理上有着丰富的经验。他一直在自由软件的开发上花费时间,并以此为乐。
root@node1:~# cat /etc/issue
Ubuntu 12.04 LTS n l
需求:现在需要远程连接Ubuntu的图形界面,因为有一个程序是需要使用图形界面配置的。
默认情况下,Ubuntu server是没有图形界面的,使用Xmanager远程连接Ubuntu,连接完成后,本来想使用Xmanager自带的功能,来实现弹出一个图形界面的,但是不管怎么弹,该程序就是弹不出来,很纠结,用Xclock测试,是可以的。只能另行它法。
以前配置VNC,都是在RedHat里面配置的,Ubuntu里面没弄过,这就研究了一下。下面详细的说一下配置过程,使用的图形程序为Xface
一、安装配置VNC
1、首先安装VNC
# apt-get install vnc4server
2、为VNC设置密码
root@node1:~/.vnc# vncpasswd
Password:
输入密码,然后再确认一遍,就OK了。
3、启动VNC
root@node1:~# vncserver :1
New 'node1:1 (root)' desktop is node1:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/node1:1.log
root@node1:~# ps -ef | grep vnc
root 1768 1 0 06:10 pts/0 00:00:00 Xvnc4 :1 -desktop node1:1 (root) -auth /root/.Xauthority -geometry 1024x768 -depth 16 -rfbwait 30000 -rfbaut
h /root/.vnc/passwd -rfbport 5901 -pn -fp /usr/X11R6/lib/X11/fonts/Type1/,/usr/X11R6/lib/X11/fonts/Speedo/,/usr/X11R6/lib/X11/fonts/misc/,/usr/X11R6/lib/X11/fonts/75dpi/,/usr/X11R6/lib/X11/fonts/100dpi/,/usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb
启动成功
二、客户端连接
客户端安装vncview,然后连接
输入IP的时候,输入 IP:NO,即ip地址加会话号,刚才开户的是1,这里就输入
1.1.1.1:1
然后输入完密码,就可以连接了
因为没有桌面环境,所以,我们需要安装一个,这里使用Xface
三、安装Xface
# apt-get install xfce4
过程比较漫长,大小有200MB左右。等安装完成后,我们就可以使用VNC调用Xface了
更改VNC配置,加载Xface桌面
root@node1:~# pwd
/root
root@node1:~# cd .vnc/
root@node1:~/.vnc# ls
node1:1.log node1:1.pid passwd xstartup
root@node1:~/.vnc# vim xstartup
把原来的配置给注释掉,新增Xface的配置即可,配置文件下
root@node1:~/.vnc# cat xstartup
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
sesion-manager & xfdesktop & xfce4-panel &
xfce4-menu-plugin &
xfsettingsd &
xfconfd &
xfwm4 &
然后重新启动VNC
root@node1:~/.vnc# vncserver -kill :1
Killing Xvnc4 process ID 1844
root@node1:~/.vnc# vncserver :1
New 'node1:1 (root)' desktop is node1:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/node1:1.log
再用客户端连接
看到了Xface了,说明OK了,至此,已经配置完毕。
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1 lmlicenses.wip4.adobe.com
127.0.0.1 lm.licenses.adobe.com
127.0.0.1 activate.adobe.com
127.0.0.1 practivate.adobe.com
#Google Services START
203.208.46.200 chatenabled.mail.google.com
203.208.46.200 static.googleusercontent.com
203.208.46.202 0-open-opensocial.googleusercontent.com
203.208.46.202 0-focus-opensocial.googleusercontent.com
203.208.46.202 1-focus-opensocial.googleusercontent.com
203.208.46.202 1-open-opensocial.googleusercontent.com
203.208.46.202 1-ps.googleusercontent.com
203.208.46.202 2-focus-opensocial.googleusercontent.com
203.208.46.202 2-open-opensocial.googleusercontent.com
203.208.46.202 2-ps.googleusercontent.com
203.208.46.202 3-focus-opensocial.googleusercontent.com
203.208.46.202 3-ps.googleusercontent.com
203.208.46.202 3hdrrlnlknhi77nrmsjnjr152ueo3soc-a-calendar-opensocial.googleusercontent.com
203.208.46.202 3-open-opensocial.googleusercontent.com
203.208.46.202 4-ps.googleusercontent.com
203.208.46.202 4fjvqid3r3oq66t548clrdj52df15coc-a-oz-opensocial.googleusercontent.com
203.208.46.202 53rd6p0catml6vat6qra84rs0del836d-a-oz-opensocial.googleusercontent.com
203.208.46.202 59cbv4l9s05pbaks9v77vc3mengeqors-a-oz-opensocial.googleusercontent.com
203.208.46.202 8kubpeu8314p2efdd7jlv09an9i2ljdo-a-oz-opensocial.googleusercontent.com
203.208.46.202 adstvca8k2ooaknjjmv89j22n9t676ve-a-oz-opensocial.googleusercontent.com
203.208.46.202 a-oz-opensocial.googleusercontent.com
203.208.46.202 blogger.googleusercontent.com
203.208.46.202 bt26mravu2qpe56n8gnmjnpv2inl84bf-a-oz-opensocial.googleusercontent.com
203.208.46.202 clients1.googleusercontent.com
203.208.46.202 clients2.googleusercontent.com
203.208.46.202 clients3.googleusercontent.com
203.208.46.202 clients4.googleusercontent.com
203.208.46.202 clients5.googleusercontent.com
203.208.46.202 clients6.googleusercontent.com
203.208.46.202 clients7.googleusercontent.com
203.208.46.202 code-opensocial.googleusercontent.com
203.208.46.202 debh8vg7vd93bco3prdajidmm7dhql3f-a-oz-opensocial.googleusercontent.com
203.208.46.202 doc-00-7o-docs.googleusercontent.com
203.208.46.202 doc-08-7o-docs.googleusercontent.com
203.208.46.202 doc-0c-7o-docs.googleusercontent.com
203.208.46.202 doc-0g-7o-docs.googleusercontent.com
203.208.46.202 doc-0s-7o-docs.googleusercontent.com
203.208.46.202 doc-10-7o-docs.googleusercontent.com
203.208.46.202 doc-14-7o-docs.googleusercontent.com
203.208.46.202 feedback.googleusercontent.com
203.208.46.202 googlehosted.l.googleusercontent.com
203.208.46.202 hsco54a20sh11q9jkmb51ad2n3hmkmrg-a-oz-opensocial.googleusercontent.com
203.208.46.202 i8brh95qor6r54nkl52hidj2ggcs4jgm-a-oz-opensocial.googleusercontent.com
203.208.46.202 images1-focus-opensocial.googleusercontent.com
203.208.46.202 images2-focus-opensocial.googleusercontent.com
203.208.46.202 images3-focus-opensocial.googleusercontent.com
203.208.46.202 images4-focus-opensocial.googleusercontent.com
203.208.46.202 images5-focus-opensocial.googleusercontent.com
203.208.46.202 images6-focus-opensocial.googleusercontent.com
203.208.46.202 images7-focus-opensocial.googleusercontent.com
203.208.46.202 images8-focus-opensocial.googleusercontent.com
203.208.46.202 images9-focus-opensocial.googleusercontent.com
203.208.46.202 images-docs-opensocial.googleusercontent.com
203.208.46.202 k6v18tjr24doa89b55o3na41kn4v73eb-a-oz-opensocial.googleusercontent.com
203.208.46.202 lh1.googleusercontent.com
203.208.46.202 lh2.googleusercontent.com
203.208.46.202 lh3.googleusercontent.com
203.208.46.202 lh4.googleusercontent.com
203.208.46.202 lh5.googleusercontent.com
203.208.46.202 lh6.googleusercontent.com
203.208.46.202 mail-attachment.googleusercontent.com
203.208.46.202 music.googleusercontent.com
203.208.46.202 music-onebox.googleusercontent.com
203.208.46.202 oauth.googleusercontent.com
203.208.46.202 ob7f2qc0i50kbjnc81vkhgmb5hsv7a8l-a-oz-opensocial.googleusercontent.com
203.208.46.202 ode25pfjgmvpquh3b1oqo31ti5ibg5fr-a-calendar.opensocial.googleusercontent.com
203.208.46.202 qhie5b8u979rnch1q0hqbrmbkn9estf7-a-oz-opensocial.googleusercontent.com
203.208.46.202 r70rmsn4s0rhk6cehcbbcbfbs31pu0va-a-oz-opensocial.googleusercontent.com
203.208.46.202 rbjhe237k979f79d87gmenp3gejfonu9-a-oz-opensocial.googleusercontent.com
203.208.46.202 s1.googleusercontent.com
203.208.46.202 s2.googleusercontent.com
203.208.46.202 s3.googleusercontent.com
203.208.46.202 s4.googleusercontent.com
203.208.46.202 s5.googleusercontent.com
203.208.46.202 s6.googleusercontent.com
203.208.46.202 spreadsheets-opensocial.googleusercontent.com
203.208.46.202 t.doc-0-0-sj.sj.googleusercontent.com
203.208.46.202 themes.googleusercontent.com
203.208.46.202 translate.googleusercontent.com
203.208.46.202 u807isd5egseeabjccgcns005p2miucq-a-oz-opensocial.googleusercontent.com
203.208.46.202 upt14k1i2veesusrda9nfotcrbp9d7p5-a-oz-opensocial.googleusercontent.com
203.208.46.202 webcache.googleusercontent.com
203.208.46.202 www.googleusercontent.com
203.208.46.202 www-calendar-opensocial.googleusercontent.com
203.208.46.202 www-fc-opensocial.googleusercontent.com
203.208.46.202 www-focus-opensocial.googleusercontent.com
203.208.46.202 www-gm-opensocial.googleusercontent.com
203.208.46.202 www-kix-opensocial.googleusercontent.com
203.208.46.202 www-open-opensocial.googleusercontent.com
203.208.46.202 www-opensocial.googleusercontent.com
203.208.46.202 www-opensocial-sandbox.googleusercontent.com
203.208.46.202 www-oz-opensocial.googleusercontent.com
203.208.46.207 csi.gstatic.com
203.208.46.207 g0.gstatic.com
203.208.46.207 g1.gstatic.com
203.208.46.207 g2.gstatic.com
203.208.46.207 g3.gstatic.com
203.208.46.207 maps.gstatic.com
203.208.46.207 mt0.gstatic.com
203.208.46.207 mt1.gstatic.com
203.208.46.207 mt2.gstatic.com
203.208.46.207 mt3.gstatic.com
203.208.46.207 mt4.gstatic.com
203.208.46.207 mt5.gstatic.com
203.208.46.207 mt6.gstatic.com
203.208.46.207 mt7.gstatic.com
203.208.46.207 ssl.gstatic.com
203.208.46.207 t0.gstatic.com
203.208.46.207 t1.gstatic.com
203.208.46.207 t2.gstatic.com
203.208.46.207 t3.gstatic.com
203.208.46.207 www.gstatic.com
203.208.46.170 lh1.ggpht.com
203.208.46.170 lh2.ggpht.com
203.208.46.170 lh3.ggpht.com
203.208.46.170 lh4.ggpht.com
203.208.46.170 lh5.ggpht.com
203.208.46.170 lh6.ggpht.com
203.208.46.170 nt0.ggpht.com
203.208.46.170 nt1.ggpht.com
203.208.46.170 nt2.ggpht.com
203.208.46.170 nt3.ggpht.com
203.208.46.170 nt4.ggpht.com
203.208.46.170 nt5.ggpht.com
203.208.46.200 appspot.com
173.194.64.141 chrometophone.appspot.com
203.208.46.200 evolutionofweb.appspot.com
203.208.46.200 googcloudlabs.appspot.com
203.208.46.200 gv-gadget.appspot.com
203.208.46.200 magnifier.blogspot.com
203.208.46.200 moderator.appspot.com
203.208.46.200 newsfeed-dot-latest-dot-rovio-ad-engine.appspot.com
203.208.46.200 productideas.appspot.com
203.208.46.200 project-slingshot-gp.appspot.com
203.208.46.200 r2303.latest.project-slingshot-hr.appspot.com
203.208.46.200 r3085-dot-latest-dot-project-slingshot-gp.appspot.com
203.208.46.200 r3091-dot-latest-dot-project-slingshot-gp.appspot.com
203.208.46.200 r3101-dot-latest-dot-project-slingshot-gp.appspot.com
203.208.46.200 r3269-dot-latest-dot-project-slingshot-gp.appspot.com
203.208.46.200 r3432-dot-latest-dot-project-slingshot-hr.appspot.com
203.208.46.200 r4681-dot-latest-dot-project-slingshot-hr.appspot.com
203.208.46.170 r7647-dot-latest-dot-project-slingshot-hr.appspot.com
203.208.46.200 wcproxyx.appspot.com
203.208.46.200 www.appspot.com
203.208.46.200 ajax.googleapis.com
203.208.46.200 chart.googleapis.com
203.208.46.200 fonts.googleapis.com
203.208.46.200 maps.googleapis.com
203.208.46.200 mt0.googleapis.com
203.208.46.200 mt1.googleapis.com
203.208.46.200 mt2.googleapis.com
203.208.46.200 mt3.googleapis.com
203.208.46.200 redirector-bigcache.googleapis.com
203.208.46.200 translate.googleapis.com
203.208.46.200 www.googleapis.com
203.208.46.200 autoproxy-gfwlist.googlecode.com
203.208.46.200 chromium.googlecode.com
203.208.46.200 closure-library.googlecode.com
203.208.46.200 earth-api-samples.googlecode.com
203.208.46.200 gmaps-samples-flash.googlecode.com
203.208.46.200 google-code-feed-gadget.googlecode.com
203.208.46.200 blogsearch.google.cn
203.208.46.200 ditu.google.cn
203.208.46.200 gg.google.cn
203.208.46.200 id.google.cn
203.208.46.200 maps.gstatic.cn
203.208.46.200 m.google.cn
203.208.46.200 mt.google.cn
203.208.46.200 mt0.google.cn
203.208.46.200 mt1.google.cn
203.208.46.200 mt2.google.cn
203.208.46.200 mt3.google.cn
203.208.46.200 news.google.cn
203.208.46.200 scholar.google.cn
203.208.46.200 translate.google.cn
203.208.46.200 www.google.cn
203.208.46.200 www.gstatic.cn
203.208.46.200 accounts.google.com.hk
203.208.46.200 blogsearch.google.com.hk
203.208.46.200 books.google.com.hk
203.208.46.200 clients1.google.com.hk
203.208.46.200 desktop.google.com.hk
203.208.46.200 encrypted.google.com.hk
203.208.46.200 groups.google.com.hk
203.208.46.200 gxc.google.com.hk
203.208.46.200 id.google.com.hk
203.208.46.200 images.google.com.hk
203.208.46.200 m.google.com.hk
203.208.46.200 maps.google.com.hk
203.208.46.200 news.google.com.hk
203.208.46.200 picasaweb.google.com.hk
203.208.46.200 plus.url.google.com.hk
203.208.46.200 scholar.google.com.hk
203.208.46.200 toolbar.google.com.hk
203.208.46.200 toolbarqueries.google.com.hk
203.208.46.200 translate.google.com.hk
203.208.46.200 translate.google.com.hk
203.208.46.200 wenda.google.com.hk
203.208.46.200 www.google.com.hk
203.208.46.200 accounts.blogger.com
203.208.46.200 android.googlesource.com
203.208.46.200 auth.keyhole.com
203.208.46.200 chrome.angrybirds.com
203.208.46.200 chromium.org
203.208.46.200 codereview.chromium.org
203.208.46.200 dev.chromium.org
203.208.46.200 developer.android.com
203.208.46.200 developer.chrome.com
203.208.46.200 domains.googlesyndication.com
203.208.46.200 earthengine.googlelabs.com
203.208.46.200 feeds.feedburner.com
203.208.46.200 g.co
203.208.46.200 gmail.com
203.208.46.200 goo.gl
203.208.46.162 listen.googlelabs.com
203.208.46.200 m.gmail.com
203.208.46.200 m.googlemail.com
203.208.46.200 market.android.com
203.208.46.163 ngrams.googlelabs.com
173.194.37.99 panoramio.com
203.208.46.222 smarthosts.googlecode.com
203.208.46.222 ssl.google-analytics.com
173.194.76.128 static.panoramio.com
203.208.46.200 www.blogger.com
203.208.46.200 www.chromium.org
203.208.46.200 www.gmail.com
203.208.46.200 www.googleadservices.com
203.208.46.222 www.google-analytics.com
203.208.46.200 www.googlelabs.com
203.208.46.222 www.googlesource.com
173.194.37.99 www.panoramio.com
203.208.46.200 plus.google.com
203.208.46.200 plus.url.google.com
203.208.46.200 plusone.google.com
#Google Services END
#Facebook Start
173.252.100.18 api-read.facebook.com
173.252.100.18 api.facebook.com
69.171.237.36 apps.facebook.com
61.213.189.98 b.static.ak.facebook.com
61.213.189.120 b.static.ak.fbcdn.net
66.220.145.63 bigzipfiles.facebook.com
61.213.189.113 creative.ak.fbcdn.net
66.152.103.74 external.ak.fbcdn.net
66.220.149.88 c.facebook.com
69.171.227.26 chat.facebook.com
66.220.147.96 check4.facebook.com
184.31.111.139 connect.facebook.net
69.171.227.19 creativeupload.facebook.com
69.171.240.99 d.facebook.com
173.252.100.18 developers.facebook.com
66.220.149.90 error.facebook.com
173.252.100.18 facebook.com
61.213.189.113 fbcdn.net
64.213.102.26 fbcdn-profile-a.akamaihd.net
173.223.232.67 fbcdn-sphotos-a.akamaihd.net
173.252.100.18 graph.facebook.com
66.220.151.33 hphotos-ak-snc1.facebook.com
66.220.151.33 hphotos-ak-snc3.facebook.com
69.171.240.10 hphotos-ash4.fbcdn.net
69.63.183.200 hphotos-pao1.fbcdn.net
66.220.151.33 hphotos-snc1.fbcdn.net
66.220.151.32 hphotos-snc3.fbcdn.net
66.220.151.22 hphotos-snc6.fbcdn.net
69.171.227.24 hphotos-snc7.fbcdn.net
66.220.144.43 ldap.thefacebook.com
173.252.100.25 m.facebook.com
66.220.149.96 o.facebook.com
69.171.233.33 orcart.facebook.com
69.171.245.18 photos-ak-ash1.facebook.com
69.171.245.18 photos-ash1.facebook.com
66.220.149.90 pixel.facebook.com
118.214.190.105 profile.ak.facebook.com
61.213.189.114 profile.ak.fbcdn.net
69.171.247.22 s-static.facebook.com
61.213.189.113 s-hprofile-sf2p.fbcdn.net
184.26.194.110 s-static.ak.facebook.com
23.5.157.177 s-static.ak.fbcdn.net
69.171.227.30 secure-media.facebook.com
69.171.227.30 secure-media.fbcdn.net
66.220.149.96 ssl.facebook.com
69.171.247.38 ssl.connect.facebook.com
69.63.189.76 star.facebook.com
61.213.189.98 static.ak.facebook.com
65.32.34.136 static.ak.fbcdn.net
69.171.229.17 upload.facebook.com
66.220.144.41 vpn.tfbnw.net
120.29.145.50 vthumb.ak.fbcdn.net
66.220.151.31 vupload.facebook.com
69.171.225.31 www.connect.facebook.com
173.252.100.18 www.facebook.com
69.171.242.72 zh-CN.facebook.com
#Facebook End
#Flickr START
66.94.233.186 flickr.com
66.94.233.186 www.flickr.com
68.142.214.43 static.flickr.com
69.147.90.159 farm2.static.flickr.com
76.13.18.78 farm3.static.flickr.com
67.195.19.66 farm4.static.flickr.com
76.13.18.79 farm5.static.flickr.com
98.139.197.254 farm6.static.flickr.com
98.139.102.46 farm7.static.flickr.com
98.136.43.76 geo.yahoo.com
68.142.250.161 l.yimg.com
96.6.93.227 s.yimg.com
98.137.88.88 d.yimg.com
68.142.196.57 c5.ah.yahoo.com
124.108.120.124 sa.edit.yahoo.com
66.163.168.247 open.login.yahoo.com
209.191.92.114 login.yahoo.com
209.191.92.115 edit.yahoo.com
209.191.121.31 up.flickr.com
209.191.105.102 adjax.flickr.yahoo.com
204.0.5.35 content.yieldmanager.edgesuite.net
204.0.5.34 us.js2.yimg.com
#data from HostsX
76.13.18.78 bf1.farm3.static.flickr.com
76.13.18.78 farm3.static.flickr.com
76.13.18.78 gq1.farm3.static.flickr.com
76.13.18.78 sp1.farm3.static.flickr.com
76.13.18.79 bf1.farm5.static.flickr.com
76.13.18.79 farm5.static.flickr.com
76.13.18.79 gq1.farm5.static.flickr.com
98.139.102.46 bf1.farm7.static.flickr.com
98.139.102.46 farm7.static.flickr.com
98.139.102.46 gq1.farm7.static.flickr.com
98.139.102.46 ne1.farm7.static.flickr.com
98.139.197.254 bf1.farm6.static.flickr.com
98.139.197.254 farm6.static.flickr.com
98.139.197.254 gq1.farm6.static.flickr.com
#Flickr END
#Adobe Activation START
0.0.0.0 3dns-2.adobe.com
0.0.0.0 3dns-3.adobe.com
0.0.0.0 activate.adobe.com
0.0.0.0 activate-sea.adobe.com
0.0.0.0 activate-sjc0.adobe.com
0.0.0.0 adobe-dns.adobe.com
0.0.0.0 adobe-dns-2.adobe.com
0.0.0.0 adobe-dns-3.adobe.com
0.0.0.0 ereg.adobe.com
0.0.0.0 hl2rcv.adobe.com
0.0.0.0 practivate.adobe.com
0.0.0.0 wip3.adobe.com
0.0.0.0 activate.wip3.adobe.com
0.0.0.0 ereg.wip3.adobe.com
0.0.0.0 wwis-dubc1-vip60.adobe.com
#Adobe Activation END
#YouTube START
203.208.46.206 accounts.youtube.com
203.208.46.206 apiblog.youtube.com
203.208.46.206 help.youtube.com
203.208.46.206 i.ytimg.com
203.208.46.206 i1.ytimg.com
203.208.46.206 i2.ytimg.com
203.208.46.206 i3.ytimg.com
203.208.46.206 i4.ytimg.com
203.208.46.206 insight.youtube.com
203.208.46.206 m.youtube.com
203.208.46.206 s.ytimg.com
203.208.46.206 www.youtube.com
203.208.46.206 ytimg.l.google.com
#YouTube END
#GitHub START
204.232.175.78 documentcloud.github.com
207.97.227.239 github.com
204.232.175.94 gist.github.com
107.21.116.220 help.github.com
207.97.227.252 nodeload.github.com
199.27.76.130 raw.github.com
107.22.3.110 status.github.com
204.232.175.78 training.github.com
207.97.227.243 www.github.com
#GitHub END
38.229.72.14 www.torproject.org
#SmartHosts END
一:安装网络流量监视[默认5分钟采集一次]
切换到超级用户:
sudo -sH
安装软件:
apt-get install apache2
apt-get install mrtg
apt-get install snmpd
编辑snmpd:
vim /etc/snmp/snmpd.conf
查找到类似的行,修改为如下所示:(仅仅修改屏蔽或放开)
# sec.name source community
# com2sec paranoid default public # kommentieren
com2sec readonly default public # <- auskommentieren
#com2sec readwrite default private
重启snmpd服务:
/etc/init.d/snmpd restart
重新生成mrtg的配置文件:
cfgmaker public@localhost > /etc/mrtg.cfg
(注意)如果仅仅监视一个IP地址采用如下命令:
cfgmaker public@192.168.0.1 >> /etc/mrtg.cfg
生成mrtg的主页:
indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html
访问:
http://localhost/mrtg/
二安装CPU负载监视[默认5分钟采集一次]
切换到超级用户:
sudo -sH
安装软件:
apt-get install sysstat
建立CPU脚本:
mkdir /opt/mrtg
vim /opt/mrtg/mrtg.cpu
#!/bin/bash
cpuusr=`/usr/bin/sar -u 1 3 | grep Average | awk '{print $3}'`
cpusys=`/usr/bin/sar -u 1 3 | grep Average | awk '{print $5}'`
UPtime=`/usr/bin/uptime | awk '{print $3""$4""$5}'`
echo $cpuusr
echo $cpusys
echo $UPtime
hostname
使脚本可以执行:
chmod +755 /opt/mrtg/mrtg.cpu
修改 /etc/mrtg.cfg 在文件最后加入cpu项目
Target[cpu]: `/opt/mrtg/mrtg.cpu`
MaxBytes[cpu]: 100
Options[cpu]: gauge, nopercent, growright
YLegend[cpu]: CPU loading (%)
ShortLegend[cpu]: %
LegendO[cpu]: CPU us;
LegendI[cpu]: CPU sy;
Title[cpu]: CPU Loading
PageTop[cpu]:
CPU Loading
重新生成索引页面:
indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html
三安装WWW连接数监视[默认5分钟采集一次]
切换到超级用户:
sudo -sH
建立WWW脚本:
mkdir /opt/mrtg
vim /opt/mrtg/mrtg.www
#!/bin/bash
all=`netstat -a | grep www|awk '{print $5}'|sort | wc -l|awk '{print$1 - 1}'`
user=`netstat -a | grep www|awk '{print $5}'|cut -d":" -f1|sort| uniq |wc -l | awk '{print $1 - 1}'`
if [ "$all" = "-1" ]; then
echo 0
else
echo $all
fi
if [ "$user" = "-1" ]; then
echo 0
else
echo $user
fi
UPtime=`/usr/bin/uptime | awk '{print $3 " " $4 " " $5}'`
echo $UPtime
hostname
使脚本可以执行:
chmod +755 /opt/mrtg/mrtg.www
修改 /etc/mrtg.cfg 在文件最后加入www项目
Target[www]: `/opt/mrtg/mrtg.www`
MaxBytes[www]: 500
Options[www]: nopercent, growright
YLegend[www]: Online Users
ShortLegend[www]: %
LegendI[www]: Connect :
LegendO[www]: Online :
Title[www]: WWW Connect
PageTop[www]:
WWW Connect
重新生成索引页面:
indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html