【转】Linux运维工程师入门须掌握的10个技术点

本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧

说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具。

我就大概列出这几方面,这样入门就基本没问题了。

linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究一下SUSE,有些公司也喜欢用,例如我公司 。。。。。

工具如下:

1、linux系统基础,这个不用说了,是基础中的基础,连这个都不会就别干了,参考书籍,可以看鸟哥linux基础篇,至少要掌握这书60%内容,没必须全部掌握,但基本命令总得会吧

2、网络服务,服务有很多种,每间公司都会用到不同的,但基础的服务肯定要掌握,如FTP, DNS,SAMBA, 邮件, 这几个大概学一下就行,LAMP和LNMP是必须要熟练,我所指的不是光光会搭建,而是要很熟悉里面的相当配置才行,因为公司最关键的绝对是WEB服务器,所以nginx和apache要熟悉,特别是nginx一定要很熟悉才行,至少有些公司还会用tomcat,这个也最好学一下。其实网络服务方面不用太担心,一般公司的环境都已经搭建好,就算有新服务器或让你整改,公司会有相应的文档让你参照来弄,不会让你乱来的,但至少相关的配置一定要学熟,而且肯定是编译安装多,那些模块要熟悉一下他的作用,特别是PHP那些模块。

这面2点只是基础,也是必要条件,不能说是工具,下以才是真正的要掌握的工具。

3、shell脚本和另一个脚本语言,shell是运维人员必须具备的,不懂这个连入职都不行,至少也要写出一些系统管理脚本,最简单也得写个监控CPU,内存比率的脚本吧,这是最最最基本了,别以为会写那些猜数字和计算什么数的,这些没什么作用,只作学习意义,写系统脚本才是最有意义,而另一个脚本语言是可选的,一般是3P,即python, perl和php,php就不需要考虑了,除非你要做开发,我个人建议学python会比较好,难实现自动化运维,perl是文本处理很强大,反正这两个学一个就行了。

4、sed和awk工具,必须要掌握,在掌握这两个工具同时,还要掌握正则表达式,这个就痛苦了,正则是最难学的表达式,但结合到sed和awk中会很强大,在处理文本内容和过滤WEB内容时十分有用,不过在学shell的同时一般会经常结合用到的,所以学第3点就会顺便学第4点。

5、文本处理命令,sort , tr , cut, paste, uniq, tee等,必学,也是结合第3点时一并学习的。

6、数据库,首选mysql,别问我为什么不学sqlserver和oracle,因为linux用得最多绝对是mysql,增删改查必学,特别要学熟查,其它方面可能不太需要,因为运维人员使用最多还是查,哪些优化和开发语句不会让你弄的。

7、防火墙,不学不行,防火墙也算是个难点,说难不难,说易不易,最重要弄懂规则,如果学过CCNA的朋友可能会比较好学,因为iptables也有NAT表,原理是一样的,而FILTER表用得最多,反正不学就肯定不合格。

8、监控工具,十分十分重要,我个人建议,最好学这3个,cacti,nagios,zibbix,企业用得最多应该是nagios和 zibbix,反正都学吧,但nagios会有点难,因为会涉及到用脚本写自动监控,那个地方很难。

9、集群和热备,这个很重要,肯定要懂的,但到了公司就不会让你去弄,因为新手基本不让你碰,集群工具有很多,最好学是LVS,这是必学,最好也学学nginx集群,反向代理,还有热备,这个就更多工具能实现了,像我公司是自己开发热备工具的,mysql热备也要学,就是主从复制,这个别告诉我容易,其实不容易的,要学懂整个流程一点也不容易,只照着做根本没意思。

10、数据备份,不学不行,工具有很多,但至少要把RAID的原理弄懂,特别是企业最常用的1+0或0+1,自己做实验也要弄出来,备份工具有很多,如tar, dump, rsync等,最好多了解一下。

算了,说到这10点已经够你受了,应该可以入门了,因为有些技术会比较难学,例如apache和nginx中还有些很重要的技术,如系统调优和服务优化,还有程序优化,这些在没接触工作前很难学习到的,所以先把这10点学了吧,估计要学熟至少3个月不止,就脚本那部分已经让你很吃力了,我建议是先学熟shell,等工作后再学另一门脚本语言,这样会比较好。

以上就是踏入linux运维工程师需要掌握的工具,其实还有很多工具要掌握的,但你在学习环境中是很难学到,最后我再提醒一下,这里所指的工具相当于技能,而不是像windows或ubuntu那些图形化工具,那些工具没用的,还有,学linux就别装图形界面,这样虚拟机就不用吃太多内存,而且绝对不建议在真机上装linux,根本达不到学习效果。

小巷

最美 是童年那些时光
清晨薄雾中的小巷
看得见,蒙蒙水汽的芬芳
看不见,对面早行人的脸庞

