首页 > 代码库 > lvs,dhcp,dns,lnmp,lamp,zabbix,nagios,hadoop,openstack,rsync等工作原理

lvs,dhcp,dns,lnmp,lamp,zabbix,nagios,hadoop,openstack,rsync等工作原理

 一、客户端获取DHCP的过程

    1、客服端通过广播发送    DHCPdiscovery包,寻找DHCP服务器数据包

            源IP:0.0.0.0    目的地址:255.255.255.0

            无响应:等待1秒,发送第二次。等待9秒,发送第三次。13。16.

            有相应:

    2、服务器提供地址信息    DHCPoffer包

            用客户端MAC地址回应

            数据包中包含IP地址、租约信息等

    3、客户端接受并广播

            发送    DHCPrequest广播包,告知网络中所有DHCP主机

            发送arp包,检查IP是否可用,若被占用,则拒绝服务器offer包,重新discovery

    4、服务器确认

            收到客户端发送的request包后,向客户端发送DHCPPack包,包含IP等网络参数

    5、客户端确认

            收到DHCPPack包后,按照内容配置网卡

    6、客户端重新登录

            发送request包,请求之前使用过的IP地址

    7、服务器确认

            如果可用,服务器则分配DHCPPack包确认信息

            如果不可用,服务器分配DHCPack包,告知客户端重新discovery

    8、更新租约

            客户端租约期限一半时,向服务器发送DHCPPrequest包,要求更新租约

            无回应则,再到一半时(75%),重新发送,依然得不到回应。则租约使用至到期,重新DHCPdiscovery

 

 

 LAMP和LNMP都是在网站服务器架构中的系统环境。

    LAMP指的是:Linux+Apache+MySQL+Perl/PHP/Python

    参见:LAMP是什么?

    LNMP指的是:Linux+Nginx+MySQL+PHP

    lamp

Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本  

   有:debian、centos、ubuntu、fedora、gentoo等。

    Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

    Mysql是一个小型关系型数据库管理系统。

    Php是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言。

    这四种软件均为免费软件,组合到一起,成为一个免费、高效的网站服务系统。

由于Nginx拥有超越Apache的卓越性能,LNMP正在逐渐取代LAMP.

 

 

nginx相对于apache的区别是:

轻量级,同样起web 服务,比apache 占用更少的内存及资源

抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能

高度模块化的设计,编写模块相对简单

社区活跃,各种高性能模块出品迅速

apache 相对于nginx 的优点:

rewrite ,比nginx 的rewrite 强大

模块超多,基本想到的都可以找到

少bug ,nginx 的bug 相对较多

存在就是理由,一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就apache 吧。后者的各种功能模块实现得比前者,例如ssl 的模块就比前者好,可配置项多。这里要注意一点,epoll(freebsd 上是 kqueue )网络IO 模型是nginx 处理性能高的根本理由,但并不是所有的情况下都是epoll 大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache 的select 模型或许比epoll 更高性能。

当然,这只是根据网络IO 模型的原理作的一个假设,真正的应用还是需要实测了再说的。

 

1、Cacti简介

1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。

2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量

3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(RoundRobinArchive),它能够存储的数据笔数在创建时就已经定义。

2.1    Data Retrieval

Cacti首先要做的工作就是收集数据,cacti使用Poller(轮询器)收集数据。Poller是操作系统scheduler的扩展,如在类Unix系统中的crontab。现在的IT设施中会有许多不同的设备,如服务器、网络设备等,cacti主要使用SNMP协议来从远端的设备上收集数据,所有可以使用SNMP协议的设备都可以被cacti监控。

2.2    Data Storage

存储收集到的数据有许多方法,可以使用数据库、平面文件等,cacti使用的是RDDTool。RRD是Round Robin Database(环形数据库)的缩写,RRD用来存储和显示时间序列数据,如网络带宽、机房温度、服务器负载等,RRD使用非常紧凑的方式存储数据,数据不会随着时间的推移而增大,RRD还可以生成美观的图形。这些特性使得cacti没有存储需求。RRD也做一席位其他的工作,如RRD会将原始数据与已整合的数据进行合并,以使得历史数据的存储节省空间,RRD支持的整合功能包括:AVERAGE, MAXIMUM, MINIMUM和LAST。

