- 首页 >
- 问答 >
-
智能运维 >
- Ubuntu Tomcat日志中关键指标有哪些
Ubuntu Tomcat日志中关键指标有哪些
小樊
45
2025-12-13 23:50:11
Ubuntu Tomcat日志关键指标
一 日志类型与位置
- 访问日志:记录每一次HTTP请求的明细,默认位于**$CATALINA_HOME/logs/localhost_access_log.*.txt**,由AccessLogValve写入,适合统计吞吐量、响应时间、状态码分布、来源IP等。
- 应用与容器日志:包括catalina.out(标准输出/错误)、按模块划分的catalina..log、localhost..log、manager..log、host-manager..log等,位于**$CATALINA_HOME/logs**,用于错误堆栈、警告、启动/停止事件等排查。
- 配置入口:访问日志在conf/server.xml的AccessLogValve;日志级别与输出在conf/logging.properties。Ubuntu常见安装路径为**/var/log/tomcat或/opt/tomcat/logs**。
二 访问日志关键字段与用途
- 基础标识
- %h:远程主机名或IP(若禁用DNS查询)
- %l:远程逻辑用户名(通常为**-**)
- %u:已认证远程用户(若未认证为**-**)
- %t:请求时间(Common Log Format)
- %r:请求首行(方法 + URL + 协议)
- 结果与内容
- %s:HTTP状态码(如200/404/500)
- %b/%B:响应体字节数(不含响应头;%b为零时输出**-,%B为零时输出0**)
- 性能与连接
- %D:请求处理耗时(毫秒)
- %T:请求处理耗时(秒,毫秒精度)
- %F:提交响应耗时(毫秒)
- %X:连接状态(X=响应完成前中止;+=可保持长连接;-=响应后关闭)
- 请求上下文
- %m:请求方法(GET/POST等)
- %U:请求URL路径
- %q:查询字符串(含前置**?**)
- %p:本地端口
- %I:当前请求线程名(便于与线程转储/堆栈关联)
- %{xxx}i / %{xxx}o / %{xxx}c:请求头/响应头/ Cookie 值(如**%{User-Agent}i**、%{Referer}i、%{X-Forwarded-For}i)
- 典型用途
- 计算QPS/吞吐量、P50/P95/P99响应时间、错误率、Top URL/来源IP/UA、响应体大小分布、长尾慢请求、连接复用情况。
三 错误与事件日志关键指标
- 日志级别与事件:关注SEVERE/WARN/ERROR级别,定位配置错误、启动失败、部署异常、依赖不可用等问题;INFO常用于记录启动/停止/部署等生命周期事件。
- 异常要素:异常类型(如NullPointerException)、错误消息、完整堆栈跟踪,以及与之关联的请求信息(URL、方法、来源IP)与运行环境信息,用于快速定位代码根因。
- 常见故障信号:端口冲突、类/资源缺失、数据库连接失败、线程耗尽/超时、内存不足等,均会在catalina.out或相应模块日志中以ERROR/WARN形式出现。
四 生产可用的最小监控配置示例
- 访问日志(server.xml)
- 建议包含:客户端IP、时间、请求行、状态码、响应大小、处理耗时、UA/Referer、X-Forwarded-For(反向代理场景)
- 示例 pattern:
pattern=“%h %l %u %t “%r” %s %b %D %{User-Agent}i %{Referer}i %{X-Forwarded-For}i”
- 日志轮转与异步(logging.properties)
- 使用AsyncFileHandler降低I/O阻塞,设置maxDays控制保留天数,避免磁盘被占满
- 可按需调整catalina、localhost等日志级别,减少低级别日志对性能的影响