发布于2026-07-18 阅读(0)
扫一扫,手机访问
日志分析这件事,看着简单,真要落地到生产环境,坑不少。尤其是在 CentOS 上跑 Ja va 应用,从采集到排查,每一步都有讲究。下面这套实践,算是行业里摸爬滚打出来的通用方案,直接照着做,基本不会跑偏。
日志框架的选择上,建议直接上 SLF4J + Logback 或 Log4j2,别再用 JUL 了。JUL 虽然 JDK 自带的,但后期统一格式、替换实现会非常麻烦,劝退指数五颗星。
格式必须统一。一个规范的日志条目,至少包含时间戳、线程名、日志级别、类名或方法名、消息内容,以及异常栈。这样不管是用 grep 还是丢到 ES 里,检索起来都顺手。Logback 的一个典型 pattern 长这样:%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n,直接拿来用就行。
生产环境日志级别以 INFO、WARN、ERROR 为主,DEBUG 别开,除非你是在调试期。更高级的做法是支持运行时动态调整级别,比如通过 JMX 或者框架自带的 API,省得改配置重启。
业务日志写入文件,stdout 和 stderr 单独重定向到另一个文件,别混在一起。否则排查问题时,控制台输出和业务日志搅和在一块,头大。
最后,注意日志框架的冲突与桥接问题。比如 log4j-to-slf4j 和 log4j-over-slf4j 同时出现,会导致栈溢出之类的诡异问题。只保留一套实现,其他桥接模块清理干净。
应用内用 Logback 的 TimeBasedRollingPolicy 或 Log4j2 的滚动策略,按天或按小时切分,保留近 7 天或 30 天的日志,同时压缩归档。别把日志全堆在一个文件里,单个文件几 GB 的时候,你用 tail 都拖不动。
系统层面再用 logrotate 兜底。有些日志是容器外产生的,或者应用没做滚动,那就靠 logrotate 来定期轮转、压缩、清理。配置示例:daily, rotate 7, compress, missingok, notifempty, create 0644 root root,直接写进 /etc/logrotate.d/ 里就行。
日志目录统一放在 /var/log/yourapp/,设置好属主和权限,避免应用因为权限不足写不进去,这种低级错误但经常出现。
别忘了加容量预警。监控磁盘使用率,超过阈值就告警,别等日志把磁盘撑爆了才追悔莫及。
在每台应用节点上部署 Filebeat,负责读取日志并发送到中心。Filebeat 轻量、稳定,不会对应用产生太大影响。
中心端用 Logstash 做解析和结构化,grok 解析时间戳、date 字段处理、geoip 地理信息,一套组合拳下来,非结构化的日志就变成了结构化数据,写入 Elasticsearch。
Kibana 用来做检索和可视化。建好索引模式,配好仪表板,还可以按 traceId 或 requestId 快速串联调用链日志,故障排查效率直接翻倍。
当然,如果环境规模不大或者对权限要求较高,可以选 Graylog;企业级土豪用户直接上 Splunk,省心省力。
实时查看日志,最常用的就是 tail -f /var/log/yourapp/app.log。关键字检索用 grep -n "ERROR" app.log,压缩包用 zgrep "ERROR" app.log.gz。如果是 systemd 管理的服务,journalctl -u yourapp.service -f 也很方便。
遇到 JVM 崩溃,别慌。先找 hs_err_pid*.log 文件,通常在工作目录或 /var/log/ 下。重点关注错误类型(比如 SIGSEGV)、寄存器/栈帧信息、JRE/VM 版本以及 Problematic frame。根据这些信息判断是 JNI 问题、内存问题、线程冲突还是硬件故障。
资源瓶颈排查,结合 top、free、df 和 iostat 定位 CPU、内存、磁盘 I/O 的瓶颈。如果怀疑是 GC 问题,再联动 GC 日志和堆转储做进一步分析。
对于通过 ja va -jar 启动的应用,记得把 stdout 和 stderr 分别重定向到不同文件,方便独立分析那些非日志框架产生的输出,比如有些第三方库直接打印到控制台。
日志目录 /var/log 和集中化日志平台都要实施最小权限原则,基于角色的访问控制(RBAC)是标配。敏感日志在入库前要脱敏,比如身份证号、手机号之类的。
采集链路上要启用 TLS 加密,防止中间人窃听。Elasticsearch、Kibana、Graylog 等组件必须开启认证和审计功能,别裸奔。
合规留存方面,根据业务要求和法规(比如等保、GDPR)设置保留周期和归档策略,过期数据按流程销毁,别留着吃灰。
所有日志配置的变更、日志的访问和导出行为,都要有审计记录,出了问题能追溯到人。

售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8