当前位置:首页 » 文件管理 » nagios缓存

nagios缓存

发布时间: 2022-05-15 05:27:28

1. linux培训内容有哪些

以下是比较经典的Linux编程学习路线:
第一阶段:linux基础入门
1. 开班课程介绍-规章制度介绍-破冰活动;
2. Linux硬件基础/Linux发展历史;
3. Linux系统安装/xshell连接/xshell优化/SSH远程连接故障问题排查
4. 第一关一大波命令及特殊字符知识考试题讲解
5. L inux基础优化
6. Linux目录结构知识精讲
7. 第二关一大波命令及特殊知识考试题讲解(上)
8. 第二关一大波命令及特殊知识考试题讲解(下)
9. Linux文件属性一大堆知识精讲
10. Linux通配符/正则表达式
11. 第三关一大波命令及重要知识考试题讲解(上)
12. 第三关一大波命令及重要知识考试题讲解(下)
13. Linux系统权限(上)
14. Linux系统权限(下)
15. 第一阶段结束需要导师或讲师对整体课程进行回顾
第二阶段:linux系统管理进阶
1. Linux定时任务
2. Linux用户管理
3. Linux磁盘与文件系统(上)
4. Linux磁盘与文件系统(中下)
5. Linux三剑客之sed命令
第三阶段:Linux Shell基础
1. Shell编程基础1
2. Shell编程基础234
3. Linux三剑客之awk命令
第四阶段:Linux网络基础
1. 计算机网络基础上
2. 计算机网络基础下
3. 第二阶段结束需要导师或讲师对整体课程进行回顾。
第五阶段:Linux网络服务
1. 集群实战架构开始及环境准备
2. rsync数据同步服务
3. Linux全网备份项目案例精讲
4. nfs网络存储服务精讲
5. inotify/sersync实时数据同步/nfs存储实时备份项目案例精讲
第六阶段:Linux重要网络服务
1. http协议/www服务基础
2. nginx web介绍及基础实践
3. nginx web精讲结束
4. lnmp环境部署/数据库异机迁移/共享数据异机迁移到NFS系统
5. nginx负载均衡深入透彻
6. keepalived高可用深入透彻
第七阶段:Linux中小规模集群构建与优化(50台)
1. 期中架构开战说明+期中架构部署回顾
2. 全体昼夜兼程部署期中架构并完成上台述职演讲(加上两个周末共9天)
3. kickstart cobbler 批量自动安装系统
4. pptp vpn与ntp服务
5. memcached原理及部署/作为缓存及session会话共享
第八阶段:Ansible自动化运维与Zabbix监控
1. SSH服务秘钥认证
2. ansible批量自动化管理集群(入门及深入)
3. zabbix监控
第九阶段:大规模集群高可用服务(Lvs、Keepalived)
1. Centos7系统自行安装/centos6与7区别
2. lvs负载均衡集群/keepalived管理LVS集群
第十阶段:java Tomcat服务及防火墙Iptables
1. iptables防火墙精讲上
2. iptables防火墙精讲下
3. tomcat java应用服务/nginx配合tomcat服务部署及优化
第十一阶段:Mysql DBA高级应用实践
1. MySQL数据库入门基础命令
2. MySQL数据库进阶备份恢复
3. MySQL数据库深入事务引擎
4. MySQL数据库优化SQL语句优化
5. MySQL数据库集群主从复制/读写分离
6. MySQL数据库高可用/mha/keepalved
第十二阶段:高性能数据库Redis和Memcached课程
第十三阶段:Linux大规模集群架构构建(200台)
第十四阶段:Linux Shell编程企业案例实战
第十五阶段:企业级代码发布上线方案(SVN和Git)
1. GIT管理
2. 代码上线项目案例
第十六阶段企业级Kvm虚拟化与OpenStack云计算
1. KVM虚拟化企业级实战
2. OpenStack云计算企业级实战
第十七阶段公有云阿里云8大组件构建集群实战
第十八阶段:Docker技术企业应用实践
1. Docker容器与微服务深入实践
2. 大数据Hadoop生态体系及实践
第十九阶段:python自动化入门及进阶
第二十阶段:职业规划与高薪就业指导

2. Ubuntu怎样用命令下载和安装软件

1. 使用apt-get install来安装应用程序是最常见的一种安装方法,比如要安装buildessential这个软件,使用以下,他会帮我把所有的依赖包都一起安装了。
sudo apt-get install build-essential

执行上述命令以后,我们可以看到一下信息:
The following extra packages will be installed:表示所有需要再安装的依赖包。

sudo apt-get install build-essential
[sudo] password for enadmin:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
binutils cpp cpp-4.6 dpkg-dev fakeroot g++ g++-4.6 gcc gcc-4.6
libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
libc-bin libc-dev-bin libc6 libc6-dev libdpkg-perl libgomp1 libmpc2 libmpfr4
libquadmath0 libstdc++6-4.6-dev linux-libc-dev manpages-dev
Suggested packages:
binutils-doc cpp-doc gcc-4.6-locales debian-keyring g++-multilib
g++-4.6-multilib gcc-4.6-doc libstdc++6-4.6-dbg gcc-multilib autoconf
automake1.9 libtool flex bison gdb gcc-doc gcc-4.6-multilib
libmudflap0-4.6-dev libgcc1-dbg libgomp1-dbg libquadmath0-dbg
libmudflap0-dbg binutils-gold glibc-doc libstdc++6-4.6-doc
The following NEW packages will be installed:
binutils build-essential cpp cpp-4.6 dpkg-dev fakeroot g++ g++-4.6 gcc
gcc-4.6 libalgorithm-diff-perl libalgorithm-diff-xs-perl
libalgorithm-merge-perl libc-dev-bin libc6-dev libdpkg-perl libgomp1 libmpc2
libmpfr4 libquadmath0 libstdc++6-4.6-dev linux-libc-dev manpages-dev
The following packages will be upgraded:
libc-bin libc6
2 upgraded, 23 newly installed, 0 to remove and 101 not upgraded.
Need to get 36.3 MB of archives.
After this operation, 83.6 MB of additional disk space will be used.
Do you want to continue [Y/n]? y

下面给出apt-get的的各种参数:
apt-get install xxx 安装xxx 。如果带有参数,那么-d 表示仅下载 ,-f 表示强制安装
apt-get remove xxx 卸载xxx
apt-get update 更新软件信息数据库
apt-get upgrade 进行系统升级
apt-cache search 搜索软件包
Tips:建议您经常使用“apt-get update”命令来更新您的软件信息数据库 。
apt-get理论上是要求能够联网,但是如果制作了本地源,就不需要联网,制作本地源可以参考:ubuntu制作本地源。

2. dpkg安装deb包

Ubuntu软件包格式为deb,安装方法如下:
sudo dpkg -i package.deb
dpkg的详细使用方法,网上有很多,下面简单列了几个:
dpkg -i package.deb 安装包
dpkg -r package 删除包
dpkg -P package 删除包(包括配置文件)
dpkg -L package 列出与该包关联的文件
dpkg -l package 显示该包的版本
dpkg –unpack package.deb 解开 deb 包的内容
dpkg -S keyword 搜索所属的包内容
dpkg -l 列出当前已安装的包
dpkg -c package.deb 列出 deb 包的内容
dpkg –configure package 配置包
根据Ubuntu中文论坛上介绍,使用apt-get方法安装的软件,所有下载的deb包都缓存到了/var/cache/apt/archives目录下了,所以可以把常用的deb包备份出来,甚至做成ISO工具包、刻盘,以后安装Ubuntu时就可以在没有网络环境的情况下进行了。下面的命令是拷贝archives这个目录到/var/cache/apt/目录下,替换原有的archives
enadmin@ubuntu-server:~/ftp$ sudo cp -r archives/ /var/cache/apt/

3. make install源代码安装。

如果要使用make安装的话,那么必须得安装build-essential这个依赖包,安装方法已经在前面说过了。在安装完毕以后,我们就可以进行源码安装。源码安装大致可以分为三步骤:(./configure)–> 编译(sudo make) –> 安装(sudo make install)。
配置:这是编译源代码的第一步,通过 ./configure 命令完成。执行此步以便为编译源代码作准备。常用的选项有 --prefix=PREFIX,用以指定程序的安装位置。更多的选项可通过 --help 查询。也有某些程序无需执行此步。
编译:一旦配置通过,可即刻使用 make 指令来执行源代码的编译过程。视软件的具体情况而定,编译所需的时间也各有差异,我们所要做的就是耐心等候和静观其变。此步虽然仅下简单的指令,但有时候所遇到的问题却十分复杂。较常碰到的情形是程序编译到中途却无法圆满结束。此时,需要根据出错提示分析以便找到应对之策。
安装:如果编译没有问题,那么执行 sudo make install 就可以将程序安装到系统中了。
下面以安装nagios为例进行说明。
//1.解压缩
tar -zxf nagios-4.0.2.tar.gz
//2.进入目录
cd nagios-4.0.2
//3.配置
./configure --prefix=/usr/local/nagios
//4.编译
make all
//5.安装
make install && make install-init && make install-commandmode && make install-config
以上就是源代码安装方式。

3. 技术面试会问很多技术问题吗

笔者其实没有想到去面试,只是在智联上更新了一下简历,就陆陆续续接到很多猎头的邮件和电话,实在是没准备好要去面试,就推掉了几家公司的面试了。正因为笔者也很久没有面试了,笔者也想去面试学习一下,闲话少说,下面就分享给大家笔者在2018年1月4号上午10点30分的面试经历:

首先,猎头或者公司人资会把公司的介绍及岗位要求发到你邮箱(或者QQ、微信),下面这份是猎头发给我的岗位说明,为了职业道德操守,公司的介绍和面试通知信息我就不贴出来了,我就把岗位要求贴出来:

职位描述:

1、 负责应用服务器的安装、配置、优化与维护;

2、 负责应用系统的日志信息备份、管理、维护与分析;

3、 负责应用系统的日常监测于维护、故障处理、性能分析与优化;

4、 负责应用部署系统、环境配置系统、监控系统的开发、部署、升级与维护,建设高性能的运维平台。

岗位要求:

1、 熟悉Linux操作系统的基础知识,熟练使用Linux常用操作命令;

2、 熟练配置Nginx、HAproxy 等应用相关软件的部署、配置与优化维护;

3、 熟悉网络基础知识、熟悉TCP/IP的工作原理,会配交换机或路由器,能熟练的对网络情况进行分析

4、 熟悉shell/perl/python中的一种或多种进行运维程序的开发;

5、 熟悉Nagios,Ganglia等监控软件

