温馨提示×

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.xmlAccessLogValve;日志级别与输出在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等日志级别,减少低级别日志对性能的影响

0