因現(xiàn)網(wǎng)環(huán)境運(yùn)維提出了一些報(bào)錯(cuò)日志卸亮,因此需要在測(cè)試環(huán)境也監(jiān)控起來(lái)塑荒,及早發(fā)現(xiàn)熄赡,及早避免問(wèn)題的發(fā)生。
思路如下:
1齿税、統(tǒng)計(jì)所有需要實(shí)時(shí)監(jiān)控的日志地址
2彼硫、單條日志篩選出合適的關(guān)鍵字,如exception凌箕、error等
3拧篮、編寫(xiě)shell腳本,匯總每一臺(tái)服務(wù)器上所有需要打印的日志目錄陌知,并通過(guò)jenkins啟動(dòng)腳本
4他托、將相關(guān)日志發(fā)送至指定服務(wù)器,并通過(guò)jenkins集成仆葡,將所有日志按照要求發(fā)送至相關(guān)人的郵箱
5赏参、分析日志,有問(wèn)題的提單跟蹤沿盅,無(wú)問(wèn)題的刪除記錄把篓。
具體步驟:
一:統(tǒng)計(jì)各個(gè)日志所在的地址,就不多說(shuō)了腰涧,各位服務(wù)器所在位置不一韧掩,因此自行記錄即可。4窖铡、將相關(guān)日志發(fā)送至指定服務(wù)器疗锐,并通過(guò)jenkins集成,將所有日志按照要求發(fā)送至相關(guān)人的郵箱
二:?jiǎn)螚l日志篩選出合適的關(guān)鍵字费彼,如exception滑臊、error等
一般來(lái)說(shuō),導(dǎo)出日志里的打印信息箍铲,可以用cat和tail雇卷,但是由于日志有可能被清空,因此我們選擇實(shí)時(shí)打印的方式,因此采用tail的方式
tailf 文件名|grep "關(guān)鍵字"
因?yàn)橹淮蛴£P(guān)鍵字那一行很可能會(huì)遺漏相關(guān)信息关划,因此我們需要把有關(guān)鍵字的字段的前后5行打印出來(lái)
tailf 文件名|grep? -E -5 "關(guān)鍵字"
若需要通過(guò)多個(gè)關(guān)鍵字進(jìn)行篩選(或關(guān)系)小染,直接用管道符區(qū)分即可。
三贮折、編寫(xiě)shell腳本裤翩,匯總每一臺(tái)服務(wù)器上所有需要打印的日志目錄,并通過(guò)jenkins啟動(dòng)腳本
腳本只寫(xiě)打印命令即可脱货,多條命令直接用"岛都;"號(hào)分割即可,開(kāi)始時(shí)由jenkins的定時(shí)器開(kāi)啟振峻,結(jié)束由linux命令直接結(jié)束即可臼疫,如sp由每日下午4點(diǎn)開(kāi)啟,運(yùn)行兩小時(shí)
timeout? XS,M,H,D? bash 腳本名稱 (其中X為自己需要固定的值扣孟,后綴”s”代表秒(默認(rèn)值)烫堤,”m”代表分,”h”代表小時(shí)凤价,”d”代表天)
四鸽斟、將相關(guān)日志發(fā)送至指定服務(wù)器,并通過(guò)jenkins集成利诺,將所有日志按照要求發(fā)送至相關(guān)人的郵箱
同時(shí)將測(cè)試環(huán)境的服務(wù)器互相信任(互相信任操作詳見(jiàn)《LR+Jenkins性能自動(dòng)化(三):加入linux監(jiān)控nmon》)富蓄,之后可以通過(guò)crontab發(fā)送至jenkins所在目錄,也可以通過(guò)jenkins發(fā)送慢逾,建議使用shell腳本(發(fā)送目錄且定期刪除源日志)
所有服務(wù)器的日志發(fā)送至jenkins目錄后立倍,壓縮至同一個(gè)文件后通過(guò)jenkins的Email Notification模塊發(fā)送郵件給相關(guān)責(zé)任人
五、分析日志侣滩,有問(wèn)題的提單跟蹤口注,無(wú)問(wèn)題的刪除記錄。
這一步需要人自己進(jìn)行查看君珠,若有需要展示html報(bào)告寝志,有更新時(shí)時(shí)再來(lái)補(bǔ)充,over