運維日志
長(cháng)久以來(lái),日志管理都是IT運維工程師不可回避的工作,它不但可以跟蹤IT基礎設施活動(dòng),更是回答故障是否發(fā)生、如何發(fā)生、何時(shí)發(fā)生、在何處發(fā)生的最佳答案。
如果把運維看做是醫生給病人看病,則日志就是病人對自己的陳述,很多時(shí)候醫生需要通過(guò)對病人的描述中得出病人狀況,是否嚴重,需要什么計量的藥,什么類(lèi)型的藥。所以古人有句話(huà)叫對癥下藥,這個(gè)癥就是病人的描述加醫生的判斷,在重一點(diǎn)的病在加上很多的化驗。在醫生看病時(shí)病人的描述和化驗單上的數據對醫生是非常重要的。同理日志在運維中的作用也是類(lèi)似的,但非常不幸,日志在很多運維中被嚴重低估,直到磁盤(pán)空間不足的時(shí)候才想到,這有個(gè)大的日志文件把他刪了,這樣可以節省空間。
下面我們來(lái)看一下常用的監控系統,界面做的很漂亮,功能也很多,但是有個(gè)疑問(wèn)就是你會(huì )天天盯著(zhù)這個(gè)界面看嗎?我感覺(jué)絕大多數人不會(huì ),很多人關(guān)注的是異常點(diǎn),就是當系統有問(wèn)題的時(shí)候,你告訴我哪里有問(wèn)題,然后我在根據問(wèn)題去分析,去處理,當然做處理的時(shí)候,這個(gè)系統就會(huì )用上了。
那上面這些內容和日志有什么關(guān)系呢?
日志本身是沒(méi)有價(jià)值的,只有對日志進(jìn)行分析加以利用的.時(shí)候才會(huì )有價(jià)值,日志中包含非常多的有用的信息,不光包括運維層面,還包括業(yè)務(wù)層面,安全層面。很多時(shí)候運維需要的是一個(gè)統一告警平臺,但告警的依據絕大多少是對日志等進(jìn)行自動(dòng)化的分析得出的結論,所以說(shuō)日志是很重要的。
什么是日志
簡(jiǎn)單地說(shuō),日志就是計算機系統、設備、軟件等在某種情況下記錄的信息。具體的內容取決于日志的來(lái)源。例如,Unix操作系統會(huì )記錄用戶(hù)登錄和注銷(xiāo)的消息,防火墻將記錄ACL通過(guò)和拒絕的消息,磁盤(pán)存儲系統在故障發(fā)生或者在某些系統認為將會(huì )發(fā)生故障的情況下生成日志信息。日志中有大量信息,這些信息告訴你為什么需要生成日志,系統已經(jīng)發(fā)生了什么。例如,Web服務(wù)器一般會(huì )在有人訪(fǎng)問(wèn)Web頁(yè)面請求資源(圖片、文件等等)的時(shí)候記錄日志。如果用戶(hù)訪(fǎng)問(wèn)的頁(yè)面需要通過(guò)認證,日志消息將會(huì )包含用戶(hù)名。這就是日志數據的一個(gè)例子:可以使用用戶(hù)名來(lái)判斷誰(shuí)訪(fǎng)問(wèn)過(guò)一個(gè)資源。通過(guò)日志,IT管理人員可以了解系統的運行狀況,安全狀況,甚至是運營(yíng)的狀況。
日志能做什么
在一個(gè)完整的信息系統里面,日志系統是一個(gè)非常重要的功能組成部分。它可以記錄下系統所產(chǎn)生的所有行為,并按照某種規范表達出來(lái)。我們可以使用日志系統所記錄的信息為系統進(jìn)行排錯,優(yōu)化系統的性能,或者根據這些信息調整系統的行為。在安全領(lǐng)域,日志可以反應出很多的安全攻擊行為,比如登錄錯誤,異常訪(fǎng)問(wèn)等。日志還能告訴你很多關(guān)于網(wǎng)絡(luò )中所發(fā)生事件的信息,包括性能信息、故障檢測和入侵檢測。日志會(huì )成為在事故發(fā)生后查明“發(fā)生了什么”的一個(gè)很好的“取證”信息來(lái)源。日志可以為審計進(jìn)行審計跟蹤。
從一條日志說(shuō)起
111.88.155.166 - - [17/Dec/2015:13:06:05 +0800] "POST /login HTTP/1.1" 302 0 "http://secilog.abc.com/login?langType=zh" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36"
這是一條很普通的nginx中記錄的日志,日志的詳細內容可查閱相關(guān)文檔。這里簡(jiǎn)單說(shuō)明一下主要的內容。從日志中可以得到訪(fǎng)問(wèn)者的IP,訪(fǎng)問(wèn)的時(shí)間,時(shí)區,請求的方式,請求頁(yè)面,返回狀態(tài),來(lái)源等等信息。仔細一看請求的頁(yè)面/login就可以猜到只是一個(gè)登錄請求頁(yè)面。這條日志的重要含義是登錄成功。
從這條日志怎么和我們關(guān)注的指標對應的,我們下面接著(zhù)分析。
活躍用戶(hù)數,活躍用戶(hù)說(shuō)一般是指同一天有多少老用戶(hù)登錄過(guò)系統。這個(gè)時(shí)候就會(huì )發(fā)現,剛才的登錄日志中如果放到一天的統計中就可以知道,一天內有多少次成功等登錄的次數了,但細心的用戶(hù)可以發(fā)現,不準確,因為用戶(hù)可以重復登陸,這就會(huì )造成重復,說(shuō)的很對,那我們在細化一下,我們換個(gè)角度分析,一天內登錄成功的不重復ip的數量。是不是更接近真實(shí)的結果呢,我感覺(jué)從量級和趨勢上已經(jīng)能說(shuō)明問(wèn)題了。
刷單用戶(hù)這個(gè)沒(méi)有標準的說(shuō)法,我的理解是是同一個(gè)人為了某種目的大量注冊了很多賬號后,然后進(jìn)行某種操作比如刷單等。這種行為很難100%杜絕,但從這條日志中可以得出一些有意思的發(fā)現。如果同一個(gè)ip一天登錄成功次數過(guò)多,比如一天登錄了一百次,每次間隔的時(shí)間都差不多,說(shuō)明這個(gè)人有刷單嫌疑,可以先找出來(lái)然后再進(jìn)一步的分析。
新增用戶(hù)數的含義是一天內有多少注冊成功的用戶(hù),這個(gè)時(shí)候可以類(lèi)比登錄日志,只要把登錄日志的url換成注冊日志的url就可以發(fā)現一天新增的用戶(hù)數是多少。
同理惡意注冊用戶(hù)數也是類(lèi)似的,一天同一個(gè)ip下注冊成功的次數非常多。此ip惡意注冊的可能性就很大。當然還需要進(jìn)一步的分析,比如ip是否是一個(gè)大樓里面的出口ip,注冊后此用戶(hù)做了什么來(lái)判斷。
從上面的分析可以看出舉一反三,可從日志中可以看出運營(yíng)中的很多內容,比如瀏覽商品的排行,用戶(hù)訪(fǎng)問(wèn)時(shí)間,用戶(hù)來(lái)源等等。
下面我們還從這條日志中分析一下安全的行為:
111.88.155.166 - - [17/Dec/2015:13:06:05 +0800] "POST /login HTTP/1.1" 200 0 "http://secilog.abc.com/login?langType=zh" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36"
這還是一條登錄日志,唯一和上面登錄日志不一樣的地方是服務(wù)器返回值。一個(gè)是302,一個(gè)是200.有什么區別的,302的意思是服務(wù)器進(jìn)行過(guò)頁(yè)面跳轉,200還是返回此頁(yè)面,從中就可以理解,這是一條登錄失敗的記錄。很好,有這條記錄就可以發(fā)現很多的安全行為。
惡意密碼猜測,可以理解同一段時(shí)間,用戶(hù)大量的登錄失敗,返回了很多登錄失敗記錄。從這條定義中就可以發(fā)現規律,我們把時(shí)間放大到5分鐘,當5分鐘內,同一個(gè)ip有超過(guò)20次以上的登錄失敗行為,基本上可以斷定在進(jìn)行密碼猜測。當密碼猜測有自動(dòng)的也有手動(dòng)的,如果區分呢。我們看一下這個(gè)內容"http://secilog.abc.com/login?langType=zh",這個(gè)含義是post提交的來(lái)源是"http://secilog.abc.com/login?langType=zh"這個(gè)網(wǎng)頁(yè),也就是從這個(gè)網(wǎng)頁(yè)發(fā)起的。如果這個(gè)地址不對,極有可能是用工具來(lái)進(jìn)行暴力破解。
同理cc攻擊就更容易理解了,同一個(gè)ip在很短的時(shí)間內訪(fǎng)問(wèn)了大量的請求,基本上可以認為是cc攻擊。其他的webshell,sql注入等也可以從日志中分析出部分來(lái),但不是太準確,因為日志中指記錄get請求的參數,post參數正常是不記錄的。
從上面的分析中可以得知,日志中還是有很多寶貴的東西在里面,只是我們沒(méi)有發(fā)現。
【運維日志】相關(guān)文章:
運維述職報告11-05
IT運維電子簡(jiǎn)歷模板08-14
運維項目管理流程11-20
運維崗位面試題06-19
Linux運維的必備技能08-11
運維中心員工月工作總結08-20
運維個(gè)人工作總結范文12-19
運維工程師職位簡(jiǎn)歷范文09-06
百度運維部筆試題08-06
linux運維工程師認證條件11-05