ubuntu

如何通过日志分析提升Ubuntu Tomcat响应速度

小樊
37
2025-11-30 04:57:49
栏目: 智能运维

从日志入手定位瓶颈,再用配置与代码优化响应时间


一 日志采集与关键字段配置

<Valve className="org.apache.catalina.valves.AccessLogValve"
       directory="logs"
       prefix="localhost_access_log."
       suffix=".txt"
       pattern="%h %l %u [%{yyyy-MM-dd HH:mm:ss}t] \"%r\" %s %b %D %F %{X-Real-IP}i"/>

二 用命令行快速定位慢请求与异常

# 单文件
awk -F'QTime:' '$2+0 > 800 {print}' /var/log/tomcat*/localhost_access_log.*.txt

# 若使用%D字段(毫秒)
awk '$NF > 800 {print}' /var/log/tomcat*/localhost_access_log.*.txt

# 统计Top N慢URI(基于%D)
awk -F'QTime:' '{n=$2+0; if(n>800) print $0}' /var/log/tomcat*/localhost_access_log.*.txt \
  | awk '{uri[$7]++; time[uri]+=n; cnt[uri]++}
    END {for(u in time) printf "%.0f ms  %d  %s\n", time[u]/cnt[u], cnt[u], u}' \
  | sort -nr | head
grep -n "ERROR" /var/log/tomcat*/catalina.out
# 将时间戳对齐后,在访问日志中检索对应时段

三 用可视化平台做趋势与分布分析

input { file { path => "/var/log/tomcat*/localhost_access_log.*.txt"
               start_position => "beginning"
               sincedb_path => "/dev/null" } }
filter {
  grok {
    match => { "message" => "%{IPORHOST:client} %{NOTSPACE:ident} %{NOTSPACE:auth} \[%{HTTPDATE:timestamp}\] \"%{DATA:request}\" %{NUMBER:status:int} %{NUMBER:bytes:int} %{NUMBER:duration_ms:int} %{NUMBER:commit_ms:int} %{IPORHOST:real_ip}" }
  }
  date { match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ] }
  mutate { convert => { "duration_ms" => "integer" "commit_ms" => "integer" } }
}
output { elasticsearch { hosts => ["localhost:9200"] index => "tomcat-access-%{+YYYY.MM.dd}" } }

四 从日志洞察到配置与代码优化


五 可复用的分析流程与落地清单

0
看了该问题的人还看了