Tomcat容器日志统一

一、综述

1、JAVA项目,基于tomcat容器挂载启动的,我们需要统一一下tomcat的日志格式。

2、tomcat日志,主要涉及catalina.log和access_log两种。日志名为:access.log

3、catalina.log中主要包含tomcat启动信息,重要性和价值都不高,但是为了与日志收集系统对接,我们需要将新旧项目tomcat相关配置保持一致即可。

4、access_log主要针是记录tomcat容器接收到的HTTP请求记录,通常我们一个tomcat下只有一个project;所以我们可以根据access_log来记录有关于:

    1)请求量

    2)请求的HTTP状态

    3)请求内容,包括header(cookie等),请求来源等。

    4)响应延迟

    5)响应数据包大小

    最终,access_log可以与nginx日志互相对应,用于分析请求链路、转发效率、接口性能等。对于排查问题、监控接入非常有价值。

5、涉及到的team:运维组、开发组、大数据组、BI组、安全组。

6、输出价值:

    1)ELK:日志收集,开发、运维排查问题,机器容量预留等。

    2)业务监控:流量监控、业务错误监控、QPS统计、异常报警等。

    3)BI:商业数据分析。

    4)安全:用户异常行为、异常流量侵入等评估和防范。


7、access_log日志规范:


access_log

               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本机IP地址,内网IP

%a远端机器IP,通常是nginx层IP地址

%H请求的协议

%p接收请求的本地Port。

%mHTTP请求的方面名:GET,POST等

%q请求的查询字符串,即URL中“?”后的部分

%D请求处理的时间

%rHTTP请求行—首行

%{Referer}iHTTP标头中“Referer”值

%{User-Agent}iHTTP标头中“User-Agent”值

%sHTTP响应状态码(tomcat返回)

%SHTTP请求中的Session ID

%bHTTP响应的数据大小,不包含Headers

%{X-Request-ID}iHTTP标头中“X-Request-ID”值

%{X-Request-Seq}HTTP标头中“X-Request-Seq”值

%{begin:msec}t请求开始处理的时间戳

%{end:msec}t请求处理结束的时间戳

模式:%{key}iHTTP请求标头中key的值

模式:%{key}oHTTP响应标头中key的值

模式:%{key}c请求/响应cookie中key的值

模式:%{key}rServletRequest属性中key的值

模式:%{key}s保存在HttpSession中key的值

规范基本与nginx、ELB保持一致,仍然使用“^_^”进行分域,当需要增加字段时,请在相应域的最后面增加。

你可能感兴趣的:(Tomcat容器日志统一)