Linux 運(yùn)維工程師的 6 類好習(xí)慣和 23 個教訓(xùn)

<p>從事運(yùn)維三年半隔缀,遇到過各式各樣的問題,數(shù)據(jù)丟失傍菇,網(wǎng)站掛馬猾瘸,誤刪數(shù)據(jù)庫文件,黑客攻擊等各類問題丢习。</p><h2><b>今天簡單整理一下须妻,分享給各位小伙伴。</b>

一泛领、線上操作規(guī)范</h2><p><b>1. 測試使用</b>
當(dāng)初學(xué)習(xí)Linux的使用荒吏,從基礎(chǔ)到服務(wù)到集群,都是在虛擬機(jī)做的渊鞋,雖然老師告訴我們跟真機(jī)沒有什么差別绰更,可是對真實(shí)環(huán)境的渴望日漸上升瞧挤,不過虛擬機(jī)的各種快照卻讓我們養(yǎng)成了各種手賤的習(xí)慣,以致于拿到服務(wù)器操作權(quán)限時候儡湾,就迫不及待的想去試試微谓,記得上班第一天具滴,老大把root密碼交給我背捌,由于只能使用putty力图,我就想使用xshell,于是悄悄登錄服務(wù)器嘗試改為xshell+密鑰登錄尝丐,因為沒有測試显拜,也沒有留一個ssh連接,所有重啟sshd服務(wù)器之后爹袁,自己就被擋在服務(wù)器之外了远荠,幸好當(dāng)時我備份了sshd_config文件,后來讓機(jī)房人員cp過去就可以了失息,幸虧這是一家小公司譬淳,不然直接就被干了……慶幸當(dāng)年運(yùn)氣比較好。</p><p>
第二個例子是關(guān)于文件同步的盹兢,大家都知道rsync同步很快邻梆,可是他刪除文件的速度大大超過了rm -rf,在rsync中有一個命令是,以某目錄為準(zhǔn)同步某文件(如果第一個目錄是空的绎秒,那么結(jié)果可想而知)浦妄,源目錄(有數(shù)據(jù)的)就會被刪除,當(dāng)初我就是因為誤操作替裆,以及缺乏測試校辩,就目錄寫反了窘问,關(guān)鍵是沒有備份……生產(chǎn)環(huán)境數(shù)據(jù)被刪了
沒備份辆童,大家自己想后果吧,其重要性不言而喻惠赫。</p><p>
<b>2. Enter前再三確認(rèn)</b>
關(guān)于rm -rf / var 這種錯誤把鉴,我相信手快的人,或者網(wǎng)速比較慢的時候儿咱,出現(xiàn)的幾率相當(dāng)大
當(dāng)你發(fā)現(xiàn)執(zhí)行完之后庭砍,你的心至少是涼了半截。
大家可能會說混埠,我按了這么多次都沒出過錯怠缸,不用怕,我只想說
當(dāng)出現(xiàn)一次你就明白了钳宪,不要以為那些運(yùn)維事故都是在別人身上揭北,如果你不注意扳炬,下一個就是你。</p><p>
<b>3. 切忌多人操作</b>
我在的上一家公司搔体,運(yùn)維管理相當(dāng)混亂恨樟,舉一個最典型的例子吧,離職好幾任的運(yùn)維都有服務(wù)器root密碼疚俱。
通常我們運(yùn)維接到任務(wù)劝术,都會進(jìn)行簡單查看如果無法解決,就請求他人幫忙呆奕,可是當(dāng)問題焦頭爛額的時候养晋,客服主管(懂點(diǎn)linux),網(wǎng)管登馒,你上司一起調(diào)試一個服務(wù)器匙握,當(dāng)你各種百度,各種對照,完了發(fā)現(xiàn)陈轿,你的服務(wù)器配置文件圈纺,跟上次你修改不一樣了,然后再改回來麦射,然后再谷歌蛾娶,興沖沖發(fā)現(xiàn)問題,解決了潜秋,別人卻告訴你蛔琅,他也解決了,修改的是不同的參數(shù)……這個峻呛,我就真不知道哪個是問題真正的原因了罗售,當(dāng)然這還是好的,問題解決了钩述,皆大歡喜寨躁,可是你遇到過你剛修改的文件,測試無效牙勘,再去修改發(fā)現(xiàn)文件又被修改的時候呢?真的很惱火职恳,切忌多人操作。</p><p>
<b>4. 先備份后操作</b>
養(yǎng)成一個習(xí)慣方面,要修改數(shù)據(jù)時放钦,先備份,比如.conf的配置文件
另外恭金,修改配置文件時操禀,建議注釋原選項,然后再復(fù)制横腿,修改
再者說颓屑,如果第一個例子中辙培,有數(shù)據(jù)庫備份,那rsync的誤操作不就沒事了吧
所以說丟數(shù)據(jù)庫非一朝一夕邢锯,隨便備份一個就不用那么慘扬蕊。</p><h2><b>二、涉及數(shù)據(jù)</b></h2><p>
<b>1. 慎用rm -rf</b>
網(wǎng)上的例子很多丹擎,各種rm -rf /尾抑,各種刪除主數(shù)據(jù)庫,各種運(yùn)維事故……
一點(diǎn)小失誤就會造成很大的損失蒂培。如果真需要刪除再愈,一定要謹(jǐn)慎。
<b>2. 備份大于一切</b>
本來上面都有各種關(guān)于備份护戳,但是我想把它劃分在數(shù)據(jù)類再次強(qiáng)調(diào)翎冲,備份非常之重要哇
我記得我的老師說過一句話,涉及到數(shù)據(jù)何種的謹(jǐn)慎都不為過
我就職的公司有做第三方支付網(wǎng)站和網(wǎng)貸平臺的
第三方支付是每兩個小時完全備份一次媳荒,網(wǎng)貸平臺是每20分鐘備份一次
我不多說了抗悍,大家自己斟酌吧
<b>3. 穩(wěn)定大于一切</b>
其實(shí)不止是數(shù)據(jù),在整個服務(wù)器環(huán)境钳枕,都是穩(wěn)定大于一切缴渊,不求最快,但求最穩(wěn)定鱼炒,求可用性
所以未經(jīng)測試衔沼,不要再服務(wù)器使用新的軟件,比如nginx+php-fpm昔瞧,生產(chǎn)環(huán)境中php各種掛啊
重啟下就好了指蚁,或者換apache就好了。
<b>4. 保密大于一切</b>
現(xiàn)在各種艷照門漫天飛自晰,各種路由器后門凝化,所以說,涉及到數(shù)據(jù)缀磕,不保密是不行的缘圈。</p><h2>
三劣光、涉及安全</h2><p><b>1. ssh</b></p><ol><li>更改默認(rèn)端口(當(dāng)然如果專業(yè)要黑你袜蚕,掃描下就出來了)</li><li>禁止root登錄</li><li>使用普通用戶+key認(rèn)證+sudo規(guī)則+ip地址+用戶限制</li><li>使用hostdeny類似的防爆里破解軟件(超過幾次嘗試直接拉黑)</li><li>篩選/etc/passwd中l(wèi)ogin的用戶</li></ol><p><b>2. 防火墻</b>
防火墻生產(chǎn)環(huán)境一定要開,并且要遵循最小原則绢涡,drop所有牲剃,然后放行需要的服務(wù)端口。</p><p>
<b>3. 精細(xì)權(quán)限和控制粒度</b>
能使用普通用戶啟動的服務(wù)堅決不使用root雄可,把各種服務(wù)權(quán)限控制到最低凿傅,控制粒度要精細(xì)缠犀。</p><p>
<b>4. 入侵檢測和日志監(jiān)控</b>
使用第三方軟件,時刻檢測系統(tǒng)關(guān)鍵文件以及各種服務(wù)配置文件的改動
比如,/etc/passwd,/etc/my.cnf聪舒,/etc/httpd/con/httpd.con等;
使用集中化的日志監(jiān)控體系辨液,監(jiān)控/var/log/secure,/etc/log/message箱残,ftp上傳下載文件等報警錯誤日志;
另外針對端口掃描滔迈,也可以使用一些第三方軟件,發(fā)現(xiàn)被掃描就直接拉入host.deny被辑。這些信息對于系統(tǒng)被入侵后排錯很有幫助燎悍。有人說過,一個公司在安全投入的成本跟他被安全攻擊損失的成本成正比盼理,安全是一個很大的話題
也是一個很基礎(chǔ)的工作谈山,把基礎(chǔ)做好了,就能相當(dāng)?shù)奶岣呦到y(tǒng)安全性宏怔,其他的就是安全高手做的了</p><h2>
四奏路、日常監(jiān)控</h2><p><b>1. 系統(tǒng)運(yùn)行監(jiān)控</b> 好多人踏入運(yùn)維都是從監(jiān)控做起,大的公司一般都有專業(yè)24小時監(jiān)控運(yùn)維臊诊。系統(tǒng)運(yùn)行監(jiān)控一般包括硬件占用率 常見的有思劳,內(nèi)存,硬盤妨猩,cpu潜叛,網(wǎng)卡,os包括登錄監(jiān)控壶硅,系統(tǒng)關(guān)鍵文件監(jiān)控 定期的監(jiān)控可以預(yù)測出硬件損壞的概率威兜,并且給調(diào)優(yōu)帶來很實(shí)用的功能</p><p><b>2. 服務(wù)運(yùn)行監(jiān)控</b> 服務(wù)監(jiān)控一般就是各種應(yīng)用,web庐椒,db椒舵,lvs等,這一般都是監(jiān)控一些指標(biāo) 在系統(tǒng)出現(xiàn)性能瓶頸的時候就能很快發(fā)現(xiàn)并解決约谈。</p><p><b>3. 日志監(jiān)控</b> 這里的日志監(jiān)控跟安全的日志監(jiān)控類似笔宿,但這里一般都是硬件,os棱诱,應(yīng)用程序的報錯和警報信息 監(jiān)控在系統(tǒng)穩(wěn)定運(yùn)行的時候確實(shí)沒啥用泼橘,但是一旦出現(xiàn)問題,你又沒做監(jiān)控迈勋,就會很被動了</p><h2>

