「不想成爲將軍的士兵,不是好士兵」-拿破崙前端
如何成爲運維經理?mysql
通常來講,運維經理大概有兩種出身:一種是從底層最基礎的維護作起,經過出色的維護工做,讓公司領導對這我的很是承認,同時對Linux運維工做也比較重視,逐步走向Manager的崗位;第二種是業務管理出身或者有IT技術背景,具有了必定經驗直接進入IT管理層的人員。ios
那麼作爲一個Linux運維經理,你須要哪些技能武器、管理哪些細節,具有什麼樣的能力?nginx
運維技能武器庫git
Bootstrapping: Kickstart、Cobbler、rpmbuild/xen、kvm、lxc、Openstack、 Cloudstack、Opennebula、Eucalyplus、RHEV
配置類工具: Capistrano、Chef、puppet、func、salstack、Ansible、rundeck
監控類工具: Cacti、Nagios(Icinga)、Zabbix、基於時間監控前端Grafana、Mtop、MRTG(網絡流量監控圖形工具)、Monit
性能監控工具: dstat(多類型資源統計)、atop(htop/top)、nmon(類Unix系統性能監控)、slabtop(內核slab緩存信息)、sar(性能監控和瓶頸檢查)、sysdig(系統進程高級視圖)、tcpdump(網絡抓包)、iftop(相似top的網絡鏈接工具)、iperf(網絡性能工具)、smem)(高級內存報表工具)、collectl(性能監控工具)
免費APM工具: mmtrix(見過的最全面的分析工具)、alibench
進程監控: mmonit、Supervisor
日誌系統: Logstash、Scribe
繪圖工具: RRDtool、Gnuplot
流控系統: Panabit、在線數據包分析工具Pcap Analyzer
安全檢查: chrootkit、rkhunter
PaaS: Cloudify、Cloudfoundry、Openshift、Deis (Docker、CoreOS、Atomic、ubuntu core/Snappy)
Troubleshooting:Sysdig 、Systemtap、Perf
持續集成: Go、Jenkins、Gitlab
磁盤壓測: fio、iozone、IOMeter(win)
Memcache Mcrouter(scaling memcached)
Redis Dynomite、Twemproxy、codis/SSDB/Aerospike
MySQL 監控: mytop、orzdba、Percona-toolkit、Maatkit、innotop、myawr、SQL級監控mysqlpcap、拓撲可視化工具
MySQL基準測試: mysqlsla、sql-bench、Super Smack、Percona's TPCC-MYSQL Tool、sysbench
MySQL Proxy: SOHU-DBProxy、Altas、cobar、58同城Oceanus
MySQL邏輯備份工具: mysqldump、mysqlhotcopy、mydumper、MySQLDumper 、mk-parallel-dump/mk-parallel-restore
MySQL物理備份工具: Xtrabackup、LVM Snapshot
MongoDB壓測:iibench&sysbenchsql
運維管理工做全貌docker
一、域名數據庫
從買域名開始,要買多個域名,50個甚至100個。分爲主域名和推廣域名(給推廣連接用的)。要從godaddy上買域名,由於這裏的域名穩定,不會出現被攻擊等事情。同時還要買域名保護,這樣互聯網用戶ping這個域名就解析不到真實的服務器地址。
同時域名解析的操做不要在godaddy上進行,要把解析的操做放在cloudflare上或者dnspod上進行操做,也能夠放到zndns上(這個dns能夠作到一個域名解析多個IP地址,根據就近原則,把最快的IP地址解析給用戶。)也能夠本身搭建dns服務器,在godaddy上只想到本身搭建的dns服務器就能夠了。這樣,修改dns指向的時候會更快。ubuntu
二、 CDNapi
必定要買cdn服務。若是出現部分用戶訪問不了就使用cdn服務。能夠從cloudflare上購買cdn服務,這樣域名解析到cdn上,而後cdn解析到肉盾擊仍是那個,而後肉盾擊指向核心服務器上。Cdn充當一個緩存和轉發的做用,大流量攻擊的時候他能夠防護至少200G的攻擊。Cdn是全球緩存的。
三、 圖片服務器
在國內租用幾臺服務器作圖片緩存服務器便可,這樣提升訪問速度。其實nginx自己就是一個圖片緩存服務器。
圖片服務器和其餘服務器要分開,肉盾擊可作圖片緩存。
四、服務器機房
選擇機房過重要了,要服務質量好的,還要高防好的,還要可靠性高的,還要相應及時的,還要能隨時能夠查看服務器狀態的,最重要還要服務態度好了。
機房要買香港九河(用戶核心服務器),美國聖安娜機房(用於肉盾擊)(雖然慢,可是安全高防作的真好,大流量攻擊的時候,這裏的機房仍是能夠訪問,因此,雞蛋不要放在一個籃子裏頭,要各個等級都有才叫好的,國內機房快,可是高防效果差,美國機房慢可是高防效果好)
五、主頁
一個主頁,就是招商或成爲打廣告的網站,能夠租用雲主機,這樣被打死就被打死吧。裏面能夠有一個連接,指向遊戲首頁,這個連接能夠是帶端口號的,那就簡單了。
也能夠是不帶端口號的,這時候就必定要用cdn服務器,或者使用免備案機房,把肉盾擊放在免備案機房,由於國內搭建網站都是要備案的,博彩這個行業是被禁止的,爲了不域名或者IP地址被和諧了(gwf)因此要用免備案機房。
或者就把肉盾擊也放到香港或者臺灣或者韓國等等機房。這樣用戶能夠不使用端口號,直接用域名就能夠訪問我們的網站。
六、監控系統
要個網站要有監控系統,實時監控服務器是否有攻擊,功過查看日誌是否激增,還要把日誌放到日誌服務器上(syslog服務),使用cacti服務能夠把日誌放到cacti上。網速是必定要查看的,網速激增則證實必定是有攻擊。
天天要看日誌,要用日誌分析軟件,看看訪問源是單一訪問源仍是多個不一樣的訪問源.監控服務器要有報警功能,一旦狀況異常就要馬上報警,而後起牀處理攻擊。
七、 防攻擊
攻擊通常看狀況而定,通常的攻擊都是直接攻擊域名。小量的攻擊能夠經過nginx和iptables自己的防護功能就防掉。大量的攻擊因爲直接把網絡帶寬佔用滿了,服務器沒法正常相應,只能依靠機房的高防了。
因此要買大量的高防,建議至少200G。若是攻擊源是單一IP或者幾個IP,那麼就讓機房把這幾個IP給屏蔽就能夠了。遇到cc或者ddos攻擊,只能靠機房解決。一臺服務器被打死後,須要馬上把域名指向另外一臺服務器,(或者直接把域名指向百度)。
大量的攻擊還要使用cdn,讓cdn直接指向核心服務器就能夠了,這樣能快一點,讓用戶還能夠玩。總之大流量攻擊是不能徹底防止的。
八、冗餘
一個網站必定要有冗餘,好比如今是1000人同時訪問的併發量,必定要讓網站的負載達到2000人的併發量,要否則一搞活動,網站負載不了那麼多人就完了。
九、服務器
服務器的配置,要用三網卡,一個用於用戶鏈接,對外的訪問(要好的網卡)。一個用於內網服務器之間的訪問使用。一個用於ssh管理,這樣大量攻擊的時候我們還能夠操做服務器。
每一個網卡還要多個IP地址,這樣防止某個IP被屏蔽了。國內網絡和國外網絡常常會有IP很差用的狀況。硬盤至少要鏡像(raid 1),cpu要兩路的,雙電源,總之不要有單點故障。至於肉盾擊的配置能夠低一些,甚至臺式機的配置均可以,可是網絡必定要好,尤爲是和核心服務器之間的網絡必定要好。
十、數據庫
數據庫要作主從複製,要有異地備份,nginx服務器要作集羣,就是upstream。前臺(提供用戶訪問頁面)和後臺(員工管理界面)要用兩臺不一樣的機器,不要互相影響。其他的服務可使用一臺虛擬機完成。
這樣能夠省錢,郵箱直接買google的gmail企業郵箱就行了,很是好用,最好沒人一個。或者公司內部搭建本身的聊天軟件(最好還錢買聊天軟件)。
十一、測試環境
測試環境要三套,開發人員電腦上本身的環境,要局域網一套測試環境,互聯網一套測試環境,生產環境。局域網的測試環境必定要穩定,能夠買一個機櫃等等的網絡設備放在一塊兒,不要用普通電腦。局域網要有svn或git的代碼管理工具。充分測試後在上傳到生產環境。
十二、肉盾擊和核心服務器
肉盾擊和核心服務器之間必定要可使用ping命令,這樣能夠看看那個IP地址不能使用了,網絡連通性均可以看出來。
1三、運維人員
至少兩個,若是有運維經理一個運維人員就夠了。這樣全部運維工做必須有操做文檔,兩我的互相協調工做,不須要倒班,可是24小時待命。網管一個就夠了。
普通的運維部門大概就這樣,若是是大的網絡架構,會有本身的數據中心機房到時候在安排人手。
1四、 Linux系統優化和安全
要有優化和安全配置,好比說nginx基於cpu的優化,每一個程序基於cpu和內存的限制。
全部密碼要有3個月就修改一次,尤爲是域名的帳號和郵箱密碼,域名是最重要也是最脆弱的環節。
1五、局域網
局域網必定要穩定,能夠買兩條網線,至少10M帶寬,還要買一個移動wifi,給員工手機上網。
1六、機房
若是是大型網絡架構,那得有本身的核心機房,就不是租用機房了,每一個崗位都是若干人組成的,包括運維工程師,數據庫管理工程師,網絡工程師,安全工程師,存儲備份系統工程師,運維經歷負責協調各個部門間的工做。目前就是一個運維就能完成全部的工做。
1七、運維工具
運維的工具要統一,好比鏈接數據庫使用sqlyog工具,鏈接服務器使用crt工具,密碼管理用keepass,上傳服務器代碼使用winscp工具,等等。這樣運維人員之間工做比較好協調。
另外運維必定要有大量時間學習,天天都要上網找新技術,好的資料,最好要懂英文,由於好的技術文檔都是英文寫的。這樣對運維工做頗有幫助,並且運維技術實力會有很大的進步的,爲迎接更大的需求作準備。
1八、災備預案
最後必定要有預案,就是服務器一旦出現重大問題,就是解決不了了,這個時候就不要去解決這臺服務器,使用預案,把啓用備用方案,儘快讓網站可用。
平時多作預案演習,還要多作備份的還原操做,由於有的備份不可用,這是常見現象。別到關鍵時刻備份不能用,整個網站就完了。
1九、服務器安全
要有一整套的安全配置,包括用戶安全,應用安全,系統安全,文件安全等。這樣防止服務器被黑客侵入。
20、高併發測試
必定要作高併發測試,模擬同時在線用戶2000人,看服務器的負載狀況,要有服務器高併發配置,網絡方面是機房的事情,可是得選擇最合適的IP地址,最適合的機房,及出口帶寬。
高併發是服務器架構的事情,不是單單一臺服務器的事情。該花錢的地方必定要花,能夠省錢的地方要知道怎麼省錢。
2一、 運維信息
運維全部信息兩我的共享,包括密碼和服務器配置步驟,由運維經理帶領團隊,打形成一個互相學習,技術實力雄厚,目標一致的和諧團隊。讓每一個人在團隊中都獲得本身想要的。
運維經理的爲人就很重要,要否則留不住人,你們心不往一塊兒使勁。運維工做技術不是最重要的,由於這個職位現學現用也來得及,因此工做態度/爲人和經驗是最重要的。
2二、服務器日誌
對服務器創建日誌,全部服務器的全部操做都要有記錄,而且寫清時間操做內容。對生產服務器操做以前必定要作風險評估及解決方案。
2三、運維工做
應用上線後,運維工做纔剛開始,具體工做可能包括:升級版本上線工做、服務監控、應用狀態統計、平常服務狀態巡檢、突發故障處理、服務平常變動調整、集羣管理、服務性能評估優化、數據庫管理優化、隨着應用PV增減進行應用架構的伸縮、安全、運維開發工做。
核心運維管理工具箱
重點介紹運維流程管理、運維發佈變動、運維監控告警三個方面的具體工具,可做爲工做日記使用。
第一類:運維流程管理工具
1.發佈變動流程管理工具
作爲系統接口與其餘角色的工做銜接。並提供審批環節控制發佈變動的風險。流程管理工具並不負責具體的業務操做的執行,只是做爲單據系統跟蹤流程和確保閉環。
2.告警和突發管理工具
體現業務受損的告警自動建單管理。人工確認以後升級爲突發單。經過建單管理告警和突發確保流程的閉環,以及每次故障都可以總結出經驗,並未度量業務的可用性提供KPI。
第二類:運維發佈變動工具
1.版本管理工具(數據庫)
全部的發佈應該以版本管理爲起點。研發給的版本包先入版本管理工具,再從版本管理工具分發到現網發佈。杜絕 rsync 一臺服務器發佈另一臺的作法。
2.配置管理工具(數據庫)
版本加配置等於現網每臺機器的狀態。最粗粒度的配置管理是到 IP 級別,至關於對機器作資產管理,分組到不一樣的業務,模塊和大區等業務概念上。細粒度一點會管理到進程以及進程的相關配置。
3.配置和版本下發工具
把指定的版本,結合配置好的配置下發到現網的機器上。不一樣的版本和配置方式須要徹底不一樣的下發方式。以 ssh/fabric 爲表明的下發方式是以腳本爲中心的。以 puppet/chef 爲表明的下發方式是以配置爲中心的。
4.現網狀態同步工具
爲了規避現網狀態漂移,與管理工具內的記錄不一致。須要有一個工具定時上報現網的實際情況。
5.服務調度工具
發佈變動常常須要一個串行的流程,先作A模塊,再作B模塊。不少機器的時候,須要把能併發的操做併發執行,不能併發的操做確保串行執行。同時不少發佈變動流程須要操做管理範圍外的服務,好比雲端的DNS服務器記錄等。這就須要有一個服務調度工具統一調度配置和版本下發工具,流程單據工具,以及其餘系統的API接口共同組裝成一個流程。
6.資源管理和隔離工具
以xen/kvm爲表明的工具讓運維能夠更靈活的切割資源。好比虛擬機的快速起停,ip在idc內的漂移等。以 lxc/docker 爲表明的工具讓運維能夠進一步的切割資源到進程級別。資源隔離代理的細粒度的資源控制能夠得到更好的資源利用率,以及更容易進行可伸縮的資源配置。
7.發佈變動統一界面
包裝全部的下層工具,提供簡單的界面完成標準化的發佈變動操做。
第三類:運維監控告警工具
1.採集工具
通常是採集日誌文件,也能夠是定時輪詢 DB 或者其餘系統的接口。流行的開源方案是 logstash。
2.收集工具
採集工具上報給收集工具。或者由開發直接修改代碼上報指標給收集工具。流程的開源方案仍是 logstash。
3.統計入庫工具
上報多是每次調用就上報一次,統計工具負責統計出一分鐘內的次數。上報也多是每5秒上報一次數值,統計工具負責統計出一分鐘內的最大值。統計工具的存在是爲了上報的方便。流行的開源方案是 statsd,也有大公司基於 storm 來作二次開發的。
4.時間序列數據庫
全部定時指標會落地到數據庫裏。監控告警所須要的數據庫須要可以支撐很是大的數據量,可是並無很嚴格的 ACID 要求。
5.運維事件數據庫
記錄全部的告警。包括從其餘系統得到告警,以及對現網的全部變動操做記錄。這些數據用於支撐告警的緣由定位。
6.指標異常檢測工具
基於數學模型發現指標是否與過去的穩定模式背離,而推測出現網狀態的變化。
7.撥測工具
定時 PING 或者 HTTP GET,模擬實際用戶發現服務是否中斷,產生告警。同時也產生指標上報給收集系統。撥測又分爲本地撥測,和遠程撥測。本地撥測能夠用於發現磁盤只讀等本機告警。遠程撥測能夠模擬用戶的地理分佈,把網絡的鏈路情況也包含在撥測覆蓋的範圍內。
8.告警收斂工具
綜合全部來源的告警,進行頻率收斂,根源分析。統一彙總成報告催促人工修復。
9.告警自動修復工具
接受告警進行自動化的處理。幫運維完成固定的故障機下架退庫等操做。或者在業務自己沒有作高可用的狀況下,作故障機替換,ip漂移等現網修復操做,必定程度地提升業務可用性。
10.告警通知工具
重要的告警須要升級爲電話。須要有高可用的電話,短信,微信等通知接口。
11.監控告警統一界面
屏蔽下層各類工具,提供統一的agent安裝,指標採集設置,指標曲線展現,告警查詢的界面。一個地方知道現網的全部的問題。
優秀運維經理的能力
一、系統架構的設計和規劃能力。
做爲一個技術工程師,你關注更多的是具體的技術和問題分析、故障處理等細節,而作爲一名運維經理,則須要你站在全局的高度,把控各環節的應用來規劃和設計系統架構,以實現高效穩定的IT系統。
二、量化和問題管理的能力。
熟悉ITIL以及相關運維工具,經過運維管理工具,跟蹤事件的流程,實現整個IT系統的統一與協調;經過運維管理工具,幫助運維人員監控和定位問題根源;經過知識庫的積累能夠有效解決人員變動後的管理問題。
能夠說,IT系統不只僅須要人的運維,爲了發揮IT系統的最大做用,利用工具來量化、標準化管理更是有必要的。咱們能夠運用自動化的一些工具來採集輸出更爲全面的監控預警信息,化被動運維爲主動運維;經過自動化的運維工具把多點的管理集中減小到一點都能更好的簡化運維工做量和提升運維的效率。
標準的流程清晰明確了,這樣當問題出現時,就不會出現A部門找B部門反饋,B部門又找C部門處理,C可能說是D部門的問題,這樣致使很簡單的問題沒法獲得及時有效的處理,影響的不只僅是業務自己,部門之間也會怨聲載道。
三、管理團隊和協調能力。
大多數時候,運維人員都在進行着簡單重複的工做,且很可貴到最終用戶的確定。曾有一個詞「窮忙族」形容運維工程師,工位上不見人影,一坐下電話不斷,是否是你該解決的問題都有人來找你。這樣的場景,你們應該都有體會。
標準化流程的制定很是重要,不只方便問題的梳理並且能讓對應的問題找到對應的人,這對運維是很重要的,同時有利於團隊的協做。做爲運維經理還要關心團隊中的每個成員,協調每名工程師的工做時間和CASE,合理安排工做任務。另外確定每一個工程師的付出,對他們優秀完成的工做給予積極確定和表揚,這些都有助於凝聚人心和培養團隊的榮譽感。
四、資產管理與審計能力。
準確瞭解公司現有的IT資產和設備,對設備進行清查,明確每個設備的損耗和維保信息。當公司須要購置新機時,都會有明確的數據來支撐你的採購申請。當設備出故障或發生變動時,經過前期的數據均可以作到實時掌握第一手準確數據。並且隨着公司的業務發展,分支機構和員工的增多,資產管理與審計都會變得更重要,對IT運維支持的意義就更大了。
五、組建運維梯隊,合理搭配運維資源的能力。
人員管理問題,在運維當中是比較重要的。不少時候因爲運維工做分配不合理,業績沒法準確考覈。若將運維人員分紅1、2、三線支持,不一樣運維人員各司其職,就能使有限的運維力量獲得合理利用,總體工做效率將明顯提高;同時也方便對各自的工做業績進行評估。再據此制定相應獎懲措施,或針對不一樣崗位提供不一樣服務技能培訓,亦能提升員工工做積極性。
好比:將全部IT問題統一彙總到技術服務檯,對於絕大多數(80%以上)問題,服務檯可直接解決;服務檯解決不了的,再按照問題處理優先級,統一分配不一樣級的運維力量,來確保不一樣問題的處理,同時運維人員也不會錯過須要及時處理的重大問題。
六、技術創新與積累能力。
運維經理自己須要有過硬的技術能力,須要熟悉各類設備、不一樣的操做系統、各環節應用、數據庫、存儲、備份與災難恢復、調優、安全等。
可是在具體的問題和重大的問題處理上,須要聽取團隊的意見,這樣方案會因你們的補充和建議更加完善。多數時候在具體的細節處理上還會有技術創新,同時對你們都是一個學習和積累。對每一個處理過的重大問題和典型問題編寫技術文檔,日積月累造成知識庫,不只方便本身總結學習也方便技術的傳承和積累。
七、開會與分享能力。
開會有時是個很好的溝通方式,也許不少時候你可能比較反感開會。那多是由於它的 形式化、一言堂或跑題、不能解決實際問題。其實開會的做用在於:
歸一化:讓你們在項目、任務、工做的理解、反饋、描述、執行等層面達到一致性。減小內部溝通成本,提升團隊效率。
可視化:追求項目的可視化是項目管理的最高境界。逐層分解下來,就要求各級管理者對項目、任務的進度、風險、問題作到一目瞭然的管理。
項目管理:經過對團隊各維度進行管理、項目管控,人員工做安排,團隊學習提高,工做方向調整等等。
理念貫徹和方向:貫徹公司文化和團隊文化,統一你們的思路和模式。傳達上面領導的指示和部署,同時明確下一步工做重點和方向。
具體問題解決:針對疑難點,進行指導或頭腦風暴,集思廣益羣策羣力。
最後,說一點如何成爲優秀的運維經理。什麼是優秀的運維經理,是否是具有了以上七大能力就是優秀呢,不少人心中或許有不一樣的定義,我認爲優秀的管理者所須要具有的一大品質,就是帶領本身的團隊不斷進取和擁有永不止步的精神。
看一看,這麼多能力你還差什麼?
參考文章: https://blog.csdn.net/servicehot/article/details/78083625?locationNum=7&fps=1