线上操作与线上问题排查实战
轉(zhuǎn)自:https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651960323&idx=1&sn=e04af14d2ebf939133869e0f18bb0dd1&chksm=bd2d01df8a5a88c98c3cb94a99334a16b372fd997f36bc757a38bb44b70d977797fa840064dc&mpshare=1&scene=23&srcid=0816Yl1RlSyNnNAHksisZEXS#rd
?
技術(shù)同學需要經(jīng)常登錄線上的服務(wù)器進行操作,58到家架構(gòu)部/運維部/58速運技術(shù)部,聯(lián)合進行了一次線上操作與線上問題排查實戰(zhàn)演練,同學們反饋有收獲,特將實戰(zhàn)演練的問題和答案公布出來,希望對大家也有幫助。
?
一、了解機器連接數(shù)情況
問題:1.2.3.4的sshd的監(jiān)聽端口是22,如何統(tǒng)計1.2.3.4的sshd服務(wù)各種連接狀態(tài)(TIME_WAIT/ CLOSE_WAIT/ ESTABLISHED)的連接數(shù)。
?
參考答案:
-
netstat -n | grep 1.2.3.4:22 | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
-
netstat -lnpta | grep ssh | egrep “TIME_WAIT | CLOSE_WAIT | ESTABLISHED”
-
n [僅限于阿里云]
?
說明:netstat是追查網(wǎng)絡(luò)連接問題常用工具,和grep/awk結(jié)合更是神器,當然如果在阿里云上,還有更方便的方法。
?
二、從已經(jīng)備份好的日志中查詢數(shù)據(jù)
問題:從已備份的suyun.2017-06-26.log.bz2日志中,找出包含關(guān)鍵字1.2.3.4的日志有多少條。
?
參考答案:
-
bzcat?suyun.2017-06-26.log.bz2 | grep '1.2.3.4' | wc -l
-
bzgrep?'1.2.3.4' suyun.2017-06-26.log.bz2 | wc -l
-
less suyun.2017-06-26.log.bz2 | grep '10.37.9.11' | wc -l
?
說明:線上日志文件一般以bz2?壓縮之后保留,如果解壓查詢,非常耗空間與時間,bzcat和bzgrep是研發(fā)同學必須掌握的工具。
?
三、備份服務(wù)的技巧
問題:打包備份/opt/web/suyun_web目錄,排除掉目錄中的logs和目錄,打包好的文件存放在/opt/backup目錄下。
?
參考答案:
tar -zcvf /opt/backup/shenjian.tar.gz \
? ? -exclude?/opt/web/suyun_web/logs \
? ? /opt/web/suyun_web
?
說明:這個命令線上應(yīng)用較為頻繁,在項目需要打包遷移時,常常需要排除掉日志目錄,exclude是需要掌握的參數(shù)。
?
四、查詢線程數(shù)
問題:查詢服務(wù)器運行服務(wù)的總線程數(shù),當機器線程數(shù)超報警閥值時,能快速查出相關(guān)進程及線程信息。
?
參考答案:
-
ps?-eLf | wc -l
-
pstree?-p | wc -l
?
五、磁盤報警,清空最大文件
問題:找出服務(wù)器上,某個正在運行的tomcat產(chǎn)生的大量異常日志,找出該文件,并釋放空間。不妨設(shè)該文件包含log關(guān)鍵字,并且大于1G。
?
參考答案:
第一步,找到該文件
-
find?/ -type f -name "*log*" |?xargs?ls -lSh | more?
-
du?-a / | sort -rn | grep log | more
-
find?/ -name '*log*' -size +1000M -exec du -h {} \;
?
第二步,將文件清空
假設(shè)找到的文件為a.log
正確的情況方式應(yīng)該為:echo "">a.log,文件空間會立刻釋放。
很多同學:rm -rf a.log,這樣文件雖然刪除,但是因tomcat服務(wù)仍在運行,空間不會立刻釋放,需要重啟tomcat才能將空間釋放。
?
六、顯示文件,過濾注釋
問題:顯示server.conf?文件,屏蔽掉#號開頭的注釋行
?
參考答案:
-
sed?-n '/^[#]/!p' server.conf
-
sed -e '/^#/d' server.conf
-
grep -v?"^#" server.conf
?
七、磁盤IO異常排查
問題:磁盤IO異常如何排查,類似寫入慢或當前使用率較高,請查出導(dǎo)致磁盤IO異常高的進程ID。
?
參考答案:
第一步:iotop -o?查看當前正在寫磁盤操作的所有進程ID信息。
?
第二步:如果此時各項寫入指標都很低,基本沒有大的寫入操作,則需要排查磁盤自身。可以查看系統(tǒng)dmesg或cat /var/log/message?看看是否有相關(guān)的磁盤異常報錯,同時可以在寫入慢的磁盤上touch?一個空文件看看,是否磁盤故障導(dǎo)致無法寫入。
?
==【完】==
希望對經(jīng)常進行線上操作的同學有幫助,到線上操作一把,印象更加深刻喲。
?
如果有更好的實踐,也歡迎分享。
?
相關(guān)文章:
Linux追查線上問題常用命令
一分鐘awk夠用
一分鐘sed夠用
轉(zhuǎn)載于:https://www.cnblogs.com/leonxyzh/p/7377085.html
總結(jié)
以上是生活随笔為你收集整理的线上操作与线上问题排查实战的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows 10 RedStone2
- 下一篇: c13--数组