看着上面的要求大家是不是觉得要求也不高啊,你要细看就会发现,这家公司要求的还挺多,不仅要会网络知识(熟悉TCP/IP好像是每家单位的都会写这样的要求),还要会开发技能。相信很多做运维的兄弟在网络这一块是个头疼的事情,都对交换机和路由器不怎么会配置和管理。

然后,笔者详细了解他们公司,了解岗位要求,在突击复习一下可能会问到的知识点和技术点。到了面试的这天时间,早早的起床,把牙一定要刷干净,特别是有口臭的兄弟,最好准备点口香糖,到达面试公司前嚼块口香糖,以免因为口气的原因熏到面试官,让你在面试官心里减分。早点要记得吃,如果你是下午面试的话也要吃午饭,吃早点了精气神就有了。还要注意,带上你的简历和一支笔,虽然他们那边也会有你的简历,为了以防万一还是准备好简历。

最后,关键点来了,就是和面试官沟通了,有笔试的公司会让你做些面试题,没有笔试就直接和面试官聊了,下面是我和面试官沟通完之后记住的一些问题,分享给大家看一下,笔者一共记住了7个问题,好像还有两个问题实在想不起来了,如果大家有更恰当的回答一定要贴出来一起探讨和进步:

1、介绍下自己?(几乎每家公司首先都会让你做个自我介绍,好像是必修课一样)

笔者回答:此处省略笔者的自我介绍,笔者建议介绍自己的时间不宜过长,3-4分钟为宜,说多了面试官会觉得你太啰嗦了。说太少了也不行,那样会让人感觉你的经历太简单了、太空了。正常情况下,一般你在做自我介绍的同时,面试官这个时候在看你的简历,他需要一边看简历、一边听你介绍自己,如果你说个几句话就把自己介绍完了,他肯定还没缓过神来,对你的映像会减分的。在介绍的同时思维要清晰,逻辑要清楚,最好是根据你简历上写的经历来介绍,这样可以把面试官的思路带到你这里来,让他思路跟着你走。不要东扯一句,西扯一句。竟量少介绍自己的性格、爱好(最好能不说就不说),你可以简单罗列干过几家公司(最多罗列3家公司/也包含目前所在的公司,注意顺序不要乱),都在那几家公司负责什么工作,都用过什么技术,在着重介绍一下你目前所在的公司是负责哪些工作的,可以稍微详细一点介绍,不要让面试官听着晕头转向的感觉。

2、灰度发布如何实现?

笔者回答:其实对这个问题笔者也答的不好,就不写出来误导大家了。大家有好的方法可以共享出来。不过笔事后在知呼上看到了一位网友的建议觉得不错,大家可以参考看一下 :https://www.hu.com/question/20584476

3、Mongodb熟悉吗,一般部署几台?

笔者回答:部署过,没有深入研究过,一般mongodb部署主从、或者mongodb分片集群;建议3台或5台服务器来部署。MongoDB分片的基本思想就是将集合切分成小块。这些块分散到若干片里面,每个片只负责总数据的一部分。 对于客户端来说,无需知道数据被拆分了,也无需知道服务端哪个分片对应哪些数据。数据在分片之前需要运行一个路由进程,进程名为mongos。这个路由器知道所有数据的存放位置,知道数据和片的对应关系。对客户端来说,它仅知道连接了一个普通的mongod,在请求数据的过程中,通过路由器上的数据和片的对应关系,路由到目标数据所在的片上,如果请求有了回应,路由器将其收集起来回送给客户端。

4、如何发布和回滚,用jenkins又是怎么实现?

笔者回答:发布:jenkins配置好代码路径(SVN或GIT),然后拉代码,打tag。需要编译就编译,编译之后推送到发布服务器(jenkins里面可以调脚本),然后从分发服务器往下分发到业务服务器上。

回滚:按照版本号到发布服务器找到对应的版本推送

5、Tomcat工作模式?

笔者回答:Tomcat是一个JSP/Servlet容器。其作为Servlet容器,有三种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。

进入Tomcat的请求可以根据Tomcat的工作模式分为如下两类:

Tomcat作为应用程序服务器:请求来自于前端的web服务器,这可能是Apache, IIS, Nginx等;

Tomcat作为独立服务器:请求来自于web浏览器;

6、监控用什么实现的?

笔者回答:现在公司的业务都跑在阿里云上,我们首选的监控就是用阿里云监控,阿里云监控自带了ECS、RDS等服务的监控模板,可结合自定义报警规则来触发监控项。上家公司的业务是托管在IDC,用的是zabbix监控方案,zabbix图形界面丰富,也自带很多监控模板,特别是多个分区、多个网卡等自动发现并进行监控做得非常不错,不过需要在每台客户机(被监控端)安装zabbix agent。

7、你是怎么备份数据的,包括数据库备份?

笔者回答:在生产环境下,不管是应用数据、还是数据库数据首先在部署的时候就会有主从架构、或者集群,这本身就是属于数据的热备份;其实考虑冷备份,用专门一台服务器做为备份服务器,比如可以用rsync+inotify配合计划任务来实现数据的冷备份,如果是发版的包备份,正常情况下有台发布服务器,每次发版都会保存好发版的包。

总结

总结一下面试注意几点事项,可能笔者也说得不太对,为了我们运维工作的兄弟们都能拿到高薪,大家一定要指证出来一起进步、一起探讨:

第一,你要对自己的简历很熟悉,简历上的写的技能自己一定要能说出个一二,因为面试官的很多问题都会挑你简历上写的问。比如你简历上写了这么一条技能“熟悉mysql数据库的部署安装及原理”。你即然写了这么一条技能,你在怎么不熟悉你也要了解mysql的原理,能说出个大概意思。万一面试官问到了你写的这一条,你都答不上来,那在他心里你又减分了,基本上这次面试希望不大。

第二,如果面试官问到你不会的问题,你就说这个不太熟悉,没有具体研究过,千万别不懂装懂,还扯一堆没用的话题来掩饰,这样只会让面试官反感你。

第三,准备充分,竟可能多的记住原理性的知识,一般面试问的多的就是原理。很少问具体的配置文件是怎么配置的。面试前也要了解清楚“职位描述”和“岗位要求”,虽然有时候大多数不会问到岗位要求的问题,但也要了解和熟悉。

第四,面试完后一定要总结,尽量记住面试官问的每一个问题,回去记录下来,如果问到不会的问题,事后要立马查网络或者找朋友搞清楚、弄明白,这样你才能记劳,下次面试说不定又问到同样的问题。

问完之后,面试官就跟我聊薪资待遇了,问我多少钱能达到自己的要求,我就不便透露了,可以私聊,哈哈,后续笔者会陆陆续续更新以前面试的经历和问题,有需要的朋友可以转载或者收藏起来一起讨论。

基于大家热情高昂的气氛,笔者又花了一个下午的时间回忆并整理在2017年2月24号笔者在东三环边上(快到东四环了,没有地铁过去,到了四惠还要转公交车)的一家传媒公司的面试经历,还好笔者有做笔记的习惯,把之前面试的问题都记录在案,这一次的面试笔者可是记忆犹新,因为这次这家公司都跟笔者发offer了,实在是真心不想去这家公司就找原因推掉了,大家可别学我这么不靠谱。下面是这家公司中的岗位要求说明:

岗位职责:
1、负责公司产品的版本控制、构建和发布管理;
2、负责公司统一配置库管理工作,权限管理与分配准确及时,定期完成配置备份;
3、负责公司内部开发/测试服务器的运行管理工作;
4、负责Linux操作系统的安装、配置、监控和维护、问题处理、软件升级、 数据备份、应急响应、故障排除等、保证线上环境的稳定运行;
5、负责支撑平台24×7稳定运行,并进行前瞻性容量规划;
6、负责公司机房服务器日常维护及网络系统安装、部署、维护工作。

岗位要求:
1、计算机相关专业本科及以上学历,2年以上运维或配置管理工作经验;
2、至少熟悉一种监控系统搭建,如Nagios/Zabbix/等;
3、至少熟悉一种集群管理工具,如Ansible/SaltStack等;
4、有使用集成发布工具发布构建经验优先。比如:bamboo或者Jenkins;
5、熟悉Unix/Linux操作系统,熟悉Weblogic/tomcat等中间件,能够编写shell脚本,熟悉软件开发过程及过程产品,有一定的网络基础;
6、熟悉rsyslog, flume等日志收集和处理系统;
7、具有强烈的安全意识及较强的沟通协调和学习能力,良好的团队合作精神,工作积极主动。

过去之后,前台美眉把我带到他们公司的地下室,我扫视了一下周围的环境,貌似旁边就是机房,因为我听到服务器的声音。等了几分钟,面试官下来了,面试官目测比较瘦,看着跟我身材差不多(应该不到120),他说他是负责运维部的,然后开始就叫我先自我介绍,都是一个套路,免不了介绍的,所以兄弟们一定要把自我介绍练好。然后开始问我问题了,跟面试官聊得还行,问我应该有不下10个以上的问题,我记住了下面有10个问题:

1、LVS负载的原理,和Nginx负载有啥区别?

笔者回答:这个问题我觉得面试官司没问好,正常都会这么问“LVS有哪些负载均衡技术和调度算法?"。我回答就是按我说的这种问法回答的,反正他也频繁点头,当然,笔者回答的可能没有下面我整理出来的那么详细,大概意思我都说明白了。

LVS是Liunx虚拟服务器的简称,利用LVS提供的负载均衡技术和linux操作系统可实现高性能、高可用的服务器集群,一般LVS都是位于整个集群系统的最前端,由一台或者多台负载调度器(Director Server)组成,分发给应用服务器(Real Server)。它是工作在4层(也就是TCP/IP中的传输层),LVS是基于IP负载均衡技术的IPVS模块来实现的,IPVS实现负载均衡机制有三种,分别是NAT、TUN和DR,详述如下:

 VS/NAT: 即(Virtual Server via Network Address Translation)

也就是网络地址翻译技术实现虚拟服务器,当用户请求到达调度器时,调度器将请求报文的目标地址(即虚拟IP地址)改写成选定的Real Server地址,同时报文的目标端口也改成选定的Real Server的相应端口,最后将报文请求发送到选定的Real Server。在服务器端得到数据后,Real Server返回数据给用户时,需要再次经过负载调度器将报文的源地址和源端口改成虚拟IP地址和相应端口,然后把数据发送给用户,完成整个负载调度过程。

可以看出,在NAT方式下,用户请求和响应报文都必须经过Director Server地址重写,当用户请求越来越多时,调度器的处理能力将称为瓶颈。

 VS/TUN :即(Virtual Server via IP Tunneling)

