You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Apache Storm 1.1.1日志文件位置排查:现有方案失效求助

定位Storm Bolt日志的有效方法

我明白你遇到的困扰——旧的日志定位方案在新版本Storm里确实已经失效了,结合你描述的情况,我整理了几个能快速找到日志的方向:

1. 优先查看worker.xml的实际配置

你提到找到的worker.xml才是决定worker日志输出路径的核心配置文件,storm.log.dir可能只是一个基础变量,实际路径由配置里的日志Appender定义:

  • 打开worker.xml,查找类似<file>的标签(对应Logback/Log4j的FileAppender配置),比如:
    <file>${storm.log.dir}/worker-${worker.port}.log</file>
    
  • 这里的${storm.log.dir}如果没有正确映射,或者配置了其他自定义路径,直接以标签里的实际路径为准。

2. 深入workers-artifacts的深层目录

你看到的workers-artifacts目录只是顶层入口,日志藏在更细分的子目录里:

  • 进入节点命名的文件夹后,你会看到以拓扑ID+时间戳命名的文件夹(比如my-topology-12345-1695000000
  • 再进入其中以worker端口命名的子目录(比如6701),里面通常会有worker.logstorm.log这类实际的日志文件。

3. 检查Storm的默认日志目录

如果上面的路径都没找到,试试Storm的默认日志路径:

  • Linux系统下常见默认路径:/var/log/storm/
  • 或者查看Storm安装目录下conf/storm-env.sh里的STORM_LOG_DIR环境变量,这个变量定义了Storm日志的根目录:
    export STORM_LOG_DIR=/opt/storm/logs
    

4. 通过worker进程命令定位配置

用更精准的命令查看worker的启动参数,找到实际生效的日志配置文件:

ps aux | grep worker

在输出的命令行里查找-Dlogback.configurationFile-Dlog4j.configuration参数,对应的配置文件里会明确日志输出路径。

如果还是没头绪,可以用全局搜索快速定位日志文件:

find / -name "*.log" | grep -E "(worker|storm|bolt)"

内容的提问来源于stack exchange,提问作者WesternGun

火山引擎 最新活动