2.3    Data Presentation

Cacti最大的一个特点是内置了RRDTool画图功能,将其与通用的web服务器相结合,可以实现在任意平台上使用浏览器就可以查看监控画面。

 

一.DNS工作原理是什么?

DNS 是域名系统 (Domain Name System) 的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。 DNS 命名用于 Internet 等 TCP/IP 网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的IP地址,这样才能上网。其实,域名的最终指向是IP。

二.要实现DNS服务,服务器和客户端各自应如何配置?

1、 安装DNS服务

 

开始—〉设置—〉控制面板—〉添加/删除程序—〉添加/删除Windows组件—〉“网络服务”—〉选择“域名服务系统(DNS)”—〉按确定进行安装

 

 

2、 创建DNS正相解析区域

 

开始—〉程序—〉管理工具—〉选择DNS,打开DNS控制台—〉右击“正相搜索区域”—〉选择“新建区域”—〉选择“标准主要区域”(或“Active Directory 集成区域”或“标准辅助区域”)--〉输入域名“abc.com” —〉输入要保存的区域的文件名“abc.com.dns”— 〉按完成,完成创建

 

创建主机记录等:

 

右击“abc.com”—〉“新建主机” —〉在名称处输入“www”,在“IP地址”处输入“192.168.0.3”,—〉按“添加主机”完成

 

3、 创建DNS反向解析区域

 

开始—〉程序—〉管理工具—〉选择DNS,打开DNS控制台—〉右击“反向搜索区域”—〉选择“新建区域”—〉选择“标准主要区域”—〉输入用来标示区域的“网络ID”—〉输入要保存的区域的文件名“0.168.192.in-addr.arpa.dns”—〉按完成,完成创建

 

创建指针PTR:

 

右击“192.168.1.x.subnet”—〉选择“新建指针”—〉在“主机IP号”中输入2—〉在“主机名”中输入ftp—按 “确定”完成添加

 

4、 启用DNS循环复用功能

 

www.abc.com对应于多个IP地址时DNS每次解析的顺序都不同

 

右击选择“DNS服务器”—〉属性—〉高级—〉选择“启用循环”(round robin)--〉选择“启用netmask 排序”—〉按“ 确定”返回

 

注:如所有的IP和域名服务器在同一子网时需要取消“启用netmask排序”,才能实现循环复用功能。即启用循环时 ,当主机的IP和dns在同一个子网时将始终排在最前面,当都在一个子网时就不进行循环,只有去除了“启用netmask排序” 时才能实现循环复用。

 

DNS服务器会优先把与自己的网络ID相同的记录返回给客户端

 

5、 创建标准辅助区域,实现DNS区域复制

 

在另一台DNS服务器上,右击“正向搜索区域”—〉选择“新建区域”—〉选择“标准辅助区域”—〉输入“abc.com”—〉输入主域名服务器的IP地址—〉选择“完成”

 

 

可手工要求同步:

 

在辅域名服务器上右击“abc.com”的域—〉选择“从主服务器传输”

 

并且可以设置允许传输的域名服务器:

 

 

在主域名服务器上右击“abc.com”的域—〉选择“属性”—〉选择“区域复制”—〉在“允许复制”前打勾,并选择允许复制的主机(到所有服务器、只有在“名称服务器”选项卡中列出的服务器、只允许到下列服务器)

 

完成服务器类型的转换:

 

右击区域—〉选择 “属性”—〉选择“类型”的“更改”按钮—〉选择要更改的区域类 型—〉按“确定”

 

6、 实现DNS唯高速缓存服务器

 

创建一个没有任何区域的DNS服务器—〉右击DNS服务器—〉选择“属性”—〉选择“转 发器”中的“启用转发器”—〉输入转发器的IP地址—〉按“确定”完成

 

清除“唯高速缓存”中的cache内容:

 

右击“DNS服务器”—〉选择“清除缓存”

 

或者选择“DNS服务器”—〉在菜单中选择“查看”,高级—〉右击“缓存的查找”—〉选择“清除缓存”

(客户端清空DNS缓存—)ipconfig /flushdns)

 

7、 DNS的委派(子域的转向)

 