五炬灭、性能調(diào)優(yōu)</h2><p>
<b>1. 深入了解運(yùn)行機(jī)制</b>
其實(shí)按一年多的運(yùn)維經(jīng)驗來說,談?wù){(diào)優(yōu)根本就是紙上談兵靡菇,但是我只是想簡單總結(jié)下重归,如果有更深入的了解米愿,我會更新。在對軟件進(jìn)行優(yōu)化之前鼻吮,比如要深入了解一個軟件的運(yùn)行機(jī)制育苟,比如nginx和apache,大家都說nginx快椎木,那就必須知道nginx為什么快宙搬,利用什么原理,處理請求比apache拓哺,并且要能跟別人用淺顯易懂的話說出來勇垛,必要的時候還要能看懂源代碼,否則一切以參數(shù)為調(diào)優(yōu)對象的文檔都是瞎談士鸥。
<b>2. 調(diào)優(yōu)框架以及先后</b>
熟悉了底層運(yùn)行機(jī)制闲孤,就要有調(diào)優(yōu)的框架和先后順序,比如數(shù)據(jù)庫出現(xiàn)瓶頸烤礁,好多人直接就去更改數(shù)據(jù)庫的配置文件讼积,我的建議是,先根據(jù)瓶頸去分析脚仔,查看日志勤众,寫出來調(diào)優(yōu)方向,然后再入手鲤脏,并且數(shù)據(jù)庫服務(wù)器調(diào)優(yōu)應(yīng)該是最后一步们颜,最先的應(yīng)該是硬件和操作系統(tǒng),現(xiàn)在的數(shù)據(jù)庫服務(wù)器都是在各種測試之后才會發(fā)布的
適用于所有操作系統(tǒng)猎醇,不應(yīng)該先從他入手窥突。
<b>3. 每次只調(diào)一個參數(shù)</b>
每次只調(diào)一個參數(shù),這個相比大家都了解硫嘶,調(diào)的多了阻问,你就自己就迷糊了。
<b>4. 基準(zhǔn)測試</b>
判斷調(diào)優(yōu)是否有用沦疾,和測試一個新版本軟件的穩(wěn)定性和性能等方面称近,就必須要基準(zhǔn)測試了,測試要涉及很多因素
測試是否接近業(yè)務(wù)真實(shí)需求這要看測試人的經(jīng)驗了哮塞,相關(guān)資料大家可以參考《高性能mysql》第三版相當(dāng)?shù)暮?br>我的老師曾說過刨秆,沒有放之四海皆準(zhǔn)的參數(shù),任何參數(shù)更改任何調(diào)優(yōu)都必須符合業(yè)務(wù)場景
所以不要再谷歌什么什么調(diào)優(yōu)了彻桃,對你的提升和業(yè)務(wù)環(huán)境的改善沒有長久作用</p><h2>
六坛善、運(yùn)維心態(tài)</h2><p>
<b>1. 控制心態(tài)</b>
很多rm -rf /data都在下班的前幾分鐘晾蜘,都在煩躁的高峰邻眷,那么你還不打算控制下你的心態(tài)么
有人說了眠屎,煩躁也要上班,可是你可以在煩躁的時候盡量避免處理關(guān)鍵數(shù)據(jù)環(huán)境
越是有壓力肆饶,越要冷靜改衩,不然會損失更多。
大多人都有rm -rf /data/mysql的經(jīng)歷驯镊,發(fā)現(xiàn)刪除之后葫督,那種心情你可以想象一下,可是如果沒有備份板惑,你急又有什么用橄镜,一般這種情況下,你就要冷靜想下最壞打算了冯乘,對于mysql來說洽胶,刪除了物理文件,一部分表還會存在內(nèi)存中裆馒,所以斷開業(yè)務(wù)姊氓,但是不要關(guān)閉mysql數(shù)據(jù)庫,這對恢復(fù)很有幫助喷好,并使用dd復(fù)制硬盤翔横,然后你再進(jìn)行恢復(fù)
當(dāng)然了大多時候你就只能找數(shù)據(jù)恢復(fù)公司了。
試想一下梗搅,數(shù)據(jù)被刪了禾唁,你各種操作,關(guān)閉數(shù)據(jù)庫无切,然后修復(fù)蟀俊,不但有可能覆蓋文件,還找不到內(nèi)存中的表了订雾。
<b>2. 對數(shù)據(jù)負(fù)責(zé)</b>
生產(chǎn)環(huán)境不是兒戲肢预,數(shù)據(jù)庫也不是兒戲,一定要對數(shù)據(jù)負(fù)責(zé)洼哎。不備份的后果是非常嚴(yán)重的烫映。
<b>3. 追根究底</b>
很多運(yùn)維人員比較忙,遇到問題解決就不會再管了噩峦,記得去年一個客戶的網(wǎng)站老是打不開锭沟,經(jīng)過php代碼報錯
發(fā)現(xiàn)是session和whos_online損壞,前任運(yùn)維是通過repair修復(fù)的识补,我就也這樣修復(fù)了族淮,但是過了幾個小時,又出現(xiàn)了
反復(fù)三四次之后,我就去谷歌數(shù)據(jù)庫表莫名損壞原因:一是myisam的bug祝辣,二是mysqlbug贴妻,三是mysql在寫入過程中
被kill,最后發(fā)現(xiàn)是內(nèi)存不夠用蝙斜,導(dǎo)致OOM kill了mysqld進(jìn)程
并且沒有swap分區(qū)名惩,后臺監(jiān)控內(nèi)存是夠用的,最后升級物理內(nèi)存解決孕荠。
<b>4. 測試和生產(chǎn)環(huán)境</b>
在重要操作之前一定要看自己所在的機(jī)器娩鹉,盡量避免多開窗口。</p>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末稚伍,一起剝皮案震驚了整個濱河市弯予,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌个曙,老刑警劉巖熙涤,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異困檩,居然都是意外死亡祠挫,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門悼沿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來等舔,“玉大人,你說我怎么就攤上這事糟趾』胖玻” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵义郑,是天一觀的道長蝶柿。 經(jīng)常有香客問我,道長非驮,這世上最難降的妖魔是什么交汤? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮劫笙,結(jié)果婚禮上芙扎,老公的妹妹穿的比我還像新娘。我一直安慰自己填大,他們只是感情好戒洼,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著允华,像睡著了一般圈浇。 火紅的嫁衣襯著肌膚如雪寥掐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天磷蜀,我揣著相機(jī)與錄音召耘,去河邊找鬼。 笑死蠕搜,一個胖子當(dāng)著我的面吹牛怎茫,可吹牛的內(nèi)容都是我干的收壕。 我是一名探鬼主播妓灌,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜜宪!你這毒婦竟也來了虫埂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤圃验,失蹤者是張志新(化名)和其女友劉穎掉伏,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體澳窑,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡斧散,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了摊聋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸡捐。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖麻裁,靈堂內(nèi)的尸體忽然破棺而出箍镜,到底是詐尸還是另有隱情,我是刑警寧澤煎源,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布色迂,位于F島的核電站,受9級特大地震影響手销,放射性物質(zhì)發(fā)生泄漏歇僧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一锋拖、第九天 我趴在偏房一處隱蔽的房頂上張望馏慨。 院中可真熱鬧,春花似錦姑隅、人聲如沸写隶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽慕趴。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冕房,已是汗流浹背躏啰。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耙册,地道東北人给僵。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像详拙,于是被迫代替她去往敵國和親帝际。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容