在日常运维Ja va应用的过程中,日志监控可以说是一项基本功。无论是排查线上故障,还是追踪系统性能,手里有没有一套趁手的日志工具,往往决定了解决问题的效率。今天,我们来聊聊Ubuntu环境下,几种常用的Ja va日志监控方法,从命令行到集中化平台,覆盖不同场景下的需求。
Ubuntu下监控Ja va日志的常用方法
1. 命令行工具:快速查看与实时监控
命令行工具,可以说是最基础、最直接的监控方式,适合快速定位问题或临时检查日志。

tail命令,用来实时跟踪日志文件的最新内容,调试时非常顺手。比如,执行tail -f /path/to/ja va.log,就能持续看到新增的行,按Ctrl+C停止;如果只想看最后100行,用tail -n 100 /path/to/ja va.log就够了。grep命令,用来过滤日志中的特定内容,比如错误信息。执行grep "ERROR" /path/to/ja va.log,就能快速定位所有包含“ERROR”的行;如果不在意大小写,grep -i "warning" /path/to/ja va.log可以帮你找到“warning”相关的记录。less命令,适合分页查看那些体积庞大的日志文件,支持按Page Up/Page Down翻页,查看历史日志非常方便。用法很简单,less /path/to/ja va.log,按q退出。journalctl命令,主要针对以systemd服务方式运行的Ja va应用。比如,如果应用是通过systemctl start my-ja va-app启动的,那么用journalctl -u my-ja va-app -f就能实时查看服务日志,而journalctl -u my-ja va-app --since "2025-09-26"可以查看指定日期的日志。
2. 日志管理工具:集中化分析与可视化
对于生产环境,或者需要长期存储和深度分析的场景,命令行工具就显得有些力不从心了。这时候,建议引入日志管理工具,实现日志的集中收集、搜索和可视化。
- ELK Stack(Elasticsearch + Logstash + Kibana):
- 作用:Elasticsearch 负责存储和索引日志,Logstash 负责收集和处理日志(比如解析时间戳、过滤无用信息),Kibana 则提供可视化展示(折线图、柱状图、搜索框一应俱全)。
- 配置步骤:
- 安装Elasticsearch:首先执行
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -添加密钥,然后添加仓库echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list,最后运行sudo apt update && sudo apt install elasticsearch。 - 安装Logstash:直接
sudo apt install logstash。 - 安装Kibana:同样
sudo apt install kibana。 - 配置Logstash:创建
/etc/logstash/conf.d/ja va.conf文件,内容如下:input {file {path => "/path/to/ja va.log"start_position => "beginning"sincedb_path => "/dev/null"# 首次运行时忽略已读记录}}filter {grok { match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:loglevel} %{GREEDYDATA:logmessage}" } }# 根据日志格式调整grok模式date { match => ["timestamp", "ISO8601"] }}output {elasticsearch { hosts => ["localhost:9200"] }stdout { codec => rubydebug }# 控制台输出,调试用} - 启动服务:依次执行
sudo systemctl start elasticsearch、sudo systemctl start logstash、sudo systemctl start kibana,然后访问http://localhost:5601查看Kibana界面。
- 安装Elasticsearch:首先执行
- Graylog:同样是一个开源的SIEM(安全信息和事件管理)工具,支持日志聚合、实时搜索和告警。安装步骤可以参考官方文档,配置Ja va应用通过GELF格式将日志发送到Graylog。
3. 第三方监控工具:性能与错误跟踪
如果需求更进一步,需要监控Ja va应用的性能指标(比如CPU、内存、线程)或错误信息,那么以下工具会更合适。
- Prometheus + Grafana:
- 作用:Prometheus 负责收集Ja va应用的性能指标,比如JVM内存使用率、GC次数等,Grafana 则将这些指标做成直观的仪表盘。
- 配置步骤:
- 安装Prometheus:
sudo apt install prometheus,然后编辑/etc/prometheus/prometheus.yml,在scrape_configs部分添加Ja va应用的抓取目标。 - 在Ja va应用中添加Micrometer依赖(适用于Spring Boot项目):
并在io.micrometer micrometer-registry-prometheus 1.10.5 application.properties中开启Actuator端点:management.endpoints.web.exposure.include=prometheus。 - 安装Grafana:先执行
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -添加密钥,然后添加仓库echo "deb https://packages.grafana.com/oss/ubuntu $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/grafana.list,接着sudo apt update && sudo apt install grafana,最后启动服务sudo systemctl start grafana-server。访问http://localhost:3000(默认账号admin/admin),导入Prometheus数据源并创建仪表盘。
- 安装Prometheus:
- Sentry:专注于错误跟踪的工具,能够实时捕获Ja va应用中的异常并及时通知开发者。安装方式也不复杂:先下载自托管包
git clone https://github.com/getsentry/self-hosted.git,然后运行cd self-hosted && ./install.sh,配置config.yml(如邮件通知),最后用docker-compose up -d启动服务。
4. 日志轮替:避免日志文件过大
日志文件长期运行,很快就会占用大量磁盘空间,所以日志轮替是必须考虑的一环。logrotate 工具可以定期轮换、压缩和删除旧日志,是管理日志文件大小的利器。
- 配置步骤:
- 创建Ja va应用的日志轮替配置文件
/etc/logrotate.d/ja va-app,内容如下:/path/to/ja va.log {daily# 每天轮换rotate 7 # 保留最近7份compress # 压缩旧日志(如.gz格式)missingok# 若日志不存在也不报错notifempty # 若日志为空则不轮换copytruncate # 复制原日志后清空(不影响正在写入的日志)} - 测试配置:先用
sudo logrotate -d /etc/logrotate.d/ja va-app模拟轮换,确认无误后,用sudo logrotate -f /etc/logrotate.d/ja va-app强制立即轮换。
- 创建Ja va应用的日志轮替配置文件
以上方法基本覆盖了从基础查看、实时监控到集中化分析的全流程,可以根据实际需求灵活组合。比如,开发阶段用 tail 和 grep 快速调试,生产环境则用 ELK 或 Prometheus+Grafana 实现长期监控。