也就是IP隧道技术实现虚拟服务器。它的连接调度和管理与VS/NAT方式一样,只是它的报文转发方法不同,VS/TUN方式中,调度器采用IP隧道技术将用户请求转发到某个Real Server,而这个Real Server将直接响应用户的请求,不再经过前端调度器,此外,对Real Server的地域位置没有要求,可以和Director Server位于同一个网段,也可以是独立的一个网络。因此,在TUN方式中,调度器将只处理用户的报文请求,集群系统的吞吐量大大提高。

 VS/DR: 即(Virtual Server via Direct Routing)

也就是用直接路由技术实现虚拟服务器。它的连接调度和管理与VS/NAT和VS/TUN中的一样,但它的报文转发方法又有不同,VS/DR通过改写请求报文的MAC地址,将请求发送到Real Server,而Real Server将响应直接返回给客户,免去了VS/TUN中的IP隧道开销。这种方式是三种负载调度机制中性能最高最好的,但是必须要求Director Server与Real Server都有一块网卡连在同一物理网段上。

回答负载调度算法,IPVS实现在八种负载调度算法,我们常用的有四种调度算法(轮叫调度、加权轮叫调度、最少链接调度、加权最少链接调度)。一般说了这四种就够了,也不会需要你详细解释这四种算法的。你只要把上面3种负载均衡技术讲明白面试官就对这道问题很满意了。接下来你在简单说下与nginx的区别:

LVS的优点:

抗负载能力强、工作在第4层仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的;无流量,同时保证了均衡器IO的性能不会受到大流量的影响;

工作稳定,自身有完整的双机热备方案,如LVS+Keepalived和LVS+Heartbeat;

应用范围比较广,可以对所有应用做负载均衡;

配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率。

LVS的缺点:

软件本身不支持正则处理,不能做动静分离,这就凸显了Nginx/HAProxy+Keepalived的优势。

如果网站应用比较庞大,LVS/DR+Keepalived就比较复杂了,特别是后面有Windows Server应用的机器,实施及配置还有维护过程就比较麻烦,相对而言,Nginx/HAProxy+Keepalived就简单一点

Nginx的优点:

工作在OSI第7层,可以针对http应用做一些分流的策略。比如针对域名、目录结构。它的正则比HAProxy更为强大和灵活;

Nginx对网络的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势所在;

Nginx安装和配置比较简单,测试起来比较方便;

可以承担高的负载压力且稳定,一般能支撑超过几万次的并发量;

Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点;

Nginx不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的Web应用服务器。LNMP现在也是非常流行的web环境,大有和LAMP环境分庭抗礼之势,Nginx在处理静态页面、特别是抗高并发方面相对apache有优势;

Nginx现在作为Web反向加速缓存越来越成熟了,速度比传统的Squid服务器更快,有需求的朋友可以考虑用其作为反向代理加速器;

Nginx的缺点:

Nginx不支持url来检测。

Nginx仅能支持http和Email,这个它的弱势。

Nginx的Session的保持,Cookie的引导能力相对欠缺。

2、redis集群的原理,redis分片是怎么实现的,你们公司redis用在了哪些环境?

笔者回答:reids集群原理:

其实它的原理不是三两句话能说明白的,redis 3.0版本之前是不支持集群的,官方推荐最大的节点数量为1000,至少需要3(Master)+3(Slave)才能建立集群,是无中心的分布式存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用、可扩展等问题。集群可以将数据自动切分(split)到多个节点,当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。

redis分片:

分片(partitioning)就是将你的数据拆分到多个 Redis 实例的过程,这样每个实例将只包含所有键的子集。当数据量大的时候,把数据分散存入多个数据库中,减少单节点的连接压力,实现海量数据存储。分片部署方式一般分为以下三种:

(1)在客户端做分片;这种方式在客户端确定要连接的redis实例,然后直接访问相应的redis实例;

(2)在代理中做分片;这种方式中,客户端并不直接访问redis实例,它也不知道自己要访问的具体是哪个redis实例,而是由代理转发请求和结果;其工作过程为:客户端先将请求发送给代理,代理通过分片算法确定要访问的是哪个redis实例,然后将请求发送给相应的redis实例,redis实例将结果返回给代理,代理最后将结果返回给客户端。

(3)在redis服务器端做分片;这种方式被称为“查询路由”,在这种方式中客户端随机选择一个redis实例发送请求,如果所请求的内容不再当前redis实例中它会负责将请求转交给正确的redis实例,也有的实现中,redis实例不会转发请求,而是将正确redis的信息发给客户端,由客户端再去向正确的redis实例发送请求。

redis用在了哪些环境:

java、php环境用到了redis,主要缓存有登录用户信息数据、设备详情数据、会员签到数据等

3、你会怎么统计当前访问的IP,并排序?

笔者回答:统计用户的访问IP,用awk结合uniq、sort过滤access.log日志就能统计并排序好。一般这么回答就够了,当然你还可以说出其它方式来统计,这都是你的加分项。

4、你会使用哪些虚拟化技术?

笔者回答:vmware vsphere及kvm,我用得比较多的是vmware vsphere虚拟化,几本上生产环境都用的vmware vsphere,kvm我是用在测试环境中使用。vmware 是属于原生架构虚拟化技术,也就是可直接在硬件上运行。kvm属于寄居架构的虚拟化技术,它是依托在系统之上运行。vmware vcenter

管理上比较方便,图形管理界面功能很强大,稳定性强,一般比较适合企业使用。KVM管理界面稍差点,需要管理人员花费点时间学习它的维护管理技术。

5、假如有人反应,调取后端接口时特别慢,你会如何排查?

笔者回答:其实这种问题都没有具体答案,只是看你回答的内容与面试官契合度有多高,能不能说到他想要的点上,主要是看你排查问题的思路。我是这么说的:问清楚反应的人哪个服务应用或者页面调取哪个接口慢,叫他把页面或相关的URL发给你,首先,最直观的分析就是用浏览器按F12,看下是哪一块的内容过慢(DNS解析、网络加载、大图片、还是某个文件内容等),如果有,就对症下药去解决(图片慢就优化图片、网络慢就查看内网情况等)。其次,看后端服务的日志,其实大多数的问题看相关日志是最有效分析,最好用tail -f 跟踪一下日志,当然你也要点击测试来访问接口日志才会打出来。最后,排除sql,,找到sql去mysql执行一下,看看时间是否很久,如果很久,就要优化SQL问题了,expain一下SQL看看索引情况啥的,针对性优化。数据量太大的能分表就分表,能分库就分库。如果SQL没啥问题,那可能就是写的逻辑代码的问题了,一行行审代码,找到耗时的地方改造,优化逻辑。

6、mysql数据库用的是主从读写分离,主库写,从库读,假如从库无法读取了、或者从库读取特别慢,你会如何解决?

笔者回答:这个问题笔者觉得回答的不太好,对mysql比较在行的朋友希望能给点建议。以解决问题为前提条件,先添加从库数量,临时把问题给解决,然后抓取slow log ,分析sql语句,该优化就优化处理。慢要不就是硬件跟不上,需要升级;要不就是软件需要调试优化,等问题解决在细化。

7、cpu单核和多核有啥区别?

笔者回答:很少有面试官会问这样的问题,即然问到了,也要老实回答。还好笔者之前了解过CPU,我是这么说的:双核CPU就是能处理多份任务,顺序排成队列来处理。单核CPU一次处理一份任务,轮流处理每个程序任务。双核的优势不是频率,而是对付同时处理多件事情。单核同时只能干一件事,比如你同时在后台BT下载,前台一边看电影一边拷贝文件一边QQ。

8、机械磁盘和固态硬盘有啥区别?

笔者回答:我擦,啥年代了,还问磁盘的问题,这面试官有点逗啊。那也要回答啊:

HDD代表机械硬盘,SSD代表固态硬盘。首先,从性能方面来说,固态硬盘几乎完胜机械硬盘,固态硬盘的读写速度肯定要快机械硬盘,因为固态硬盘和机械硬盘的构造是完全不同的(具体的构造就没必要解释了)。其次,固态盘几乎没有噪音、而机械盘噪音比较大。还有就是,以目前的市场情况来看,一般机械盘容量大,价格低;固态盘容量小,价格偏高。但是企业还是首选固态盘。

9、说一下用过哪些监控系统?

笔者回答:这个监控的问题又问到了,笔者在2018年1月4号也被问到类似这样的问题,笔者曾经用过zabbix、nagios、 cacit等。但是在这次面试中只说用过zabbix和nagios。说完了之后,面试官就让我说一下这两个监控有啥区别:

从web功能及画图来讲:

Nagios简单直观,报警与数据都在同一页面, 红色即为问题项。Nagios web端不要做任何配置。 Nagios需要额外安装插件,且插件画图不够美观。

Zabbix监控数据与报警是分开的,查看问题项需要看触发器,查看数据在最新数据查看。而且zabbix有很多其它配置项, zabbix携带画图功能,且能手动把多个监控项集在一个图中展示。

从监控服务来讲:

Nagios自带的监控项很少。对一些变动的如多个分区、多个网卡进行监控时需要手动配置。

Zabbix自带了很多监控内容,感觉zabbix一开始就为你做了很多事,特别是对多个分区、多个网卡等自动发现并进行监控时,那一瞬间很惊喜,很省心的感觉。

从批量配置和报警来讲:

Nagios对于批量监控主机,需要用脚本在server端新增host,并拷贝service文件。 Nagios用脚本来修改所有主机的services文件,加入新增服务。

Zabbix在server端配置自动注册规则,配置好规则后,后续新增client端不需要对server端进行操作。 Zabbix只需手动在模板中新增一监控项即可。

总体来讲:

Nagios要花很多时间写插件,Zabbix要花很多时间探索功能。

Nagios更易上手,Nagios两天弄会,Zabbix两周弄会。

Zabbix画图功能比Nagios更强大

Zabbix对于批量监控与服务更改,操作更简洁;Nagios如果写好自动化脚本后,也很简单,问题在于写自动化脚本很费神。

10、给你一套环境,你会如何设计高可用、高并发的架构?

笔者回答:如果这套环境是部署在云端(比如阿里云),你就不用去考虑硬件设计的问题。可直接上阿里云的SLB+ECS+RDS这套标准的高可用、高并发的架构。对外服务直接上SLB负载均衡技术,由阿里的SLB分发到后端的ECS主机;ECS主机部署多台,应用拆分在不同的ECS主机上,尽量细分服务。数据库用RDS高可用版本(一主一备的经典高可用架构)、或者用RDS金融版(一主两备的三节点架构)。在结合阿里其它的服务就完全OK,业务量上来了,主机不够用了,直横向扩容ECS主机搞定。