在原域名服务器上建立“subdomain.abc.com”的主机—〉右击abc.com的域,选择“新建委派”—〉将subdomain.abc.com的域代理给subdomain.abc.com的主机—〉在subdomain.abc.com上建立“正向标准区域”subdomain.abc.com—〉添加相关主机记录

 

8、 设置 DNS区域的动态更新

 

右击选择DNS上区域—〉选择“属性”—〉选择“常规”中的“允许动态更新”,选是— 〉然后按 “确定”—〉在本机的DHCP服务器中—〉右击选择DHCP服务器—〉选择“属性”—〉选择“DNS”—〉选择“为不支持动态更新的DNS客户启用更新”—〉在客户端使用ipconfig /registerdns来更新域名的注册信息

 

注意客户端需要将完整的计算机名改成myhost.abc.com

 

9、 配置DNS客户端

 

在客户端计算机上打开tcp/ip属性对话框,在dns服务器地址栏输入dns服务器的ip地址

 

手工配置最多可配置12个 DNS服务器

分享给你的朋友吧:

· 人人网

· 新浪微博

· 开心网

· MSN

· QQ空间

对我有帮助

 

三. 如何测试DNS服务是否成功?

快速测试DNS服务器配置是否正确

你的内网DNS服务器工作状态正常吗?大家常用的测试方法是查看内网用户是否能使用域名浏览网站,但这种测试方法并不全面和科学。其实最简单和便捷的方式是使用nslookup+Ping命令的组合方式,通过简单的两步就能给本地企业网中的DNS服务器做个快速“体检”。

  第一步:首先使用nslookup命令来测试本企业网的DNS服务器,查看它是否能正常将域名解析成IP地址。这里笔者以www.yahoo.com这个域名为例。

  在企业网内客户机中,点击“开始→运行”,然后输入“CMD”命令调出提示符窗口。在提示符窗口中输入“nslookup”命令,接着在“>”提示符后输入“www.yahoo.com”并按回车键,如果你的DNS服务器工作正常,就会出现“Addresses:66.94.230.75,66.94.230.38,66.94.230.40,66.94.230.41,66.94.230.46,66.94.230.47,66.94.230.49,66.94.230.52,”的提示信息,说明DNS服务器已经成功将域名解析成IP地址了,最后输入“exit”命令,这样就完成第一步测试。
[提示]:一般情况下,一个域名只对应一个IP地址。但对于某些使用群集技术的网站来说,如www.yahoo.com,使用nslookup命令解析域名后,就会出现多个对应的IP地址。
    
    第二步:成功完成第一步操作后,说明本地DNS服务器的域名解析成IP地址是正常的,但这还是不够,那么DNS服务器是否能正常将一个IP地址反向解析成域名呢?下面就以上面解析出的“66.94.230.75”这个IP地址为例,介绍如何使用“Ping”进行测试。

  在命令提示符窗口中输入“ping -a 66.94.230.75”命令,如果出现类似于“Pinging p1.vip.scd.yahoo.com [66.94.230.75] with 32 bytes of data”这样的提示信息,说明对本地DNS服务器反向解析成功,这样就完成第二步测试。到此为止对DNS服务的测试工作完成,说明你使用的DNS服务器工作正常。

三. 如何实现不同的域名转换为同一个IP地址?

把不同的域名都解析到同一个IP地址

五.如何实现不同的域名转换为不同的IP地址?

如果是为域名绑定IP的话去你的域名注册商那里进入域名管理界面添加A记录就行了,不同的域名注册商有不同的域名管理界面。

 

 

 

 

 

   LVS 工作原理基本类似DNAT,又不完全相像,它是一种四层交换,默认情况下来通过用户请求的的地址和端口,来判断用户的请求,从而转发到后台真正提供服务的主机,而判断这种请求的是通过套接字来实现,所以四层就可以实现。

注:源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。

 

 

 

 

Linux集群原理

Linux集群系统包括集群节点和集群管理器两部分。集群节点有时简称为节点、服务器或服务器节点,是提供处理资源的系统,它进行集群的实际工作。一般来讲,它必须进行配置才能成为集群的一部分,也必须运行集群的应用软件。应用软件可以是专用于集群的软件,也可以是设计用于分布式系统的标准软件。Linux集群管理器则是将节点捆绑在一起,以构成单一系统外观的逻辑结构,它用于将任务分解到所有的节点。

