airflow看不到任务日志解决方案

1. 基础信息

airflow 版本:2.5.3

2. 问题现象

airflow web-server 界面,看到某些任务的具体运行日志,只有少量日志,如下图所示:

image-20240830180654826

具体日志内容如下:

na-fudao-data-airflow-test-2-21.alibji.zybang.com
*** Log file does not exist: /data/homework/workflow/airflow/logs/dag_id=warehouse_bzr_dws_run_1min/run_id=scheduled__2024-08-30T09:52:00+00:00/task_id=dws_trade_order_bzr.middle_expand/attempt=1.log
*** Fetching from: http://na-fudao-data-airflow-test-2-21.alibji.zybang.com:8793/log/dag_id=warehouse_bzr_dws_run_1min/run_id=scheduled__2024-08-30T09:52:00+00:00/task_id=dws_trade_order_bzr.middle_expand/attempt=1.log
*** Failed to fetch log file from worker. [Errno 111] Connection refused

日志内容解释:

  1. 第一行:表示该任务被分配到哪个 worker 节点上运行了,显示的是节点的主机名称 hostname
  2. 第二行:表示从 web-server 机器上查找本地日志文件,然后找不到。这是正常的,一般来说,如果是搭建的集群形式的 airflow,web-server 和 worker 是分节点部署的,web-server 节点上没有 worker 运行,所以 web-server 节点上是没有本地日志文件的。
  3. 第三行:表示通过访问 http 的方式,从 worker 节点上拉取日志,后面是具体的访问地址。注意域名后面的端口号 8793,这个端口号是 worker 节点上提供给 web-server 进程,用于远程拉取日志文件使用的。
  4. 第四行:表示 web-server 通过 http 方式,从 worker 节点上获取日志文件失败了,原因是连接被拒绝。

3. 问题分析

日志内容解释中第 4 点提到,web-server 通过 http 方式,从 worker 节点上获取日志,连接被拒绝。然后我们可以登录日志中提到的节点上,查看对应的端口号是否有进程在运行。使用 root 用户登录对应节点,然后运行下面的命令(使用搭建 airflow 的用户也可以):

netstat -aptn | grep 8793

然后发现没有任何信息输出,说明该节点上对应的端口号的用于提供 worker 本地日志文件访问的服务进程不存在。

image-20240830180536032

4. 解决方案

问题分析中已经提到了,在对应的 worker 节点上,发现 8793 这个端口,并没有对应的服务在运行,因此我们只需要把这个服务启动即可。

不过 airflow 并没有单独的这个服务的进程启动方式,它是 worker 服务中的一部分,所以我们只需要重启一下 worker 服务即可,重启命令可参考下面的命令代码:

/data/homework/anaconda3/envs/airflow/bin/airflow celery worker --daemon --pid /data/homework/workflow/airflow/process/worker/airflow-worker.pid --stdout /data/homework/workflow/airflow/process/worker/airflow-worker.out --stderr /data/homework/workflow/airflow/process/worker/airflow-worker.err --log-file /data/homework/workflow/airflow/process/worker/airflow-worker.log

注意前面的路径,这是你当初搭建 airflow 时,启动的 python 虚拟环境地址。后面的几个参数,指定的是服务的 pid 文件路径、日志文件路径。

启动之后,再次观察该机器上 8793 端口的服务情况,运行如下命令:

netstat -aptn | grep 8793

发现输出如下:

image-20240830193835539

表示该节点上的 8793 端口有对应的服务在运行。

再次观察 airflow 界面任务日志,发现正常输出了

image-20240830193936379

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

第一片心意

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值