温馨提示×

Debian Tomcat日志如何分析

小樊
88
2025-02-17 14:27:24
栏目: 智能运维

分析Debian系统上的Tomcat日志可以通过以下几种方法进行:

日志文件位置

Tomcat日志文件通常位于 CATALINA_HOME/logs 目录中,其中 CATALINA_HOME 是Tomcat的安装目录。

常用命令

  • 查看日志文件

    使用 tail 命令实时查看日志文件的最新内容:

    tail -f /path/to/tomcat/logs/catalina.out
    

    使用 less 命令分页查看日志文件:

    less /path/to/tomcat/logs/catalina.out
    

    使用 grep 命令搜索指定关键字:

    grep "error" /path/to/tomcat/logs/catalina.out
    
  • 日志分析脚本

    可以使用如下的bash脚本来分析日志:

    #!/bin/bash
    # 默认分析当天日志,后面可以跟分析最近几天,建议3天
    recentDay=$1
    [[ "$1" != "" ]] && recentDay=1
    # 获取分析的日志集合,默认分析当天日志
    cd /path/to/tomcat/logs/
    rm -fr result.txt
    fileset=$(ls localhost_access_log*|tail -${recentDay})
    # 天粒度统计
    getDayTotal(){
      echo ===========getDayTotal=====================
      ls $fileset | xargs wc -l | awk '$0=$0"\tgetDayTotal"'}
    # 小时粒度统计
    getHourTotal(){
      echo ===========getHourTotal=====================
      ls $fileset | xargs awk -F"- - "'{print $2}' | cut -c 2-15 | sort | uniq -c | awk '$0=$0"\tgetHourTotal"'}
    # 返回码分析
    getResCode(){
      echo ===========getResCode=====================
      ls $fileset | xargs awk -F"- - "'{print $2}' | awk -F"POST /"'{print $2}' | awk '{print $3}' | sort | uniq -c | sort -n -r | awk '$0=$0"\tgetResCode"'}
    # 请求来源IP 地址 top10
    getSocIP(){
      echo ===========getSocIP=====================
      ls $fileset | xargs awk -F"- - "'{print $1}' | sort | uniq -c | sort -n -r | awk '$0=$0"\tgetSocIP"'}
    # top10 接口分析
    getIntface(){
      echo ===========getIntface=====================
      ls $fileset | xargs awk -F"- - "'{print $2}' | awk -F"POST /"'{print $2}' | awk '{print $1}' | cut -c 1-35 | sort | uniq -c | sort -n -r | awk '$0=$0"\tgetIntface"'}
    # 执行分析
    args=(getDayTotal getHourTotal getResCode getSocIP getIntface)
    for ((j=0;j<=${#args[@]}-1;j++))
    do
      ${args[j]} >> result.txt
      sleep 1
    done
    # 写入数据库
    cat result.txt | while readlinedo
    do
      echo $line
      array=(${line///t/ })
      num=${array[0]}
      keyname=${array[1]}
      mysql -h 10.xxx.xxx.xx -uzabbix -pXXXXXX -D DBNAME -e "insert into wgw_tomcat (args,keyname,num) values ('\"${args}\"','\"${keyname}\"','${num}')"
    done
    
  • 使用日志分析工具

    可以使用如下的工具进行更复杂的分析:

    • Awstats:一个强大的Apache日志分析工具。
    • ELK Stack(Elasticsearch, Logstash, Kibana):用于收集、存储、分析和可视化日志数据。

通过上述方法,可以有效地分析Tomcat日志,帮助定位问题和优化系统性能。

0