集群因多种不同的原因而有着不同的类型,建立Linux集群的最直接原因是共享CPU资源,在多个机器之间平衡负载,获得更多的系统可靠性,或在主机失败时提供后备系统(切换)。

通过对相关软件的分析,实现集群负载的功能是通过流量管理实现的,具体有以下几种实现方法:直接路由(Direct Forwarding)、网络地址转换(NAT)和隧道技术(Tunneling)。

直接路由(Direct Forwarding)是当参与集群的计算机和作为控制管理的计算机在同一个网段时可以使用此法。控制管理的计算机接收到请求包时,直接送到参与集群的节点。它的优点是返回给客户的流量不经过控制主机,速度快、开销少。

可能大家比较熟悉网络地址转换(NAT)这种方法。地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址,外界看起来包是来自地址转换器本身。当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。它的优点是节省IP地址,能对内部进行伪装;缺点是效率低,因为返回给请求方的流量要经过转换器。

隧道技术(Tunneling)这种方式是Linux集群的节点不在同一个网段时采用的转发机制,是将IP包封装在其它网络流量中。从安全角度考虑,应该使用隧道技术中的VPN,也可使用租用专线。

Linux集群所能提供的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务和Proxy服务器等。下面我就以一个具体的产品TurboLinux Cluster Server 来实现一个负载均衡Linux集群系统,用于提供Web和FTP服务。

Linux集群规划

1.提供的服务:Web、FTP.

2.做一个较完善的负载均衡系统,以便能用到其中较多的功能。

3.使用4台服务器,其中3台安装TurboLinux Cluster Server,1台安装Windows 2000 Sever .

Linux集群安装

1.在3台服务器上安装Turbo Linux,还需要安装Apache和wu-ftpd,因为Linux集群要提供这种服务。安装完成后重启机器,挂接光驱在目录/mnt/cdrom下,执行。/TLCS-install,然后按提示完全安装。

2.在1台服务器上安装Windows 2000 Server,还要安装Internet Information Server 5.0.

配置Linux集群管理器

1.设置各台服务器的IP地址、子网掩码、路由等,调通网络,并将1台TurboLinux服务器设置成DNS服务器,使其能够正向解析和反向解析。此例服务器名为pc1,域为test.com.

2.配置Cluster Server.执行TurboLinuxclusteradmin,设置情况如下(连字符连接的是选单选项或其下级选单,冒号后为设置情况):

(1)ClusterServer Configuration-Cluster Services-Application Stability Agents:

http为默认的服务,不用设置。

ftp:/usr/lib/ftpAgent

(2)ClusterServer Configuration--Cluster Services--Service Settings:

http,80:TCP,sticky.

ftp,21:TCP,ftp.

(3)ClusterServer Configuration--Servers Configuration:

pc1 (pc1.test.com),direct,ping

pc2 (pc2.test.com),direct,ping

pc3 (pc3.test.com),direct,ping

pc4 (pc4.test.com),direct,ping

(4)ClusterServer Configuration--Advance Traffic Managers:

Advance Traffic Manager System:pc1.test.com

Advance Traffic Manager Setting: 默认值

(5)ClusterServer ConfigurationàVirtual Severs:

主机为:pc1.test.com

sendmail:master@pc1 .test.com

Server pool name: Server Group1

(6)ClusterServer ConfigurationàGloble Settings:

网络设置:netmask 255.255.255.0

配置集群各节点

1.配置Windows 2000 Server节点

因为TurboLinux Cluster Server 本身能被工具自动同步,所以只要配置Windows 2000 Server即可。

(1)开始→设置→控制面板→添加新硬件→下一步→添加/排除设备故障→添加新设备→否,再从列表选择硬件→其它设备→Microsoft:Microsoft Loopback Adapter→完成。

(2)在桌面上单击鼠标右键选择网上邻居→属性→TCP/IP,设置IP地址、缺省网关、子网掩码(先设成 255.255.255.0)。

(3)开始→运行→regedit→找到注册表中与Microsoft Loopback Adapter相关的项,将子网掩码改成 255.255.255.255.

(4)配置系统运行合适的服务,并配置适合集群管理器管理的配置,以便可在控制管理器中使用。

2.配置Turbo Linux Cluster Server节点

