温馨提示×

Ubuntu Java日志如何监控

小樊
43
2025-11-20 06:35:10
栏目: 编程语言

Ubuntu Java日志监控实践指南

一 命令行快速监控

  • 实时跟踪日志文件:使用tail -f /path/to/app.log;仅看最近100行用tail -n 100 -f。大文件分页查看用less,配合**/关键词搜索。定位错误关键字用grep -i “error” /path/to/app.log**;按时间窗口过滤可用journalctl -u 服务名 --since “2025-11-20 10:00:00” --until “2025-11-20 11:00:00”。若日志输出到systemd服务,优先用journalctl -u 服务名 -f。为提升可读性,可安装并使用cczehighlight进行高亮显示。

二 日志框架与输出配置

  • 明确项目使用的日志框架(如Logback、Log4j2、java.util.logging),并设置合适的日志级别:DEBUG、INFO、WARN、ERROR、FATAL。在Logback中可通过控制输出;在Log4j2中使用RollingFile实现按大小滚动(如10MB)并保留10个归档;在JUL可通过自定义Formatter统一时间、线程、类名等格式。合理的级别与滚动策略能在问题排查与磁盘占用之间取得平衡。

三 集中化监控方案

  • 使用ELK Stack(Elasticsearch、Logstash、Kibana)集中采集、存储与可视化:Logstash从/path/to/app.log读取并解析后写入Elasticsearch,Kibana进行检索与看板展示。也可用Graylog替代ELK做日志聚合与告警。对于异常告警与错误跟踪,可接入Sentry实现实时通知与聚合。若需指标与链路观测,可在Java侧引入Micrometer并暴露**/actuator/prometheus**,配合Prometheus + Grafana做可视化监控(与日志互补)。

四 系统日志与轮转治理

  • 统一采集系统与应用日志:将Java日志写入**/var/log/并由rsyslogsystemd journal集中管理;使用Logrotate对日志进行按日/按大小轮转、压缩与清理,避免单文件过大与磁盘占满。对关键错误可配置LogwatchLogalyze**生成日报/周报,辅助审计与容量规划。

五 实用命令清单

  • 实时查看:tail -f /var/log/myapp.log
  • 最近100行并持续跟踪:tail -n 100 -f /var/log/myapp.log
  • 分页搜索:less /var/log/myapp.log(进入后按**/**输入关键词)
  • 关键字过滤:grep -i “error” /var/log/myapp.log
  • 时间范围查询(systemd服务):journalctl -u my-webapp --since “2025-11-20 10:00:00” --until “2025-11-20 11:00:00”
  • 高亮显示:ccze < /var/log/myapp.log 或 highlight /var/log/myapp.log
  • 统计行数:wc -l /var/log/myapp.log
    以上命令覆盖日常排查的高频场景,可与集中化方案配合使用以提升效率与可观测性。

0