如果这套环境托管在IDC,那么你就要从硬件、软件(应用服务)双面去考虑了。硬件要达到高可用、高并发公司必须买多套网络硬件设备(比如负载设备F5、防火墙、核心层交换、接入层交换)都必须要冗余,由其是在网络设计上,设备之间都必须有双线连接。设备如果都是跑的单机,其中一个设备挂了,你整个网络都瘫痪了,就谈不上高可用、高并发了。其次在是考虑应用服务了,对外服务我会采用成熟的开源方案LVS+Keepalived或者Nginx+Keepalived,缓存层可以考虑redis集群及Mongodb集群,中间件等其它服务可以用kafka、zookeeper,图片存储可以用fastDFS或MFS,如果数据量大、又非常多,那么可采用hadoop这一套方案。后端数据库可采用 “主从+MHA”。这样一套环境下来是绝对满足高可用、高并发的架构

4. 如何使用 Cloud Foundry 建立 AppFog

[译注]本文翻译自Cloud Foundry英文博客站点,原文题为“How We Built AppFog Using Cloud Foundry”,文章发表时间是 2012 年 09 月 13 日。

使用云的价值主张是“一切因此而简单”。但构建和操作大规模的云却绝非易事。As正如 Mark Lucovsky 在他的最新访谈中所言:“谁说大规模分布式系统简单?”尽管像 Cloud Foundry 这样的解决方案使构建核心云技术不再那么令人生畏,但仍然不是件容易的事。

在这篇嘉宾博文中,AppFog 的创始人和 CEO Lucas Carlson讲述了如何使用 Cloud Foundry 开源 PaaS 技术建立 AppFog 的历程以及在这一过程中的收获

核心云技术高深莫测

运行基于 Cloud Foundry 的简单服务并不是难事。查看 Micro Cloud FoundryTM。

构建一个适合生产和企业工作负荷的服务相当困难。

要构建含有一个 API 端点的基于 Cloud Foundry 的服务,该服务在 4 个以上的独立基础结构供应商的 6 个以上不同可用性区域中运行,适合于生产和企业工作负荷,具有一定规模和一般可用性?目前这真的很难。

快马加鞭推行 Cloud Foundry

正如您可以设想到的那样,自从 AppFog 宣布 GA 以来,人们一直在问我们怎样去做。我们是如何解决怎样将针对 Cloud Foundry 提供、为跨多个云、多个可用区域以及多个供应商提供一个可共用界面的公共云扩大规模的?

首先:Cloud Foundry 代码库确实很不错。由于选择使用 Cloud Foundry 进行构建,我们不必面对此类项目可能出现的很多潜在严峻挑战和消耗大量时间的问题。

其次:我们能够从 Cloud Foundry 生态系统内的更多工具、代码和服务所获得的益处显着加快了我们的开发速度。

第三:拥有 GA 中已经存在并具有一定规模而且并非基于 Cloud Foundry 的公共 PaaS 是我们的一个重要促进因素。我们具有实现强大的 PaaS 所需要的内部操作经验。

AppFog 的操作经验对我们来说非常宝贵。尽管 PaaS 与 NoOps 趋势紧密结合,但 NoOps 并不意味着无操作,而只是对开发人员而言无操作。正如每一个曾运行过 Cloud Foundry 的人员所知,很多操作对于运行 PaaS 都必不可少而且很重要。

最为重要的是,我们拥有一个有成千上万的开发人员(PHP Fog 的用户)参与的充满活力的社区供我们咨询,在从内部测试版到公共测试版直至 GA 的过程中帮助我们定义、测试及改进 AppFog。

悉心倾听,交付所成

正是这个社区帮助我们了解了 AppFog 的 GA 的发展目标、需要的工作方式以及我们的目标定价。开发人员对我们的要求如下:

能够跨数十个或数百个负载平衡的实例上轻松扩展应用程序,甚至免费版也是如此
必须在基础结构中最快的服务器上运行应用程序(例如 M2.4XL)
必须能够跨多个基础结构(Rackspace、HP、AWS、Azure,并且无价格差异)运行应用程序
必须简化定价。没有稀奇古怪的打包和组合以及名称。简单而且价格合理,最重要的是公正。
在云中实现真正的互操作性,包括运供应商之间的一键式零代码迁移,从而消除了所有供应商锁定痕迹
目标是 30 秒部署到 AWS、Rackspace、HP、Azure 等等。
支持 Cloud Foundry 代码库中的任意及所有语言
支持任意及所有关系数据存储和 NoSQL 数据存储
这是一个令人生畏的列表。但这正是开发人员所需要的。

因此让我们面对现实… 我们事实上是如何做到的呢?

如何围绕 Cloud Foundry 构建 PaaS

这是个复杂的过程。幸运的是,几个月前,Jeremy Voorhis 在伦敦 QCon 做了一个报告,叙述了 AppFog 如何将 Cloud Foundry OSS 位与我们自有的自定义扩展和增强功能集并用,来构建商用系统。这无疑是了解从 Cloud Foundry 到 AppFog 的发展历程的最好开端。此报告的幻灯片位于此处,视频位于此处。

在此,我们不逐一回顾 Jeremy 历时近一小时的讲话,但我们要讨论一些要点。

首先,Jeremy 澄清了一些关于“Cloud Foundry”这一标志的混淆之处。一方面,CloudFoundry.com 是 VMware 提供的托管 PaaS,运行在 vSphere 虚拟平台上,该平台基于 CloudFoundry.org 中的开源项目。 VMware 还公开了其用来管理 CloudFoundry.com-Cloud Foundry BOSH-的工具的源代码,并公开了其托管服务生产环境中的 BOSH 版本。

我们不在托管 VMware 服务上进行,而是从同一个开源 Cloud Foundry 项目构建。这种分布式开源系统使团队能够在其生命周期内在云中管理及部署应用程序和服务,这是 AppFog 服务的核心。

由于我们构建了一个基础结构不可知的 Cloud Foundry 服务,因此 AppFog 在当前的 Cloud Foundry 生态系统中是独一无二的。

Cloud Foundry 的好处在于,基本上它可以与从基于 OpenStack 的 IaaS(如 Rackspace 或 HP)到 AWS、Joyent、Citrix 等等所提供的基础结构相结合来实现。这种固有的多云可移植性就是 Cloud Foundry 项目如此鼓舞人心的原因所在。

对于我们而言,在应用程序的生命周期内和多个基础结构间部署和重新部署的能力是构建下一代 PaaS 的关键。我们认为,它还可以实现 PaaS 的以下基本使命: (a) 促进产品团队对开发的关注;(b) 在应用程序生命周期内形成更短的反馈周期;(c) 提供接近即时水平扩展性的可能性。

Cloud Foundry 在云计算革新中的作用

即使是对于通常而言精通云计算领域的人,回顾历史发展环境也非常重要。对我们 AppFog 人而言,Cloud Foundry 已提供了一些重要的构建基础来构成首个下一代 PaaS。但是,这对我们有何意义?

首先,了解一些背景信息很重要。PaaS 最初是在一些历史性突破的基础上应运而生的,例如:

20 世纪 90 年代在 Rackspace 等公司出现数据中心。
21 世纪前十年的早期在 VMware 出现服务器虚拟化
21 世纪前十年的中期 AWS 在虚拟化资源中引入 API
最近出现的 DevOps 范例及其关联和派生的工具,例如 Puppet 和 Chef。
但只是在过去两年,这条发展路线才开始真正走向成熟。像 Cloud Foundry 和 OpenStack 这样的工具已产生,并能够对整个应用程序生命周期进行管理。这意味着“平台即服务”中的“平台”现在可以包含开发之外的应用程序生命周期的所有方面。Jeremy 在报告中将此称为“NoOps”。其含义绝非是再也无人去执行操作,而是操作工作的职责已传递到平台层,并且在应用程序生命周期的大部分时间(如果不是全部生命周期)会保留在该层。

如果没有像 Cloud Foundry 这样包罗万象的工具,我们永远也不能逾越第一代 PaaS 平台与下一代 PaaS(如 AppFog)之间的鸿沟,前者对于基础结构管理而言实质上与用于(难以控制的)基础结构管理的网关相比只是略有改进,而后者为用户带来的好处则要全面得多。

AppFog 对 Cloud Foundry 的修正

AppFog 从为托管 Cloud Foundry 生态系统提供强大的用户界面和多云体验入手开始工作。我们在 Cloud Foundry 代码库和成型的 PaaS 产品之间遇到了许多障碍。尽管当前的 Cloudfoundry.org 项目集成了 CLI 和各种 IDE,但我们还着眼于全面的用户体验,包括快速注册、Web 控制台以及我们称为 Jumpstart、附加组件等等的构建前示例应用程序。

尽管一些 Cloud Foundry 用户确实觉得从命令行、Eclipse 或 Spring Tool Suite 来操作系统(就像很多 AppFog 用户的做法一样)非常习惯,但我们还是希望为用户提供直观而又别具一格的控制台,用来管理他们的所有应用程序。下面是 AppFog 控制台的一个示例:

系统创建者希望 Cloud Foundry 对于事物的 UX 端处于一种不可知的状态,而且不希望使其 UX 实现过于武断。

我们知道,简单和直观并不是最终目的,而在基于低于标准的基础系统生成简洁的 UX 是很容易的事情。但还有很多方面需要进行探寻,以满足尽可能多用户的需求,我们相信我们已经做到了这一点。

以下是我们在 Cloud Foundry 的顶层和下层所引入的一些创新举措:

基于 Varnish 的缓存层,用于显着提高速度
从一个基于 CF 的基础结构一键克隆到另一个基础结构,实现真正的工作负载可移植性
Cloud Foundry API 兼容层,自动将请求路由到在空间的完全不同部分中运行的完全自治的 CF 实例
跨数据中心的深度 nagios 集成,使我们在问题产生影响前就发现问题的存在
此外,Cloud Foundry 使 AppFog 能够创建非常完整的自通信体系结构。无论是在基础结构级别还是其他级别,它还使我们能够将 AppFog 设计为一个假定故障发生的系统,并提供一组处理故障的规程。

翻开 Cloud Foundry 新的一页

构建能够跨多个云的完全成熟的商用级别 PaaS,并使其全部具有最高水准的最终用户体验,即使是从基本的 CloudFoundry.org 系统开始,也是一项宏大的事业。它需要一个极富开发人员敬业精神并全心投入的团队,一个愿意设身处地为客户着想的团队。

但我们认为值得为这样的成果付出。我们非常幸运能够拥有像 Cloud Foundry 这样的核心系统。我们以多种方式进行回报,包括为项目添加初始 PHP 运行时支持,并在优化 Cloud Foundry 使其能够在公共云中良好运行的过程中不断进行回馈。

