为什么80%的码农都做不了架构师?>>>
说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具。
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,zabbix,企业用得最多应该是nagios 和 zabbix,反正都学吧,但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,根本达不到学习效果。
==================================================================================
介绍几款Linux运维比较实用的工具,希望对Linux管理员有所帮助。
1、查看进程占用带宽情况-Nethogs
Nethogs 是一个终端下的网络流量监控工具可以直观的显示每个进程占用的带宽。
下载:http://sourceforge.net/projects/nethogs/files/nethogs/0.8/nethogs-0.8.0.tar.gz/download
[root@localhost ~]#yum -y install libpcap-devel ncurses-devel [root@localhost ~]# tar zxvf nethogs-0.8.0.tar.gz [root@localhost ~]# cd nethogs [root@localhost nethogs]# make && make install [root@localhost nethogs]# nethogs eth0
2、硬盘读取性能测试-IOZone
IOZone是一款Linux文件系统性能测试工具 可以测试不同的操作系统中文件系统的读写性能。
下载:http://www.iozone.org/src/current/
[root@localhost current]# tar xvf iozone3_420.tar [root@localhost ~]# cd iozone3_420/src/current/ [root@localhost current]# make linux [root@localhost current]# ./iozone -a -n 512m -g 16g -i 0 -i 1 -i 5 -f /mnt/iozone -Rb ./iozone.xls
-a使用全自动模式
-n为自动模式设置最小文件大小(Kbytes)。
-g设置自动模式可使用的最大文件大小Kbytes。
-i用来指定运行哪个测试。
-f指定测试文件的名字完成后自动删除
-R产生Excel到标准输出
-b指定输出到指定文件上
3、实时监控磁盘IO-IOTop
IOTop命令是专门显示硬盘IO的命令,界面风格类似top命令。
[root@localhost ~]# yum -y install iotop
4、网络流量监控-IPtraf
IPtraf是一个运行在Linux下的简单的网络状况分析工具。
[root@localhost ~]# yum -y install iptraf
5、网络流量监控-IFTop
iftop是类似于linux下面top的实时流量监控工具。比iptraf直观些。
下载:http://www.ex-parrot.com/~pdw/iftop/
[root@localhost ~]# tar zxvf iftop-0.17.tar.gz [root@localhost ~]# cd iftop-0.17 [root@localhost iftop-0.17]# ./configure [root@localhost iftop-0.17]# make && make install [root@localhost iftop-0.17]# iftop [root@localhost iftop-0.17]# iftop -i eth0 #指定监控网卡接口
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量
6、进程实时监控-HTop
HTop是一个 Linux 下的交互式的进程浏览器可以用来替换Linux下的top命令。
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm(安装第三方YUM源)
[root@localhost ~]# yum -y install htop
7、系统资源监控-NMON
NMON是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具
下载:http://sourceforge.jp/projects/sfnet_nmon/releases/
[root@localhost ~]# chmod +x nmon_x86_64_rhel6 [root@localhost ~]# mv nmon_x86_64_rhel6 /usr/sbin/nmon [root@localhost ~]# nmon
8、监控多个日志-MultiTail
MultiTail是在控制台打开多个窗口用来实现同时监控多个日志文档、类似tail命令的功能的软件。
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm(安装第三方YUM源)
[root@localhost ~]# yum -y install multitail [root@localhost ~]# multitail -e "fail" /var/log/secure #筛选关键字进行监控 [root@localhost ~]# multitail -l "ping baidu.com" #监控后面的命令-l将要执行的命令 [root@localhost ~]# multitail -i /var/log/messages -i /var/log/secure #-i指定一个文件名
9、SSH暴力破解防护-Fail2ban
Fail2ban可以监视你的系统日志然后匹配日志的错误信息正则式匹配执行相应的屏蔽动作一般情况下是调用防火墙屏蔽
下载:http://www.fail2ban.org/wiki/index.php/Downloads
[root@localhost ~]# cd fail2ban-0.8.11 [root@localhost fail2ban-0.8.11]# python setup.py install [root@localhost fail2ban-0.8.11]# cd files/ [root@localhost files]# cp ./redhat-initd /etc/init.d/fail2ban [root@localhost files]# service fail2ban start [root@localhost files]# chkconfig --add fail2ban [root@localhost files]# chkconfig fail2ban on
注:需要配置iptables实用,如果重启iptables了也要重启fail2ban,因为fail2ban的原理是调用iptables实时阻挡外界的攻击。
[root@localhost ~]# grep -v "^#" /etc/fail2ban/jail.conf | grep -v "^$" [DEFAULT] ignoreip = 127.0.0.1/8#忽略本机IP bantime = 600 #符合规则后封锁时间 findtime = 600 #在多长时间内符合规则执行封锁如600秒达到3次则执行 maxretry = 3 #最大尝试次数 backend = auto #日志修改检测日志gamin、polling和auto这三种 usedns = warn [ssh-iptables] enabled = true#默认是禁用false filter = sshd action = iptables[name=SSH, port=ssh, protocol=tcp] # sendmail-whois[name=SSH,dest=收件人邮箱, sender=发件人邮箱, sendername="Fail2Ban"] logpath = /var/log/sshd.log #响应的错误日志一般在/var/log/secure maxretry = 5 #尝试错误次数覆盖全局中的maxretry
注:默认所有的应用防护都是关闭的,需要我们手动开启。fail2ban.conf文件是日志信息,jail.conf文件是保护的具体服务和动作配置信息。
[root@localhost ~]# touch /var/log/sshd.log [root@localhost ~]# service fail2ban restart [root@localhost ~]# fail2ban-client status #查看监控已经开启 Status |- Number of jail: 1 `- Jail list: ssh-iptables [root@localhost ~]# iptables -L #iptables过滤表有fail2ban一条规则 fail2ban-SSH tcp -- anywhere anywhere tcp dpt:ssh
10、连接会话终端持续化-Tmux
Tmux是一个优秀的终端复用软件类似GNU Screen比Screen更加方面、灵活和高效。为了确保连接SSH时掉线不影响任务运行。
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm(安装第三方YUM源)
11、页面显示磁盘空间使用情况-Agedu
下载:http://www.chiark.greenend.org.uk/~sgtatham/agedu/
[root@localhost ~]# tar zxvf agedu-r9723.tar.gz [root@localhost ~]# cd agedu-r9723 [root@localhost ~]# ./configure [root@localhost ~]# make && make install [root@localhost ~]# agedu -s / #-s扫描 [root@localhost ~]# agedu -w --address 192.168.0.10:80 #-w输入一个网页链接 [root@localhost ~]# agedu -w --address 192.168.0.108080 --auth none #--auth关闭认证如果不加端口号会生成一个随机的用浏览器访问
12、安全扫描工具-NMap
NMap是Linux下的网络连接扫描和嗅探工具包用来扫描网上电脑开放的网络连接端。
下载:http://nmap.org/download.html
[root@localhost ~]# tar jxvf nmap-6.40.tar.bz2 [root@localhost nmap-6.40]# ./configure [root@localhost nmap-6.40]# make && make install [root@localhost ~]# nmap 192.168.0.10 #获取基本信息 [root@localhost ~]# nmap -O 192.168.0.10 #获取系统版本信息 [root@localhost ~]# nmap -A 192.168.0.10 #获取系统综合信息 [root@localhost ~]# nmap 192.168.0.0/24 #获取一个网段工作设备基本信息
-sSTCP扫描
-sV系统版本检测
13、Web压力测试-Httperf
Httperf比ab更强大,能测试出web服务能承载的最大服务量及发现潜在问题;比如:内存使用、稳定性。最大优势:可以指定规律进行压力测试,模拟真实环境。
下载:http://code.google.com/p/httperf/downloads/list
[root@localhost ~]# tar zxvf httperf-0.9.0.tar.gz [root@localhost ~]# cd httperf-0.9.0 [root@localhost httperf-0.9.0]# ./configure [root@localhost httperf-0.9.0]# make && make install [root@localhost ~]# httperf --hog --server=192.168.0.202 --uri=/index.html --num-conns=10000 --wsess=10,10,0.1
参数说明:
--hog:让httperf尽可能多产生连接,httperf会根据硬件配置,有规律的产生访问连接
--num-conns:连接数量,总发起10000请求
--wsess: 用户打开网页时间规律模拟,第一个10表示产生10个会话连接,第二个10表示每个会话连接进行10次请求,0.1表示每个会话连接请求之间的间隔时间/s