說到工具,在行外能夠說是技能,在行內咱們通常稱爲工具,就是運維必需要掌握的工具。php
Linux系統若是是學習能夠選用Redhat或CentOS,特別是CentOS在企業中用得最多,固然還會有其它版本的,但學習者仍是以這2個版本學習就行,由於這兩個版本都是兄弟,沒區別的,有空能夠再研究一下SUSE,有些公司也喜歡用,例如我公司 。。。html
工具以下:python
一、Linux系統基礎mysql
這個不用說了,是基礎中的基礎,連這個都不會就別幹了,參考書籍,能夠看鳥哥linux基礎篇,至少要掌握這書60%內容,沒必須所有掌握,但基本命令總得會吧。linux
二、網絡服務ios
服務有不少種,每間公司都會用到不一樣的,但基礎的服務確定要掌握,如FTP, DNS,SAMBA, 郵件, 這幾個大概學一下就行,LAMP和LNMP是必需要熟練,我所指的不是光光會搭建,而是要很熟悉裏面的至關配置才行,由於公司最關鍵的絕對是WEB服務器,因此nginx和apache要熟悉,特別是nginx必定要很熟悉才行,至少有些公司還會用tomcat,這個也最好學一下。其實網絡服務方面不用太擔憂,通常公司的環境都已經搭建好,就算有新服務器或讓你整改,公司會有相應的文檔讓你參照來弄,不會讓你亂來的,但至少相關的配置必定要學熟,並且確定是編譯安裝多,那些模塊要熟悉一下他的做用,特別是PHP那些模塊。nginx
這上面2點只是基礎,也是必要條件,不能說是工具,如下才是真正的要掌握的工具。web
三、shell腳本和另外一個腳本語言正則表達式
shell是運維人員必須具有的,不懂這個連入職都不行,至少也要寫出一些系統管理腳本,最簡單也得寫個監控CPU,內存比率的腳本吧,這是最最最基本了,別覺得會寫那些猜數字和計算什麼數的,這些沒什麼做用,只做學習意義,寫系統腳本纔是最有意義,而另外一個腳本語言是可選的,通常是3P,即python, perl和php,php就不須要考慮了,除非你要作開發,我我的建議學python會比較好,難實現自動化運維,perl是文本處理很強大,反正這兩個學一個就好了。sql
四、sed和awk工具
必需要掌握,在掌握這兩個工具同時,還要掌握正則表達式,這個就痛苦了,正則是最難學的表達式,但結合到sed和awk中會很強大,在處理文本內容和過濾WEB內容時十分有用,不過在學shell的同時通常會常常結合用到的,因此學第3點就會順便學第4點。
五、文本處理命令
sort, tr, cut, paste, uniq, tee等,必學,也是結合第3點時一併學習的。
六、數據庫
首選mysql,別問我爲何不學sqlserver和oracle,由於Linux用得最多絕對是mysql,增刪改查必學,特別要學熟查,其它方面可能不太須要,由於運維人員使用最多仍是查,哪些優化和開發語句不會讓你弄的。
七、防火牆
不學不行,防火牆也算是個難點,說難不難,說易不易,最重要弄懂規則,若是學過CCNA的朋友可能會比較好學,由於iptables也有NAT表,原理是同樣的,而FILTER表用得最多,反正不學就確定不合格。
八、監控工具
十分十分重要,我我的建議,最好學這3個,cacti,nagios,zabbix,企業用得最多應該是nagios 和 zabbix,反正都學吧,但nagios會有點難,由於會涉及到用腳本寫自動監控,那個地方很難。
九、集羣和熱備
這個很重要,確定要懂的,但到了公司就不會讓你去弄,由於新手基本不讓你碰,集羣工具備不少,最好學是LVS,這是必學,最好也學學nginx集羣,反向代理,還有熱備,這個就更多工具能實現了,像我公司是本身開發熱備工具的,mysql熱備也要學,就是主從複製,這個別告訴我容易,其實不容易的,要學懂整個流程一點也不容易,只照着作根本沒意思。
十、數據備份
不學不行,工具備不少,但至少要把RAID的原理弄懂,特別是企業最經常使用的1+0或0+1,本身作實驗也要弄出來,備份工具備不少,如tar, dump, rsync等,最好多瞭解一下。
算了,說到這10點已經夠你受了,應該能夠入門了,由於有些技術會比較難學,例如apache和nginx中還有些很重要的技術,如系統調優和服務優化,還有程序優化,這些在沒接觸工做前很難學習到的,因此先把這10點學了吧,估計要學熟至少3個月不止,就腳本那部分已經讓你很吃力了,我建議是先學熟shell,等工做後再學另外一門腳本語言,這樣會比較好。
以上就是踏入Linux運維工程師須要掌握的工具,其實還有不少工具要掌握的,但你在學習環境中是很難學到,最後我再提醒一下,這裏所指的工具至關於技能,而不是像windows或ubuntu那些圖形化工具,那些工具沒用的,還有,學Linux就別裝圖形界面,這樣虛擬機就不用吃太多內存,並且絕對不建議在真機上裝Linux,根本達不到學習效果。
==================================================================================
介紹幾款Linux運維比較實用的工具,但願對Linux管理員有所幫助。
一、查看進程佔用帶寬狀況-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
二、硬盤讀取性能測試-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指定輸出到指定文件上
三、實時監控磁盤IO-IOTop
IOTop命令是專門顯示硬盤IO的命令,界面風格相似top命令。
[root@localhost ~]# yum -y install iotop
四、網絡流量監控-IPtraf
IPtraf是一個運行在Linux下的簡單的網絡情況分析工具。
[root@localhost ~]# yum -y install iptraf
五、網絡流量監控-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 的平均流量
六、進程實時監控-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
七、系統資源監控-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
八、監控多個日誌-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指定一個文件名
九、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
十、鏈接會話終端持續化-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源)
十一、頁面顯示磁盤空間使用狀況-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關閉認證若是不加端口號會生成一個隨機的用瀏覽器訪問
十二、安全掃描工具-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系統版本檢測
1三、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