最美 是童年那些时光
父亲的车啊,驮我滑行过小巷
记不清,多少次这样的早上
记得起,父亲骑车的模样

最美 是童年那些时光
那条知道我名字的小巷
有辆五羊牌的自行车啊
叮当,叮当

AWS CentOS 6.5上搭建PPTP VPN服务

主要参考了这篇网上文章:
centos 6.4 6.5安装搭建pptp vpn服务

有两个要点:
1,iptables里面要打开1723端口
2,要在AWS管理台里面,将EC2的安全组的inbound rule进行修改,以支持1723端口

另外,在修改 linux 内核文件 #vi /etc/sysctl.conf后执行/sbin/sysctl -p时,报错:
error: “net.bridge.bridge-nf-call-ip6tables” is an unknown key
error: “net.bridge.bridge-nf-call-iptables” is an unknown key
error: “net.bridge.bridge-nf-call-arptables” is an unknown key

解决方法如下:
modprobe bridge
lsmod|grep bridge

在我搭建完了后,发现了这篇文章,看起来有人做了一个自动化脚本,搞定一切:
使用AWS EC2搭建PPTP服务
我没有测试,不知道如何,读者诸君自己判断吧。

G31主板加阵列卡组raid0

前段时间将家里一台老机器略微升了级,近期由于手头主力机器没怎么使用,用老机器为主,办公看网页都很好,不过开两个虚拟机的时候,则略微有些性能不足了。总体来说,能再升级当然更好,譬如加内存,不过G31的主板内存插槽只有两个,各插了一根2G DDR2 800的内存。现在老内存条比DDR3的贵很多,老机器如此升级不合算了。不如看看提升IO性能,硬盘是老的160G,16M缓存的,其实有点慢了,好在正好有两个这样的硬盘。于是想不如做个raid0,两个并成一个,而且还提高读写速度。

