在Linux系统中,Resin作为一款高性能的Java应用服务器,其日志管理对于问题排查、性能监控和系统维护至关重要,掌握查看Resin日志的命令和方法,能够帮助管理员快速定位问题并优化服务,本文将详细介绍Resin日志的存储位置、常用查看命令、高级过滤技巧以及日志轮转配置,最后附上相关FAQs。

Resin的日志主要分为三类:访问日志(access log)、错误日志(error log)和系统日志(stdout log),这些日志默认存储在Resin的安装目录下的logs
文件夹中,具体路径可能因安装方式不同而有所差异,例如/opt/resin/logs
或/usr/local/resin/logs
,访问日志记录了客户端的请求信息,错误日志捕获了应用运行时的异常和错误,而系统日志则包含Resin启动、停止等操作信息以及未捕获的异常输出。
基础查看命令
最常用的日志查看命令是tail
、cat
和less
。tail
命令用于实时监控日志文件的最新内容,适合排查实时问题,查看错误日志的最新10行,可以使用tail -n 10 logs/error.log
;若需实时跟踪,则添加-f
参数,即tail -f logs/error.log
。cat
命令用于查看整个日志文件内容,适合小文件或快速搜索,如cat logs/access.log
。less
命令则提供分页浏览功能,支持上下翻页和关键词搜索,使用less logs/error.log
后,可通过/keyword
搜索特定内容,按q
退出。
高级过滤与分析
当日志文件较大时,直接查看全文效率低下,需结合grep
、awk
等工具进行过滤。grep
用于搜索包含特定关键词的行,例如grep "ERROR" logs/error.log
查找所有错误信息,grep -v "200" logs/access.log
排除状态码为200的请求,若需按时间范围过滤,可结合sed
或awk
处理时间戳,例如awk '/2023-10-01:12:00/,/2023-10-01:13:00/' logs/access.log
提取特定时间段的日志,统计请求频率时,cut
和sort
组合使用,如cut -d' ' -f1 logs/access.log | sort | uniq -c | sort -nr
可统计每个IP的请求次数并排序。
日志轮转与归档
长期运行的Resin服务器会产生大量日志,需配置日志轮转以避免单个文件过大,Resin可通过logrotate
工具实现自动轮转,配置文件通常位于/etc/logrotate.d/resin
,示例如下:

/opt/resin/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
上述配置表示每日轮转日志,保留7天的历史记录,压缩旧日志,并在轮转后清空原文件。copytruncate
确保在日志写入时轮转不会丢失数据。
不同日志类型的查看重点
- 访问日志:关注状态码(如404、500)、响应时间和IP地址,使用
awk '{print $9, $10}' logs/access.log | sort | uniq -c
可统计状态码分布。 - 错误日志:重点排查
OutOfMemoryError
、Connection refused
等异常,结合grep -A 5 -B 5 "Exception" logs/error.log
查看异常上下文。 - 系统日志:检查Resin启动时的配置加载信息和GC日志,使用
grep "GC" logs/stdout.log
分析垃圾回收情况。
常用命令速查表
命令 | 功能描述 | 示例 |
---|---|---|
tail -f |
实时跟踪日志更新 | tail -f logs/error.log |
grep |
过滤包含关键词的行 | grep "500" logs/access.log |
awk |
按字段提取或处理日志 | awk '{print $1}' logs/access.log |
less |
分页浏览日志 | less logs/error.log |
logrotate |
自动轮转日志 | logrotate -f /etc/logrotate.d/resin |
相关问答FAQs
Q1: Resin日志中出现“OutOfMemoryError”如何排查?
A: 首先检查错误日志中的内存溢出异常堆栈信息,定位导致内存泄漏的代码,通过grep "GC" logs/stdout.log
分析垃圾回收频率和耗时,若GC频繁且耗时较长,需调整JVM堆大小参数(如-Xms
、-Xmx
),使用jmap
工具生成堆转储文件(jmap -dump:format=b,file=heap.hprof <pid>
),通过MAT等工具分析内存占用情况。
Q2: 如何统计Resin访问日志中Top 10的IP地址?
A: 使用awk
和sort
命令组合实现:awk '{print $1}' logs/access.log | sort | uniq -c | sort -nr | head -n 10
,命令解释:awk '{print $1}'
提取每行第一个字段(IP地址),sort
排序,uniq -c
统计重复次数,sort -nr
按数字降序排列,head -n 10
显示前10名,若需排除爬虫或特定IP,可结合grep -v
过滤,如grep -v "192.168.1.1" logs/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 10
。
