問題點(diǎn): 服務(wù)進(jìn)程被自動(dòng)kill 且隔段時(shí)間被kill一個(gè)
問題定位及解決步驟:
1贞言、free -m 查看內(nèi)存使用狀態(tài) ,發(fā)現(xiàn)free基本沒了忙菠。--> 懷疑是服務(wù)有內(nèi)存泄漏,開始排查
2、使用top命令觀察揖庄,開啟的服務(wù)占用內(nèi)存量并不大,且最終文檔在一個(gè)值欠雌,且服務(wù)為java應(yīng)用蹄梢,內(nèi)存并沒達(dá)到父jvm設(shè)置上限。按top監(jiān)控占用內(nèi)存排序富俄,加起來也不會(huì)超過物理內(nèi)存總量禁炒。查看硬盤使用量而咆,占用20%∑肟粒基本排除虛擬內(nèi)存占用過大的原因翘盖。--->排除服務(wù)內(nèi)存泄漏因素,懷疑mysql和nginx凹蜂,開始排查
3馍驯、因?yàn)閠op命令看 mysql占用內(nèi)存也再可控范圍,是否存在connection占用過多內(nèi)存玛痊,發(fā)現(xiàn)并不會(huì)汰瘫,設(shè)置最大連接數(shù)為1000,最多也不會(huì)超過幾M擂煞。 nginx占用一直非常小混弥。但每次最先被kill的基本都是nginx進(jìn)程。所以排查对省,但發(fā)現(xiàn)無非就是openfiles數(shù)量啥的調(diào)整蝗拿。發(fā)現(xiàn)也一切正常。且之前niginx可以正常使用的蒿涎。
4哀托、最為費(fèi)解的就是 通過free -m 查看的時(shí)候 基本全是used,cache部分很少劳秋,free基本沒有仓手。但top上又找不到有哪些進(jìn)程占用了內(nèi)存。無解
5玻淑、注意到有兩個(gè)進(jìn)程雖占用內(nèi)存不多嗽冒,但基本耗光了100%的cpu。開始想著占cpu就占了补履,沒占內(nèi)存添坊,現(xiàn)在是內(nèi)存不不夠?qū)е逻M(jìn)程被kill的,就沒注意這點(diǎn)箫锤。
6帅腌、實(shí)在搞不定,重啟服務(wù)器麻汰,重啟了所有服務(wù)速客,服務(wù)暫時(shí)可用,回家五鲫。在路上的時(shí)候發(fā)現(xiàn)又崩了溺职。忐忑的睡覺。
7、早上起來繼續(xù)看浪耘,這次留意注意了下那兩個(gè)占用高cpu的進(jìn)程乱灵,kdevtmpfsi 和 networkservice。本著看看是啥進(jìn)程的心態(tài)七冲,百度了下痛倚。。澜躺。蝉稳。
真相一目了然,兩個(gè)挖礦病毒掘鄙。
突然后知后覺的意識(shí)到錯(cuò)誤原因:
1耘戚、cpu占用率高,正常服務(wù)使用cpu頻率較高的服務(wù)最容易最內(nèi)存超標(biāo)操漠。(因?yàn)樵谛枰褂胏pu時(shí)沒cpu資源收津,內(nèi)存大量占用,服務(wù)瞬間崩潰)浊伙,然后看top發(fā)現(xiàn)剛剛已經(jīng)占用內(nèi)存的進(jìn)程已經(jīng)被kill了撞秋,所以沒發(fā)現(xiàn)內(nèi)存有高占用的情況。
2嚣鄙、后面的應(yīng)用繼續(xù)使用cpu時(shí)也會(huì)發(fā)生類似情況吻贿,倒是服務(wù)一個(gè)一個(gè)逐漸被kill。
-----畢竟從未碰到過這種拗慨,還是太年輕廓八,高手可能在第一次執(zhí)行top的時(shí)候就能發(fā)現(xiàn)這個(gè)點(diǎn)奉芦。
問題解決
問題點(diǎn)基本定位好了赵抢,解決問題就相對(duì)簡單很多:
通過百度,google声功,常見的病毒清除步驟基本都能解決烦却。這兩個(gè)挖礦病毒很常見,大致記錄下要點(diǎn)先巴∑渚簦可能所有病毒都會(huì)有這些基礎(chǔ)操作。
① 首先伸蚯,查看當(dāng)前系統(tǒng)中的定時(shí)任務(wù):crontab -l
我服務(wù)器上有四個(gè)定時(shí)下載任務(wù) 通過wget 和 curl 下載病毒文件摩渺,把異常的刪掉。要不然刪了病毒文件還是會(huì)下載下來
crontab -r剂邮,全部刪除命令(或根據(jù)需求刪除定時(shí)任務(wù))
② 查找病毒文件 可以全部模糊搜索 清除摇幻, 但病毒文件基本都用了chattr +i命令 使用chattr -i filename 后再使用rm -f filename 。可刪除
③ kill 病毒進(jìn)程绰姻,但注意kill了可能馬上就重啟了枉侧。因?yàn)橛惺刈o(hù)進(jìn)程,需要把病毒進(jìn)程的守護(hù)進(jìn)程也kill掉
④ 檢查是否root用戶被攻擊狂芋,可能系統(tǒng)配置信息被更改榨馁。
⑤ 最好能理解病毒腳本,通過看代碼看它做了些什么帜矾。針對(duì)腳本取修復(fù)系統(tǒng)
本次兩個(gè)挖礦病毒 博文連接 :https://blog.csdn.net/u014589116/article/details/103705690
總結(jié):
1翼虫、還是太年輕,內(nèi)存和cpu強(qiáng)關(guān)聯(lián)啊黍特。咋能不注意M芗ァ!C鹬浴4温!O枨F认瘛!M椤闻妓!
2、通過wget下載資源鑒別來源掠械,別隨便百度一個(gè)就開始 wget由缆,然后愉快裝上
3、此次挖礦病毒博主提示redis要設(shè)置難點(diǎn)的密碼(我之前沒設(shè)置猾蒂,趕快加上)
4均唉、網(wǎng)絡(luò)攻擊時(shí)刻存在,只是別人有沒有攻擊你的意愿肚菠。我這次只是中病毒舔箭,黑客可以攻擊怎么玩都行,得加強(qiáng)網(wǎng)絡(luò)安全防護(hù)相關(guān)技能