一、綜述
1、JAVA項(xiàng)目,基于tomcat容器掛載啟動(dòng)的,我們需要統(tǒng)一一下tomcat的日志格式。
2、tomcat日志,主要涉及catalina.log和access_log兩種。日志名為:access.log
3、catalina.log中主要包含tomcat啟動(dòng)信息,重要性和價(jià)值都不高,但是為了與日志收集系統(tǒng)對(duì)接,我們需要將新舊項(xiàng)目tomcat相關(guān)配置保持一致即可。
4、access_log主要針是記錄tomcat容器接收到的HTTP請(qǐng)求記錄,通常我們一個(gè)tomcat下只有一個(gè)project;所以我們可以根據(jù)access_log來(lái)記錄有關(guān)于:
? ? 1)請(qǐng)求量
? ? 2)請(qǐng)求的HTTP狀態(tài)
? ? 3)請(qǐng)求內(nèi)容,包括header(cookie等),請(qǐng)求來(lái)源等。
? ? 4)響應(yīng)延遲
? ? 5)響應(yīng)數(shù)據(jù)包大小
? ? 最終,access_log可以與nginx日志互相對(duì)應(yīng),用于分析請(qǐng)求鏈路、轉(zhuǎn)發(fā)效率、接口性能等。對(duì)于排查問(wèn)題、監(jiān)控接入非常有價(jià)值。
5、涉及到的team:運(yùn)維組、開(kāi)發(fā)組、大數(shù)據(jù)組、BI組、安全組。
6、輸出價(jià)值:
? ? 1)ELK:日志收集,開(kāi)發(fā)、運(yùn)維排查問(wèn)題,機(jī)器容量預(yù)留等。
? ? 2)業(yè)務(wù)監(jiān)控:流量監(jiān)控、業(yè)務(wù)錯(cuò)誤監(jiān)控、QPS統(tǒng)計(jì)、異常報(bào)警等。
? ? 3)BI:商業(yè)數(shù)據(jù)分析。
? ? 4)安全:用戶異常行為、異常流量侵入等評(píng)估和防范。
7、access_log日志規(guī)范:
access_log
<Valve?className="org.apache.catalina.valves.AccessLogValve"?directory="logs"
???????????????prefix="access.log"?suffix=""?renameOnRotate="true"
pattern="%{yyyy-MM-dd HH:mm:ss}t|%A|%a|%p|%m|%s|%D|
%b|%{begin:msec}t|%{end:msec}t|^_^|
%{X-Request-ID}i|%{X-Request-Seq}i|^_^|
%S|%r|%{Referer}i|%{User-Agent}i" />
字段名解釋
%A本機(jī)IP地址,內(nèi)網(wǎng)IP
%a遠(yuǎn)端機(jī)器IP,通常是nginx層IP地址
%H請(qǐng)求的協(xié)議
%p接收請(qǐng)求的本地Port。
%mHTTP請(qǐng)求的方面名:GET,POST等
%q請(qǐng)求的查詢字符串,即URL中“?”后的部分
%D請(qǐng)求處理的時(shí)間
%rHTTP請(qǐng)求行—首行
%{Referer}iHTTP標(biāo)頭中“Referer”值
%{User-Agent}iHTTP標(biāo)頭中“User-Agent”值
%sHTTP響應(yīng)狀態(tài)碼(tomcat返回)
%SHTTP請(qǐng)求中的Session ID
%bHTTP響應(yīng)的數(shù)據(jù)大小,不包含Headers
%{X-Request-ID}iHTTP標(biāo)頭中“X-Request-ID”值
%{X-Request-Seq}HTTP標(biāo)頭中“X-Request-Seq”值
%{begin:msec}t請(qǐng)求開(kāi)始處理的時(shí)間戳
%{end:msec}t請(qǐng)求處理結(jié)束的時(shí)間戳
模式:%{key}iHTTP請(qǐng)求標(biāo)頭中key的值
模式:%{key}oHTTP響應(yīng)標(biāo)頭中key的值
模式:%{key}c請(qǐng)求/響應(yīng)cookie中key的值
模式:%{key}rServletRequest屬性中key的值
模式:%{key}s保存在HttpSession中key的值
規(guī)范基本與nginx、ELB保持一致,仍然使用“^_^”進(jìn)行分域,當(dāng)需要增加字段時(shí),請(qǐng)?jiān)谙鄳?yīng)域的最后面增加。