对于 AppFog 转向 GA,我们的激动之情难以言表。对于已经注册并开发了千千万万个应用程序的千千万万个开发人员,我们更是无比兴奋。

我们认为,AppFog 的成功不仅仅证明了 PaaS 的强大,还证明了 Cloud Foundry 代码库的力度及其开源生态系统和社区的强大。这不仅仅是 AppFog 的胜利,更是为 Cloud Foundry 的成功做出贡献的每一个人的胜利。

关于作者:Lucas Carlson 是一位创业家和专业程序员,擅长开发具备一定规模的 Web 应用程序。Lucas 是主要跨云 PaaS 公司 AppFog 的创始人和 CEO。他撰写了十多个 Ruby 库,并为包括 Rails 和 RedCloth 在内的多个重要 Rails 产品做出了贡献。Lucas 创立、主办了广受欢迎的 Ruby on Rails 竞赛 Rails Day 并担任评委,一直是很多重要编程会议中广受欢迎的发言人。Lucas 是 MOG 的第一位工程师,负责这一开创性音乐流服务的开发和技术指导。Lucas 居住在俄勒冈州波特兰,喜爱统计学和 Go。

5. 学习Linux难吗

Linux是学习曲线比较陡峭的学科,刚开始学习有些难度 ,入门后就相对比较轻松了。学习Linux大部分做的是运维工程师或者云计算工程师。
运维不仅仅是懂Linux就行,因为还有一大部分的Windows运维,最近看一个报道说,windows的服务器占了47.71%。嗯,向windows运维人员致敬。当然我们这篇文章不是说运维除了懂Linux,还要懂Windows,而是涉及运维的其他方方面面。
环境部署
一开始这个世界是开发的,然后才是运维的。
开发实现产品逻辑,将产品开发完成后,然后提交运维进行部署。此时允许就需要准备好部署环境,如部署在Linux服务器上,安装相应的软件,如Apache、Nginx、tomcat、JDK、PHP、MySQL等等。你不能只装了软件吧,还需要看看具体是哪个版本,java 7 和java 8 的差别还是有点的,php5和php7也有些语法不兼容。把软件都安装好了,就可以上线了?还是不行。还需要测试吧,那就还需要部署一套测试环境。有些时候,开发环境也是需要运维来部署的。
排错和调优
事情从来都没有一帆风顺的。

上线没多久,服务就502了,还不被老板骂死。尽管你有一肚子的委屈,我只是个运维,代码不是我写的,为什么要我来背这锅?!委屈归委屈,服务访问不了了,就是运维的事。尽快定位问题,解决问题才是王道。怎么来定位问题呢?最简单直接的办法就是看日志,看系统日志,看软件相关的日志,结合故障现象和经验,快速的进行定位和恢复。然后就是总结经验,吸取教训,写事故报告。OK,现在你知道,需要对系统环境需要进行一定的调优操作,不再做背锅侠。
相关技术: top, vmstat, iftop, awk, sed, sar, iostat, strace, ...
备份
做最好的计划,做最坏的打算。
前不久的gitlab删库事件的教训犹在眼前,丢失了几小时的数据,虽然大部分的备份策略都失效了,但还是挽救了几小时前的一个备份,才没有造成更大的数据丢失和公司损失。我们需要对设备进行备份冗余,需要对数据库进行备份及离线备份,需要对网站静态进行备份冗余,需要对机房进行备用,能做到双活,那是更好的啦。
相关技术: rsync, crontab, lvm快照, mysqlmp, extrabackup, 完全备份, 差异备份, 增量备份, 离线异地备份, ...
高可用和集群
没有永垂不朽,我们不能保证硬件24小时在线,但需要保障服务24小时在线。
出现故障后,如果做好高可用和冗余,故障自动切换,移除故障节点,那样也就保障了服务的实时在线。在老板和用户不知情的情况下,悄么的把故障处理好的,KPI算是保住了,奖金也许就会有的吧。
相关技术: F5, Nginx, LVS, HA-proxy, MHA, Zookeeper, 各种其他分布式集群方案, ...
监控告警
运维工程师的第一次解放运动。
时刻担心网站挂掉,一年365天、每周7天、每天24小时,时刻保持精神高度紧张,就算你是神仙都会撑不住的。我们需要一个机器来监督其他的机器工作,我们需要解放我们自己。当有故障发生的时候,通过短信、微信、钉钉、邮件等等通知对应的运维工程师来处理,甚至是自动切换或摘除故障节点,然后我们离线对故障节点进行问题排查。
相关技术:Zabbix, Nagios, Cacti, Prometheus, open-falcon, Ganglia, sar, ...
安全和审计
狂奔在互联网的康庄大道上,不过有些人是在裸奔。
不安全的网络环境和服务器配置,无异于在网络世界裸奔,任何人都可以窥探你的隐私。你的应用是否做了SQL防注入?你的防火墙是否开启?是否还在用root+密码的方式登录服务器?网站开启了https么?是否对系统操作进行审计?
相关技术: iptables, firewalld, waf, auditd, 各服务的正确配置, ...
自动化和DevOps
运维工程师的第二次解放运动。
偷懒是社会进步的第一动力。聪明的我们怎么会让自己一直在重复枯燥的事情上浪费时间,装系统、部署环境、发版本、批量操作,把这一切交给程序去实现吧,我们需要的是享受生活。
相关技术: shell, python, go, rundeck, ansible, saltstack, puppet, chef, cobbler, fabric, ...
虚拟化和云服务
正在发生的一场运维革命。
这场革命的发起人是买书的亚马逊,这家伙希望卖一切可以卖的东西,包括自己闲置的服务器资源。现在国内的阿里云和腾讯云也发展得如日中天,他们几乎提供了运维所需要的一切,甚至可以让一个公司不再需要运维的岗位。你需要服务器,只需要几秒钟,就可以创建一台。你需要数据库集群,只需要鼠标点击几下,就可以开通。
相关技术:docker, Moby, kubernetes, Xen, CoreOS, Hyper-V, KVM, ...

6. nginx lvs haproxy哪个用的多

一、lvs的优势:

1、抗负载能力强,因为lvs工作方式的逻辑是非常之简单,而且工作在网络4层仅做请求分发之用,没有流量,所以在效率上基本不需要太过考虑。在我手里的 lvs,仅仅出过一次问题:在并发最高的一小段时间内均衡器出现丢包现象,据分析为网络问题,即网卡或linux2.4内核的承载能力已到上限,内存和 cpu方面基本无消耗。

2、配置性低,这通常是一大劣势,但同时也是一大优势,因为没有太多可配置的选项,所以除了增减服务器,并不需要经常去触碰它,大大减少了人为出错的几率。

3、工作稳定,因为其本身抗负载能力很强,所以稳定性高也是顺理成章,另外各种lvs都有完整的双机热备方案,所以一点不用担心均衡器本身会出什么问题,节点出现故障的话,lvs会自动判别,所以系统整体是非常稳定的。

4、无流量,上面已经有所提及了。lvs仅仅分发请求,而流量并不从它本身出去,所以可以利用它这点来做一些线路分流之用。没有流量同时也保住了均衡器的IO性能不会受到大流量的影响。

5、基本上能支持所有应用,因为lvs工作在4层,所以它可以对几乎所有应用做负载均衡,包括http、数据库、聊天室等等。

另:lvs也不是完全能判别节点故障的,譬如在wlc分配方式下,集群里有一个节点没有配置VIP,会使整个集群不能使用,这时使用wrr分配方式则会丢掉一台机。目前这个问题还在进一步测试中。所以,用lvs也得多多当心为妙。

二、nginx和lvs作对比的结果

1、nginx工作在网络的7层,所以它可以针对http应用本身来做分流策略,比如针对域名、目录结构等,相比之下lvs并不具备这样的功能,所以 nginx单凭这点可利用的场合就远多于lvs了;但nginx有用的这些功能使其可调整度要高于lvs,所以经常要去触碰触碰,由lvs的第2条优点 看,触碰多了,人为出问题的几率也就会大。

2、nginx对网络的依赖较小,理论上只要ping得通,网页访问正常,nginx就能连得通,nginx同时还能区分内外网,如果是同时拥有内外网的 节点,就相当于单机拥有了备份线路;lvs就比较依赖于网络环境,目前来看服务器在同一网段内并且lvs使用direct方式分流,效果较能得到保证。另 外注意,lvs需要向托管商至少申请多一个ip来做Visual IP,貌似是不能用本身的IP来做VIP的。要做好LVS管理员,确实得跟进学习很多有关网络通信方面的知识,就不再是一个HTTP那么简单了。

3、nginx安装和配置比较简单,测试起来也很方便,因为它基本能把错误用日志打印出来。lvs的安装和配置、测试就要花比较长的时间了,因为同上所述,lvs对网络依赖比较大,很多时候不能配置成功都是因为网络问题而不是配置问题,出了问题要解决也相应的会麻烦得多。

4、nginx也同样能承受很高负载且稳定,但负载度和稳定度差lvs还有几个等级:nginx处理所有流量所以受限于机器IO和配置;本身的bug也还是难以避免的;nginx没有现成的双机热备方案,所以跑在单机上还是风险较大,单机上的事情全都很难说。

5、nginx可以检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点。目前lvs中 ldirectd也能支持针对服务器内部的情况来监控,但lvs的原理使其不能重发请求。重发请求这点,譬如用户正在上传一个文件,而处理该上传的节点刚 好在上传过程中出现故障,nginx会把上传切到另一台服务器重新处理,而lvs就直接断掉了,如果是上传一个很大的文件或者很重要的文件的话,用户可能 会因此而恼火。

6、nginx对请求的异步处理可以帮助节点服务器减轻负载,假如使用apache直接对外服务,那么出现很多的窄带链接时apache服务器将会占用大 量内存而不能释放,使用多一个nginx做apache代理的话,这些窄带链接会被nginx挡住,apache上就不会堆积过多的请求,这样就减少了相 当多的内存占用。这点使用squid也有相同的作用,即使squid本身配置为不缓存,对apache还是有很大帮助的。lvs没有这些功能,也就无法能 比较。

7、nginx能支持http和email(email的功能估计比较少人用),lvs所支持的应用在这点上会比nginx更多。

在使用上,一般最前端所采取的策略应是lvs,也就是DNS的指向应为lvs均衡器,lvs的优点令它非常适合做这个任务。

重要的ip地址,最好交由lvs托管,比如数据库的ip、webservice服务器的ip等等,这些ip地址随着时间推移,使用面会越来越大,如果更换ip则故障会接踵而至。所以将这些重要ip交给lvs托管是最为稳妥的,这样做的唯一缺点是需要的VIP数量会比较多。