(1)在管理菜单中选tlcs_content _sync执行内容同步,输入将要配置的节点机密码,将复制集群管理器中的服务内容到节点。

(2)在管理菜单中选择tlcs_ config _sync执行设置同步,输入将要配置的节点机密码,复制集群管理器中的设置内容到节点。

到此,我们已经可以在集群管理器PC1上看到运行状态,可将客户端连在接服务器的交换机上,客户端可以请求Web和FTP服务。

 

 

 

 

OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件开放源代码项目。

OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。

OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息,帮助大家利用OpenStack前端来设置及管理自己的公共云或私有云。

OpenStack云计算平台,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service, IaaS)。OpenStack 包含两个主要模块:Nova 和 Swift,前者是 NASA 开发的虚拟服务器部署和业务计算模块;后者是 Rackspace开发的分布式云存储模块,两者可以一起用,也可以分开单独用。OpenStack除了有 Rackspace 和 NASA 的大力支持外,还有包括 Dell、Citrix、 Cisco、 Canonical等重量级公司的贡献和支持,发展速度非常快,有取代另一个业界领先开源云平台 Eucalyptus 的态势。

 

 

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

 

 

rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。

 

它的特性如下:

可以镜像保存整个目录树和文件系统。

可以很容易做到保持原来文件的权限、时间、软硬链接等等。

无须特殊权限即可安装。

快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。

安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。

支持匿名传输,以方便进行网站镜象。

服务器端启动

usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf

可能需要root权限运行.

/etc/rsyncd/rsyncd.conf 是你刚才编辑的rsyncd.conf的位置.

也可以在/etc/rc.d/rc.local里加入让系统自动启动等.

客户端同步

rsync -参数 用户名@同步服务器的IP::rsyncd.conf中那个方括号里的内容 本地存放路径 如:

rsync -avzP nemo@192.168.10.1::nemo /backup

说明:

-a 参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;

-z 传输时压缩;

-P 传输进度;

-v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;

 

 

 

LNMP

LNMP是一个基于CentOS/Debian编写的Nginx、PHP、MySQL、phpMyAdmineAccelerator一键安装包。可以在VPS、独立主机上轻松的安装LNMP生产环境

简介

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。

Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debiancentosubuntufedoragentoo等。

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

Mysql是一个小型关系型数据库管理系统

PHP是一种在服务器端执行的嵌入HTML文档的脚本语言

这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。[1] 4

 

特点

Nginx是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler 站点开发的,已经在一些俄罗斯的大型网站上运行多年,相当的稳定。

Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。

优点

作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。

作为负载均衡服务器:Nginx 既可以在内部直接支持RailsPHP,也可以支持作为 HTTP代理服务器对外进行服务。Nginx 用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。

作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验。

Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级。

Lamp

Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.

 

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

[1]  Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。[2] 

优点

Hadoop是一个能够对大量数据进行分布式处理软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。

Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理

Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。

Hadoop 还是可伸缩的,能够处理 PB 级数据。

此外,Hadoop 依赖于社区服务,因此它的成本比较低,任何人都可以使用。

Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:

高可靠性Hadoop按位存储和处理数据的能力值得人们信赖。

高扩展性Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

高效性Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

高容错性Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。

Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++

hadoop大数据处理的意义

Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取、变形和加载(ETL)方面上的天然优势。Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储,对例如像ETL这样的批处理操作相对合适,因为类似这样操作的批处理结果可以直接走向存储。Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里。[1] 

 

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

 

 

zabbix(音同 zbix)是一个基于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的主要特点:

- 安装与配置简单,学习成本低

- 支持多语言(包括中文)

- 免费开源

- 自动发现服务器与网络设备

- 分布式监视以及WEB集中管理功能

- 可以无agent监视

- 用户安全认证和柔软的授权方式

- 通过WEB界面设置或查看监视结果

- email等通知功能

等等

Zabbix主要功能:

- CPU负荷

- 内存使用

-磁盘使用

- 网络状况

- 端口监视

- 日志监视

 

 

 

Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。

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教学。

 

 

 

 

 

 


本文出自 “凌宇的技术博客” 博客,谢绝转载!

lvs,dhcp,dns,lnmp,lamp,zabbix,nagios,hadoop,openstack,rsync等工作原理