分析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
使用日志分析工具:
可以使用如下的工具进行更复杂的分析:
通过上述方法,可以有效地分析Tomcat日志,帮助定位问题和优化系统性能。