温馨提示×

Debian Tomcat日志如何查看和分析

小樊
39
2025-11-16 07:02:59
栏目: 智能运维

Debian Tomcat日志查看与分析

一 日志位置与类型

  • 常见日志目录
    • /var/log/tomcat//var/log/tomcatX/(X为版本号,如 tomcat9)
    • /opt/tomcat/logs
    • /usr/local/tomcat/logs
  • 核心日志文件与作用
    • catalina.out:标准输出与错误输出(启动、运行、异常堆栈等)
    • localhost..log:应用日志(Servlet/JSP 输出、业务日志)
    • localhost_access_log..txt:访问日志(客户端IP、时间、方法、URL、状态码、耗时等)
    • manager..log / host-manager..log:管理应用日志
    • gc.log(若启用JVM GC日志):垃圾回收统计,用于性能与内存分析
  • 快速定位示例
    • 列出日志目录:ls /var/log/tomcat* /opt/tomcat/logs 2>/dev/null
    • 查看是否存在访问日志:ls /var/log/tomcat*/localhost_access_log* 2>/dev/null

二 快速查看与常用命令

  • 实时查看
    • tail -f /var/log/tomcat/catalina.out
    • tail -f /opt/tomcat/logs/localhost_access_log.*.txt
  • 分页与检索
    • less /var/log/tomcat/catalina.out
    • grep -i "error\|exception\|failed" /var/log/tomcat/catalina.out
  • 访问日志快速分析
    • Top 10 请求URL(按出现次数)
      • cat /var/log/tomcat*/localhost_access_log.*.txt | awk '{print $7}' | sort | uniq -c | sort -nr | head
    • Top 10 客户端IP
      • cat /var/log/tomcat*/localhost_access_log.*.txt | awk '{print $1}' | sort | uniq -c | sort -nr | head
    • 按状态码统计(如 5xx)
      • cat /var/log/tomcat*/localhost_access_log.*.txt | awk '{print $9}' | sort | uniq -c | sort -nr
    • 按小时统计请求量趋势
      • cat /var/log/tomcat*/localhost_access_log.*.txt | awk -F: '{print $2":"$3}' | sort | uniq -c
  • 提示
    • 访问日志字段在不同配置/版本中可能略有差异,先用 head -n1 确认字段顺序。

三 日志配置与级别调整

  • 配置文件路径
    • $CATALINA_BASE/conf/logging.properties(JUL 日志配置)
    • 访问日志在 $CATALINA_BASE/conf/server.xmlAccessLogValve 中定义
  • 调整日志级别(示例)
    • 在 logging.properties 中提升特定包的日志级别(调试期常用)
      • org.apache.catalina.core.*.level = FINE
      • org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE
  • 启用GC日志(JVM参数示例)
    • 编辑 bin/catalina.sh(或 systemd 的 Environment=),加入
      • -Xlog:gc*,gc+heap=debug:file=/opt/tomcat/logs/gc.log:time,tags:filecount=5,filesize=50M
  • 生效方式
    • 修改后重启 Tomcat:sudo systemctl restart tomcat

四 日志轮转与归档备份

  • 使用 logrotate(推荐)
    • 新建配置:sudo vim /etc/logrotate.d/tomcat
    • 示例(按日轮转、保留7天、压缩、copytruncate 适配 catalina.out)
      /opt/tomcat/logs/catalina.out {
        daily
        rotate 7
        compress
        missingok
        notifempty
        copytruncate
      }
      
  • 手动备份与清理
    • 备份:sudo tar czvf tomcat_logs_$(date +%F).tar.gz /opt/tomcat/logs
    • 清理30天前:find /opt/tomcat/logs -name "*.log" -mtime +30 -delete
  • 按日期切割 catalina.out(可选)
    • 借助 cronolog 修改 catalina.sh 的日志输出,使按天生成文件,便于管理。

五 监控与可视化方案

  • 轻量监控
    • 实时 tail + 关键字告警脚本(如匹配 ERROR/OutOfMemoryError 并触发通知)
    • 结合 Zabbix 采集日志指标或对接 ES 索引设置触发器
  • 集中式平台
    • ELK Stack:Filebeat 采集日志 → Logstash 解析与丰富 → Elasticsearch 存储 → Kibana 可视化与仪表板
    • Graylog / Splunk:集中收集、检索、告警与报表
  • 监控要点
    • 错误率、5xx 比例、响应时间分布、吞吐趋势、线程池与内存(配合 jstat -gcutil 1000 等)。

0