nginx可作为lvs节点机器使用,一是可以利用nginx的功能,二是可以利用nginx的性能。当然这一层面也可以直接使用squid,squid的功能方面就比nginx弱不少了,性能上也有所逊色于nginx。

nginx也可作为中层代理使用,这一层面nginx基本上无对手,唯一可以撼动nginx的就只有lighttpd了,不过lighttpd目前还没有 能做到nginx完全的功能,配置也不那么清晰易读。另外,中层代理的IP也是重要的,所以中层代理也拥有一个VIP和lvs是最完美的方案了。

nginx也可作为网页静态服务器,不过超出了本文讨论的范畴,简单提一下。

具体的应用还得具体分析,如果是比较小的网站(日PV<1000万),用nginx就完全可以了,如果机器也不少,可以用DNS轮询,lvs所耗费的机器还是比较多的;大型网站或者重要的服务,机器不发愁的时候,要多多考虑利用lvs。
****************************************************************************************************************
Nginx的优点:
性能好,可以负载超过1万的并发。
功能多,除了负载均衡,还能作Web服务器,而且可以通过Geo模块来实现流量分配。
社区活跃,第三方补丁和模块很多
支持gzip proxy
缺点:
不支持session保持。
对后端realserver的健康检查功能效果不好。而且只支持通过端口来检测,不支持通过url来检测。
nginx对big request header的支持不是很好,如果client_header_buffer_size设置的比较小,就会返回400bad request页面。
Haproxy的优点:
它的优点正好可以补充nginx的缺点。支持session保持,同时支持通过获取指定的url来检测后端服务器的状态。
支持tcp模式的负载均衡。比如可以给mysql的从服务器集群和邮件服务器做负载均衡。
缺点:
不支持虚拟主机(这个很傻啊)
目前没有nagios和cacti的性能监控模板
LVS的优点:
性能好,接近硬件设备的网络吞吐和连接负载能力。
LVS的DR模式,支持通过广域网进行负载均衡。这个其他任何负载均衡软件目前都不具备。
缺点:
比较重型。另外社区不如nginx活跃。
*************************************************************************************

现在网络中常见的的负载均衡主要分为两种:一种是通过硬件来进行进行,常见的硬件有比较昂贵的NetScaler、F5、Radware和Array等商用的负载均衡器,也有类似于LVS、Nginx、HAproxy的基于Linux的开源的负载均衡策略,
商用负载均衡里面NetScaler从效果上比F5的效率上更高。对于负载均衡器来说,不过商用负载均衡由于可以建立在四~七层协议之上,因此适用 面更广所以有其不可替代性,他的优点就是有专业的维护团队来对这些服务进行维护、缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用。
另一种负载均衡的方式是通过软件:比较常见的有LVS、Nginx、HAproxy等,其中LVS是建立在四层协议上面的,而另外Nginx和HAproxy是建立在七层协议之上的,下面分别介绍关于
LVS:使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,它具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability)。
LVS的特点是:
1、抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生;
2、配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率;
3、工作稳定,自身有完整的双机热备方案;
4、无流量,保证了均衡器IO的性能不会收到大流量的影响;
5、应用范围比较广,可以对所有应用做负载均衡;
6、LVS需要向IDC多申请一个IP来做Visual IP,因此需要一定的网络知识,所以对操作人的要求比较高。
Nginx的特点是:
1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构;
2、Nginx对网络的依赖比较小;
3、Nginx安装和配置比较简单,测试起来比较方便;
4、也可以承担高的负载压力且稳定,一般能支撑超过1万次的并发;
5、Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测;
6、Nginx对请求的异步处理可以帮助节点服务器减轻负载;
7、Nginx能支持http和Email,这样就在适用范围上面小很多;
8、不支持Session的保持、对Big request header的支持不是很好,另外默认的只有Round-robin和IP-hash两种负载均衡算法。
HAProxy的特点是:
1、HAProxy是工作在网络7层之上。
2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作
3、支持url检测后端的服务器出问题的检测会有很好的帮助。
4、更多的负载均衡策略比如:动态加权轮循(Dynamic Round Robin),加权源地址哈希(Weighted Source Hash),加权URL哈希和加权参数哈希(Weighted Parameter Hash)已经实现
5、单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度。
6、HAProxy可以对Mysql进行负载均衡,对后端的DB节点进行检测和负载均衡。
***********************************************************************************************

现在网站发展的趋势对网络负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术:
第一阶段:利用Nginx或者HAProxy进行单点的负载均衡,这一阶段服务器规模刚脱离开单服务器、单数据库的模式,需要一定的负载均衡,但是 仍然规模较小没有专业的维护团队来进行维护,也没有需要进行大规模的网站部署。这样利用Nginx或者HAproxy就是第一选择,此时这些东西上手快, 配置容易,在七层之上利用HTTP协议就可以。这时是第一选择
第二阶段:随着网络服务进一步扩大,这时单点的Nginx已经不能满足,这时使用LVS或者商用F5就是首要选择,Nginx此时就作为LVS或者 F5的节点来使用,具体LVS或者F5的是选择是根据公司规模,人才以及资金能力来选择的,这里也不做详谈,但是一般来说这阶段相关人才跟不上业务的提 升,所以购买商业负载均衡已经成为了必经之路。
第三阶段:这时网络服务已经成为主流产品,此时随着公司知名度也进一步扩展,相关人才的能力以及数量也随之提升,这时无论从开发适合自身产品的定制,以及降低成本来讲开源的LVS,已经成为首选,这时LVS会成为主流。
最终形成比较理想的状态为:F5/LVS<—>Haproxy<—>Squid/Varnish<—>AppServer。

7. 如何把dnsmasq 应用到局域网

DNSmasq是个非常小巧的dns服务器,可以解决小范围的dns查询问题,譬如机房内网。
大致思路是这样的:
配置dnsmasq为DNS缓存服务器,同时在/etc/hosts文件中加入本地内网解析,这样一来,每当内网机器查询时就会优先查询hosts文件,这就等于将/etc/hosts共享给全内网机器使用,从而解决内网机器互相识别的问题。相比逐台机器编辑hosts文件或者添加bind DNS记录,仅编辑一个hosts文件,这简直太容易了。
实施过程以CentOS 6为例
安装配置
yum install dnsmasq -y
service dnsmasq start
将其他机器的DNS换成dnsmasq所在的IP即可,玩完了,就这么容易。
接下来你就可以编辑hosts文件了,你懂的,简单列举一下格式
127.0.0.1 localhost
192.168.1.10 web01.xxx.com web01
192.168.1.20 web02.xxx.com web02
hosts文件的强大之处还在于能够劫持解析,譬如mirror.centos.org是CentOS仓库所在,几乎是机器正常必访问一个域名,我将它解析成一个内网地址,搭建一个内网镜像站,不仅内网机器也可以及时得到安全更新,每月还可以节省很多流量。
其他问题
默认配置文件为/etc/dnsmasq.conf,注释掉的不是示例就是默认值。

默认直接缓存resolv.conf中的nameserver,通过下面的选项指定其他文件
resolv-file=/etc/resolv.dnsmasq.conf

默认监听本地所有端口,指定监听端口的办法(别忘了本地回环)
listen-address=127.0.0.1,192.168.1.56

我要给dns记录在另外一个文件,而不是/etc/hosts
addn-hosts=/etc/addion_hosts

设置dns缓存大小
cache-size=150

我担心dnsmasq的稳定性怎么办
解决办法一:写脚本或用nagios监视dnsmasq进程,或者定时重启
解决办法二:在另一台机器也搭建一个dnsmasq,/etc/hosts文件拷一份过去,客户端指定2个内网DNS
记得在iptables防火墙开放53端口哦!

8. 红帽企业版Linux的目 录