查资料,这款梅捷的G31主板(sy-i5g31-l)是不支持raid功能的,于是淘宝了一块raid卡,拆机下来的乐扩MM-SA3114-4IR5,20元+6元运费=26元搞定。下面说说硬件及系统安装的要点。(点这里到该阵列卡的官方网站

硬件安装其实很简单,装在PCI插槽就可以了。这块梅捷G31主板一个PCI-E插槽和两个PCI插槽,由于上次买了个9500GT显卡装上,其风扇挡住了一根PCI插槽,所以我其实只有一个选择啦。两个硬盘的资料事先备份后,将sata线从主板上拔下改插到阵列卡上,如此就可以了。开机后,会显示阵列相关的信息,并且提供Ctrl+S或者F4快捷键进入raid设置。具体设置过程不列举了,无非就是选择raid0,选择两块硬盘,然后点创建。这里最好先将两个硬盘做低级格式化,然后创建成raid0,

硬件安装过程中有小插曲,我PCI插槽没有插牢固,导致主板没有认出raid卡,开机好几次都没看到raid设置,进BIOS也看不到raid卡,更看不到原有硬盘了。一度以为被JS骗了,后来重新插了一遍,终于成功。

安装系统则费了一点周章,我一共尝试了四种操作系统。

第一种是windows 7,目测应该能安装,但由于别的原因没安装成功(蓝屏,提示这块板子的设置不支持ACPI)。

第二种是Ubuntu 14.04,用U盘引导安装,进入硬盘分区设置的地方比较诡异,选择第一种全覆盖安装就报错,选择LVM安装也是报错,说bootlooder不能安装到硬盘上,选择自定义安装,则看到一堆硬盘分区,基本能看到两个硬盘的原有分区都在里面,不是说好两个硬盘组raid0以后系统就识别当成一个硬盘的吗?

第三种是Fedora Wokstation 22,刚刚发布出来的很漂亮的系统,用u盘安装,结果完全认不出硬盘,只得放弃。

第四种是CentOS 6.5,识别一个320G的硬盘,一路向下,顺利完成,安装体验不错。

网上查了一下,可能有Ubuntu和Fedora支持阵列卡的解决办法,无非是安装程序启动时加载驱动之类的。本人暂时没时间折腾,再说这是台二奶机器,就算了。

就跑CentOS 6.5吧,胜在稳定。上面再跑虚拟机好了。

安装CentOS 6.5用作桌面系统

种种原因,家里一台老台式机装上了CentOS 6.5,因为主力机器最近因故没用,所以这两天将这台台式机当桌面系统在用。就目前流行来看,更多人可能会用Ubuntu,因为方便、漂亮且流行。也可能有很多人用Fedora Wokstation,尤其是做软件开发的用户,Fedora应该是开发环境支持做得不错,而且界面也漂亮。我的选择是硬件导致的,这里不细说了。

CentOS 6.5稳定,界面略朴素。安装比较顺利,当然还手工要安装一堆东西。第一个是nVidia显卡驱动,这个可以从nVidia官网下载,不过官网也说了,不同Linux发行版,可能有自己的repository支持,建议优先从那些地方安装。我查了一下,ELRepo源是可以的。具体安装过程:

sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

这是第一次用ELRepo源,其口号是”For the community, by the community.” 好耳熟啊,政治课听到过类似表述有没有?

以上完成后,用系统带的添加/删除软件工具,就可以看到nvidia的驱动了。选择对应版本,并且卸载系统默认安装的开源的nouveau驱动就可以了。

顺便提一下,同样是nVidia 340.78的驱动,centOS下对双显示器的支持,比在Ubuntu下好,我亲测如此。

此外,还添加了EPEL源,EPEL全称是“Extra Packages for Enterprise Linux”,添加方式:
sudo yum install epel-release

由于更习惯于用英文系统,所以此外还要手工选择安装中文输入法、安装NTFS文件格式的支持。

安装VirtualBox的时候,extensionPack哪怕看起来安装成功了,但可能是有问题的,忘了做什么的时候报了个错,说没有安装好,要我运行/etc/init.d/vboxdrv setup,结果还报错,说内核编译不成功,通过看/var/log/vbox-install.log的错误信息“unable to find the sources of your current Linux kernel. Specify KERN_DIR= and run Make again. ”,网上查了才知道,要安装内核的开发文件,于是:
sudo yum install gcc kernel-devel kernel-header
如此再运行
sudo /etc/init.d/vboxdrv setup
则成功。

还有一堆软件的安装就不再列举。

网上有篇很好的CentOS 7的安装过程记录,可以参考:
http://seisman.info/linux-environment-for-seismology-research.html

新建的Joomla网站慢的原因之一

这两天帮朋友搭建基于Joomla的网站,服务器放置在香港。从家里访问起来始终很慢。
一开始以为是大陆和香港的网络问题。后来尝试用香港的VPN连接,各种速度的测试。
发现虽然有改善,但仍然很慢。

在排除了网络、服务器硬件性能等一系列因素后,将注意力放在了网站本身。

最后发现其实问题很简单,哪怕不用特别的分析软件,就凭肉眼,也能发现:
当首页加载的时候,浏览器一直在加载http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js文件。
原来如此!google可是被伟大的G.F.W墙掉的阿!能成功加载才怪了。

解决办法就是把所有的调用修改掉,要么修改一个大陆访问很快的jquery库,要么修改为调用网站服务器的本地文件。
要注意的是,joomla在安装了各种模块后,对google jquery文件的调用可能不止一处。
在我的case里,一共两个地方:
1,K2里面有调用,解决起来很简单,只要在管理后台K2的设置里面去修改就可以;
2,Responsive Contact Form模块,这个要修改mod_responsive_contact_form.php:

// $document->addScript('//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js');
$document->addScript(JURI::root(true).'/media/k2/assets/js/jquery-1.8.3.min.js');

这是最简单的办法,不知道如果模块升级,这个文件会不会被更新掉。考虑到这是一个简单的模块,哪怕有新版本,要么不升级,要么升了再检查修改吧。

老机器略升级

08年的老机器,说起来还有一段故事。用的少,放家里吃灰好多年,配置虽然不高,其实成色不错的。打开看看配置。

image

梅捷sy-i5g31-l的主板,E2160的CPU,2g ddr2 800的内存,160G的Sata硬盘。网页打开多几个会卡,鲁大师判定是低档电脑。想跑virtualbox,发现这款cpu不支持虚拟化。好吧,决定花小钱略升级一下。

淘宝上25元买了奔腾E5300,60元买了一根2g内存好组双通道。本来继续用集成显卡的,因为咨询了一下掌柜这款古董如何升级,他建议加9500显卡,想想也有道理,避免用集显,让CPU轻装上阵,所以35元买了铭瑄ms-9500gt。
加邮费一共126元,掌柜送了导热硅脂,sata线(顺便加一块闲置在家的160G硬盘)。

image

这是收到的配件,老板竟然弄了个瓶盖装了点硅脂。

一切顺利,一次性点亮。然后重启进BIOS将外频从默认的200调到250,主频跑在3.25G,稳定运行数小时无压力。鲁大师跑分居然超过57%的电脑,变成中档电脑了。

这小钱还是花得值得的。

NAS硬盘报错

家里的Thecus NAS 很久没有用了,拿出来用,现在开机居然一直报警。LCD面板上看起来是raid degrade了,仔细看,报第三块硬盘不可用。Web管理界面能开起来,换了硬盘始终不行,要么硬件问题,要么需要SSH连进系统看看。