第1章 红帽旋风 1
1.1 GNU/Linux是Linux的全称 2
1.2 Linux传奇 2
1.3 红帽旋风 5
1.4 庞大的红帽发行版家族 7
1.4.1 RHEL和Fedora Core项目 7
1.4.2 RHEL和CentOS 8
1.4.3 RHEL与Scientific Linux 8
1.4.4 RHEL与Oracle EnterpriseLinux 9
1.5 Linux学习方法 9
1.6 红帽认证 10
第2章 安装RHEL 14
2.1 安装前的预备知识 15
2.1.1 Linux磁盘分区 15
2.1.2 逻辑卷管理器 16
2.1.3 磁盘阵列 17
2.2 安装RHEL 5 17
2.2.1 安装程序的获取 17
2.2.2 本地安装RHEL 5 18
2.2.3 首次启动时的设置 22
2.3 RHEL 5的升级和删除 24
2.3.1 升级RHEL 5 24
2.3.2 删除RHEL 5 25
2.4 RHEL 6与RHEL 5的差异 27
2.4.1 安装模式选择界面的差异 27
2.4.2 安装过程中的差异 28
2.4.3 软件包管理工具的差异 28
2.4.4 救援模式的差异 28
2.5 RHEL配置精要 29
2.5.1 配置网络 29
2.5.2 配置本地DVD软件源 32
2.5.3 RHEL 5和RHEL 6使用习惯差异 33
2.6 RHCE认证指南 34
第3章 Linux基础 36
3.1 Linux启动过程 37
3.1.1 GRUB引导程序 37
3.1.2 init程序 40
3.1.3 运行级别 42
3.2 Linux系统常用命令 43
3.2.1 Linux控制台 43
3.2.2 登录和注销 43
3.2.3 Linux基本命令 44
3.3 Linux的Shell 53
3.3.1 进入Shell 53
3.3.2 Shell变量 54
3.3.3 Shell语法 56
3.4 Linux的文件和目录 59
3.4.1 Linux文件 59
3.4.2 Linux目录 60
3.5 使用vi 61
3.5.1 启动vi 61
3.5.2 使用vi编辑第一个文本 61
3.5.3 使用vi打开文件 62
3.5.4 保存文件 63
3.5.5 撤销和恢复操作 63
3.5.6 搜索字符串 63
3.5.7 替换字符串 64
3.5.8 删除 64
3.5.9 复制、粘贴和剪切 65
3.5.10 行定位 65
3.5.11 重复操作 65
3.5.12 vi环境设定 66
3.6 RHEL 6与RHEL 5的差异 66
3.6.1 init配置文件/etc/inittab的差异 66
3.6.2 控制台差异 67
3.6.3 gpm服务 67
3.7 RHCE认证指南 67
第4章 Linux高频命令 68
4.1 系统和服务相关命令 69
4.1.1 uname打印系统信息 69
4.1.2 arch显示系统硬件架构 69
4.1.3 halt关闭系统 69
4.1.4 reboot重新启动系统 70
4.1.5 shutdown关闭/重启系统 70
4.1.6 chkconfig设置服务的启动和关闭 71
4.1.7 service管理系统服务 72
4.1.8 export设置并导出变量 72
4.2 用户相关命令 73
4.2.1 su切换用户身份 73
4.2.2 last查看用户成功登录信息 73
4.2.3 lastb查看用户不成功的登录信息 74
4.2.4 who查看已登录的用户 74
4.2.5 w查看登录用户的活动 75
4.3 磁盘管理命令 75
4.3.1 mkfs创建文件系统 75
4.3.2 mount挂载文件系统 76
4.3.3 umount卸载文件系统 77
4.3.4 df显示磁盘使用情况 78
4.3.5 e2label查看或更改分区卷标 78
4.3.6 mpe2fs显示文件系统信息 78
4.4 文件管理命令 80
4.4.1 chgrp改变文件所属组 80
4.4.2 chown改变文件所有者和所属组 80
4.4.3 chattr改变文件的文件系统属性 81
4.4.4 lsattr查看文件的文件系统属性 81
4.4.5 ln创建文件链接 82
4.4.6 查看文件占用空间 82
4.4.7 file显示文件类型 83
4.5 搜索命令 83
4.5.1 find查找目录下的文件 83
4.5.2 locate定位文件位置 85
4.6 压缩备份命令 85
4.6.1 tar归档工具 85
4.6.2 gzip压缩工具 86
4.6.3 bzip2压缩工具 87
4.7 文本处理相关命令 87
4.7.1 grep显示文件中的匹配行 87
4.7.2 diff比较两个文件之间的差异 88
4.7.3 sort排序文件内容 88
4.7.4 comm比较两个已排序的文件 89
4.7.5 head显示文件起始部分 89
4.7.6 tail显示文件结尾部分 89
4.7.7 wc统计文件内容信息 90
4.8 RHEL 6与RHEL 5的差异 90
4.9 RHCE认证指南 90
第5章 系统管理 91
5.1 账户管理 93
5.1.1 Linux用户和组 93
5.1.2 管理Linux组 94
5.1.3 管理Linux用户 95
5.2 进程管理 96
5.2.1 什么是进程 96
5.2.2 显示当前进程 97
5.2.3 运行进程 98
5.2.4 调整进程优先级 102
5.2.5 终止进程 103
5.3 磁盘管理 104
5.3.1 磁盘分区 104
5.3.2 逻辑卷管理器 106
5.3.3 磁盘阵列 114
5.3.4 磁盘限额 118
5.4 文件系统管理 121
5.4.1 创建文件系统 122
5.4.2 挂载文件系统 122
5.4.3 卸载文件系统 123
5.4.4 配置文件/etc/fstab 124
5.4.5 交换分区和交换文件 125
5.4.6 检查文件系统 127
5.5 文件权限管理 128
5.5.1 基本权限 128
5.5.2 设定基本权限 129
5.5.3 特殊权限 131
5.5.4 设定特殊权限 132
5.5.5 用户掩码设定 133
5.6 打印机管理 134
5.6.1 使用system-config-printer 134
5.6.2 使用网页配置程序 136
5.7 日志管理 136
5.7.1 系统日志 136
5.7.2 应用程序日志 138
5.7.3 查看日志 139
5.7.4 日志滚动 141
5.8 RHEL 6与RHEL 5的差异 143
5.8.1 /etc/fstab配置文件差异 143
5.8.2 打印机管理差异 144
5.8.3 系统日志进程的差异 145
5.9 RHCE认证指南 146
第6章 RPM软件包管理 147
6.1 Linux下的软件安装 148
6.2 认识RPM 148
6.3 使用rpm命令 148
6.3.1 安装软件包 148
6.3.2 升级软件包 149
6.3.3 查询软件包 149
6.3.4 卸载软件包 150
6.3.5 检验软件包 150
6.4 解压RPM软件包 151
6.5 使用源代码RPM包 152
6.5.1 源代码RPM包文件构成 152
6.5.2 源代码相关目录 152
6.5.3 SPEC文件简介 153
6.5.4 使用rpmbuild命令 153
6.6 使用YUM客户端 156
6.6.1 认识YUM 156
6.6.2 YUM客户端配置文件 156
6.6.3 使用yum命令 158
6.6.4 YUM图形化管理工具 160
6.7 RHEL 6与RHEL 5的差异 161
6.8 RHCE认证指南 161
第7章 深入RHEL图形服务器 163
7.1 X-Window系统介绍 165
7.2 配置X-Window 165
7.2.1 使用system-config-display命令 165
7.2.2 配置文件
/etc/X11/xorg.conf 166
7.3 启动X-Window 169
7.3.1 X-Window启动流程 169
7.3.2 开机自启动X-Window 170
7.3.3 使用startx命令 170
7.3.4 手动启动X-Window 171
7.4 GNOME和KDE 173
7.4.1 GDM和KDM显示管理器 173
7.4.2 GNOME窗口管理器 173
7.4.3 KDE窗口管理器 174
7.5 运行远程X客户端程序 174
7.6 RHEL 6与RHEL 5的差异 175
7.6.1 配置文件和工具差异 175
7.6.2 图形登录界面差异 176
7.6.3 窗口管理器差异 176
7.7 RHCE认证指南 178
第8章 TCP/IP网络管理 179
8.1 TCP/IP基础 181
8.1.1 IP地址 181
8.1.2 子网掩码和网络号 182
8.1.3 广播地址 183
8.1.4 路由和网关 183
8.1.5 TCP/IP协议 183
8.1.6 端口 184
8.2 配置TCP/IP网络 185
8.2.1 重要的网络配置文件 185
8.2.2 网络配置程序 188
8.3 TCP/IP查错工具 190
8.3.1 ping 190
8.3.2 traceroute 191
8.3.3 tcpmp 192
8.4 使用OpenSSH管理远程主机 193
8.4.1 设定OpenSSH服务器 194
8.4.2 使用SSH客户端 196
8.5 使用RealVNC管理远程主机 198
8.5.1 设定RealVNC服务器 198
8.5.2 使用RealVNC客户端 198
8.6 RHEL 6与RHEL 5的差异 200
8.6.1 网络配置差异 200
8.6.2 VNC软件差异 201
8.7 RHCE认证指南 202
第9章 局域网应用组合 ——DHCP和NAT 203
9.1 DHCP和NAT介绍 204
9.2 DHCP服务设定 204
9.2.1 DHCP服务的安装 204
9.2.2 DHCP配置文件dhcpd.conf 204
9.2.3 DHCP服务架设实例 206
9.2.4 DHCP客户端设定 206
9.3 NAT服务设定 207
9.3.1 NAT服务的安装 207
9.3.2 设定NAT服务 207
9.3.3 NAT客户端设定 210
9.4 RHEL 6与RHEL 5的差异 210
9.4.1 DHCP服务的差异 210
9.4.2 NAT服务的差异 210
9.5 RHCE认证指南 212
第10章 Web服务与高效能 LAMP架构 213
10.1 HTTP协议和Web服务 214
10.2 Web服务器 214
10.2.1 认识Web服务器 214
10.2.2 Apache服务器 215
10.3 安装配置Apache服务器 215
10.3.1 安装Apache和相关软件包 215
10.3.2 Apache配置文件httpd.conf 216
10.3.3 目录的访问控制 223
10.4 Apache安全管理 224
10.5 Apache故障排除 225
10.6 Apache图形配置工具system-config-httpd 226
10.7 Apache应用实例 226
10.7.1 LAMP应用 226
10.7.2 架设YUM服务器 229
10.7.3 架设Subversion服务器 230
10.8 构建高效能LAMP架构 231
10.8.1 安装注意事项 231
10.8.2 准备源码包 232
10.8.3 编译环境和编译方法 233
10.8.4 LAMP环境编译和安装 234
10.9 RHEL 6与RHEL 5的差异 247
10.10 RHCE认证指南 248
第11章 FTP服务 249
11.1 FTP服务 250
11.2 FTP客户端 250
11.3 VSFTPD服务器 251
11.3.1 VSFTPD的安装 251
11.3.2 VSFTPD的配置文件vsftpd.conf 252
11.3.3 匿名VSFTPD的搭建 255
11.3.4 仅允许系统用户访问的服务器设定 255
11.3.5 VSFTPD虚拟用户 256
11.3.6 配置具有SSL的VSFTPD 259
11.4 RHEL 6与RHEL 5的差异 262
11.5 RHCE认证指南 262
第12章 网络文件系统——NFS 263
12.1 认识NFS服务 264
12.2 NFS服务器安装配置 265
12.2.1 NFS服务器安装 265
12.2.2 配置NFS服务器 265
12.2.3 启动NFS服务 266
12.2.4 固定NFS服务相关端口 267
12.2.5 Iptables的NFS相关设定 268
12.2.6 NFS图形配置工具system-config-nfs 268
12.3 NFS客户机的使用 269
12.3.1 访问NFS共享资源 269
12.3.2 自动挂载NFS共享目录 270
12.4 RHEL 6与RHEL 5的差异 272
12.5 RHCE认证指南 272
第13章 分布式文件系统 ——Samba服务 274
13.1 Samba服务 275
13.1.1 Samba的作用 275
13.1.2 Samba相关协议 275
13.1.3 Samba的守护进程 275
13.2 Samba的安装 276
13.3 Samba的配置 276
13.3.1 Samba相关文件介绍 276
13.3.2 Samba主配置文件smb.conf 277
13.3.3 Samba作为独立服务器 282
13.3.4 Samba作为域成员服务器 283
13.3.5 Samba作为域控制器 285
13.3.6 创建Samba用户账号 286
13.4 Samba查错 286
13.5 Samba图形配置工具system-config-samba 287
13.6 Samba客户端的使用 288
13.6.1 客户端为Linux系统 288
13.6.2 客户端为Windows系统 289
13.7 RHEL 6与RHEL 5的差异 289
13.8 RHCE认证指南 289
第14章 DNS域名服务 290
14.1 认识DNS服务 291
14.1.1 什么是DNS 291
14.1.2 完全合格域名 291
14.1.3 DNS查询流程 291
14.2 架设DNS服务器的准备工作 293
14.3 安装BIND套件 294
14.4 配置BIND服务 295
14.4.1 BIND配置文件 295
14.4.2 建立缓存服务器 298
14.4.3 主/从架构DNS系统的架设 299
14.4.4 BIND图形配置工具system-config-bind 301
14.5 DNS测试命令 302
14.6 DNS客户端设定 303
14.7 RHEL 6与RHEL 5的差异 304
14.8 RHCE认证指南 305
第15章 邮件服务 306
15.1 邮件服务介绍 307
15.1.1 邮件服务的功能 307
15.1.2 邮件服务相关协议 307
15.1.3 邮件服务的组成单元 307
15.1.4 常用邮件服务程序介绍 308
15.2 Sendmail的安装与设定 308
15.2.1 Sendmail的安装 308
15.2.2 Sendmail的配置文件 308
15.3 Postfix的安装与设定 314
15.3.1 Postfix的安装 314
15.3.2 Postfix的配置文件 314
15.4 Dovecot的安装与设定 319
15.4.1 Dovecot的安装 319
15.4.2 Dovecot的配置文件 319
15.4.3 Dovecot的SSL认证 320
15.5 邮件服务器架设实例 321
15.6 RHEL 6与RHEL 5的差异 325
15.7 RHCE认证指南 326
第16章 目录服务 328
16.1 NIS服务 330
16.2 NIS服务器 330
16.2.1 NIS服务端安装 330
16.2.2 NIS服务端配置文件 331
16.2.3 NIS服务器架设流程实例 333
16.3 NIS客户端 335
16.3.1 NIS客户端安装 335
16.3.2 NIS客户端配置文件 335
16.3.3 NIS客户端架设流程实例 337
16.3.4 检验NIS客户端 337
16.3.5 使用NIS客户端修改账户 340
16.4 NIS应用实例 341
16.5 LDAP服务 342
16.6 OpenLDAP服务器 343
16.6.1 OpenLDAP服务端安装 343
16.6.2 OpenLDAP配置文件 343
16.6.3 OpenLDAP服务器架设流程实例 345
16.7 OpenLDAP客户端 346
16.7.1 OpenLDAP客户端安装 346
16.7.2 OpenLDAP客户端配置文件 346
16.7.3 OpenLDAP客户端架设流程实例 348
16.7.4 OpenLDAP常用命令 348
16.8 OpenLDAP应用实例 353
16.9 RHEL 6与RHEL 5的差异 355
16.9.1 NIS服务端设定差异 355
16.9.2 NIS客户端设定差异 355
16.9.3 OpenLDAP服务端设定差异 355
16.9.4 OpenLDAP客户端设定差异 356
16.10 RHCE认证指南 356
第17章 Squid代理服务器 357
17.1 代理服务器介绍 358
17.1.1 什么是代理服务器 358
17.1.2 代理服务器运作方式 358
17.1.3 代理服务器的种类 359
17.2 Squid代理服务器 359
17.2.1 Squid的安装 360
17.2.2 Squid配置文件squid.conf 360
17.2.3 匿名Squid服务器设定 363
17.2.4 需要身份验证的Squid服务器设定 364
17.2.5 局域网中Squid作透明代理的设定 365
17.2.6 Squid作反向代理的设定 367
17.3 正向代理服务器的客户端设定 368
17.4 RHEL 6与RHEL 5的差异 369
17.5 RHCE认证指南 369
第18章 使用Webmin管理 RHEL 5 370
18.1 Webmin介绍 371
18.2 安装和配置Webmin 371
18.2.1 安装Webmin 371
18.2.2 配置Webmin 371
18.3 使用Webmin管理系统 376
18.4 使用Webmin管理网络服务 379
18.4.1 Apache 379
18.4.2 VSFTPD 380
18.4.3 NFS 380
18.4.4 Samba 381
18.4.5 BIND 382
18.4.6 Sendmail与Dovecot 383
18.4.7 NIS 384
18.4.8 Squid 385
18.5 使用Webmin加强系统安全 385
18.5.1 TCP_Wrapper 385
18.5.2 PAM 386
18.5.3 Iptables 386
第19章 全面加强RHEL安全 388
19.1 IP安全保障——TCP_Wrapper 390
19.2 系统和服务安全保障——PAM 391
19.2.1 PAM的语法及参数 391
19.2.2 PAM应用实例 394
19.3 使用防火墙Iptables 396
19.3.1 Linux内核防火墙——Netfilter/Iptalbes 396
19.3.2 配置Iptalbes防火墙 397
19.3.3 防火墙配置策略 401
19.3.4 简单防火墙配置实例 404
19.4 SELinux实现全方位防护 406
19.4.1 SELinux简介 406
19.4.2 启用SELinux 406
19.4.3 查看SELinux状态 407
19.4.4 查看和修改SELinux对网络服务的设定 408
19.5 RHEL 6与RHEL 5的差异 410
19.6 RHCE认证指南 410
第20章 RHEL的网络及无人值守安装 412
20.1 使用网络方式安装RHEL 5 413
20.1.1 Apache安装服务器 413
20.1.2 VSFTPD安装服务器 414
20.1.3 NFS安装服务器 414
20.2 KickStart自动应答脚本 415
20.2.1 创建KickStart脚本 415
20.2.2 保存KickStart文件 418
20.2.3 使用KickStart脚本进行客户端安装 418
20.3 PXE安装服务器 418
20.3.1 PXE安装运作流程 418
20.3.2 PXE服务器架设流程 419
20.3.3 PXE客户端设定 422
20.4 RHEL 6与RHEL 5的差异 422
20.4.1 网络安装方面的差异 422
20.4.2 KickStart安装方面的差异 423
20.4.3 PXE安装方面的差异 425
第21章 RHEL系统监测和优化策略 426
21.1 系统维护介绍 428
21.2 硬件系统的监测对象 428
21.3 系统监测工具 429
21.3.1 监测CPU 429
21.3.2 监测内存 432
21.3.3 监测磁盘 433
21.3.4 监测网络 435
21.4 使用Cacti监测系统 437
21.4.1 Cacti介绍 437
21.4.2 安装Cacti 437
21.4.3 设定Cacti 439
21.4.4 使用Cacti 440
21.5 使用Nagios监控告警系统 442
21.5.1 Nagios介绍 442
21.5.2 安装和设定Nagios服务端 443
21.5.3 安装和设定NRPE客户端 449
21.5.4 设定Nagios报警 450
21.5.5 编写Nagios插件 453
21.6 系统优化策略 455
21.6.1 CPU优化策略 455
21.6.2 内存优化策略 455
21.6.3 磁盘优化策略 455
21.6.4 网络优化策略 455
21.7 RHEL 6与RHEL 5的差异 456
21.7.1 Cacti安装方面的差异 456
21.7.2 Nagios安装与设定方面的差异 456
第22章 Linux核心编译与KVM虚拟化 460
22.1 Linux核心介绍 462
22.1.1 Linux核心是什么 462
22.1.2 内核的版本号 462
22.1.3 为什么需要编译核心 462
22.1.4 获取核心源代码 463
22.2 Linux核心编译 463
22.2.1 核心编译步骤 463
22.2.2 Linux核心配置项 464
22.2.3 单独编译某个核心模块 479
22.3 KVM虚拟化介绍 479
22.3.1 虚拟化技术 479
22.3.2 KVM虚拟化 480
22.4 使用KVM虚拟系统 480
22.4.1 安装KVM虚拟系统 480
22.4.2 使用KVM虚拟机 481
22.4.3 设定桥接网络 484
22.5 RHEL 6与RHEL 5的差异 485
第23章 Linux服务器集群与高可用系统LVS 487
23.1 认识LVS 489
23.1.1 LVS诞生背景 489
23.1.2 服务器集群系统 489
23.1.3 LVS系统介绍 490
23.2 组建基本的LVS系统 492
23.2.1 Ipvsadm的安装和使用 492
23.2.2 调度服务器设定流程 493
23.2.3 应用服务器设定流程 494
23.2.4 测试LVS系统 495
23.3 LVS系统进阶 495
23.3.1 使用Ldirectord配置调度服务器 495
23.3.2 使用Piranha配置调度服务器 498
23.4 认识Heartbeat 501
23.4.1 Heartbeat背景知识 501
23.4.2 Heartbeat集群系统相关术语 501
23.4.3 Heartbeat系统结构 502
23.5 组建Heartbeat高可用系统 503
23.5.1 安装Heartbeat 503
23.5.2 Heartbeat的配置文件 504
23.5.3 Heartbeat集群架设实例 506
23.5.4 使用图形化工具设定Heartbeat集群 508
23.6 RHEL 6与RHEL 5的差异 511
23.6.1 LVS调度服务器的安装与设定差异 511
23.6.2 Heartbeat的安装与设定差异 511
第24章 Linux集群文件系统 514
24.1 集群文件系统介绍 515
24.1.1 本地文件系统与集群文件系统 515
24.1.2 开源集群文件系统 515
24.1.3 集群文件系统的应用环境与优势 516
24.2 OCFS2集群文件系统 516
24.2.1 安装OCFS2文件系统 516
24.2.2 配置OCFS2文件系统 517
24.3 安装Oracle 10g RAC 520
24.3.1 OCFS2文件系统安装 520
24.3.2 安装Oracle 10g RAC CRS 521
24.3.3 安装Oracle 10g 529
24.3.4 创建Oracle数据库 531
24.4 RHEL 6与RHEL 5的差异 535
附录A RHEL企业级网络应用
方案对照表 537
附录B RHEL程序员常用软件
对照表 538

9. 阿里云有什么监控CPU和内存的日志工具

1、可以使用阿里云后台管理查看监控

10. 免费Windows服务器监控工具有哪些

1.Performance Co-Pilot

Performance Co-Pilot,简称 PCP,是一个系统性能和分析框架。它从多个主机整理数据并实时的分析,帮你识别不正常的表现模式。它也提供 API 让你设计自己的监控和报告解决方案。

5.Munin

Munin 是一个网路和系统监控工具,可以帮你分析服务器资源趋势。它是一个即插即用的解决方案。默认的安装方式提供了很多的报告。

热点内容
编程大冒险 发布:2024-05-20 03:19:27 浏览:636
阿瓦隆九个人怎么配置 发布:2024-05-20 02:57:47 浏览:757
sqlnotinexcept 发布:2024-05-20 02:53:10 浏览:341
激光切割编程教程难吗 发布:2024-05-20 02:49:57 浏览:925
sqlbool 发布:2024-05-20 02:49:57 浏览:721
如何把文件压缩到最小 发布:2024-05-20 02:25:03 浏览:452
javash脚本文件 发布:2024-05-20 01:43:11 浏览:830
安卓手机如何登陆刺激战场国际服 发布:2024-05-20 01:29:02 浏览:861
服务器核库怎么找 发布:2024-05-20 01:28:14 浏览:375
盐存储水分 发布:2024-05-20 01:09:03 浏览:810