xuxueli / xxl-job

A distributed task scheduling framework.(分布式任务调度平台XXL-JOB)
http://www.xuxueli.com/xxl-job/
GNU General Public License v3.0
27.56k stars 10.91k forks source link

K8S 重新发布服务后,历史日志无法查看 #1901

Open sAMs126 opened 4 years ago

sAMs126 commented 4 years ago

Please answer some questions before submitting your issue. Thanks!

Which version of XXL-JOB do you using?

2.2.0

Expected behavior

查询执行日志,显示执行日志 aznEC9.png

Actual behavior

不显示执行日志 aznNKP.png

Steps to reproduce the behavior

k8s 重新发布服务,历史日志无法查看

Other information

新服务是从 ip 池中获取新的 ip,我看查询日志的代码逻辑,是从表里查原来的执行器 ip。 请求历史执行器被销毁了,旧的 ip 自然也访问不到执行器了。

sAMs126 commented 4 years ago

提交 is 之前,我有搜索过,怎么大家没人遇到这个问题,难道是,我们入水姿势不对?

LockiJiang commented 4 years ago

日志是在服务器上保存的日志文件,历史执行器销毁后文件跟随销毁; 你应该需要建一个卷,将日志目录挂载出来

Shawyeok commented 4 years ago

日志是在服务器上保存的日志文件,历史执行器销毁后文件跟随销毁; 你应该需要建一个卷,将日志目录挂载出来

重新部署后pod未必会分配到同一台机器上,所以卷还得是共享卷才行。

所以我们直接放弃这种方式了,每个任务都对应一个唯一的traceId,用traceId为条件在ELK查看任务日志。

LockiJiang commented 4 years ago

日志是在服务器上保存的日志文件,历史执行器销毁后文件跟随销毁; 你应该需要建一个卷,将日志目录挂载出来

重新部署后pod未必会分配到同一台机器上,所以卷还得是共享卷才行。

所以我们直接放弃这种方式了,每个任务都对应一个唯一的traceId,用traceId为条件在ELK查看任务日志。

是需要共享卷,具体看需求;

DD384789980 commented 4 years ago

我遇到了同样的问题,服务日志有做nfs挂载,仍无法查看 最新服务发布之前的 执行日志。 image

powerLeePlus commented 3 years ago

我也遇到了同样的问题。 image

sAMs126 commented 3 years ago

我也遇到了同样的问题。 image

我们目前的解决方案:

  1. 每个执行器执行日志统一放到 xxl-job 目录下
  2. 运维的同事帮忙把 xxl-job 目录挂载到一台日志服务器上
  3. 每次请求调度日志,执行器都会去日志服务器上查

具体可以参考 @LockiJiang @Shawyeok 的建议

duxiaojiao commented 3 years ago

日志放到nas上应该可以吧?服务器都挂载同一个nas

sAMs126 commented 3 years ago

@duxiaojiao 防止重新发布,历史日志找不到,只要历史日志存放在应用都能访问到的地方就行

wenj91 commented 3 years ago

日志是在服务器上保存的日志文件,历史执行器销毁后文件跟随销毁; 你应该需要建一个卷,将日志目录挂载出来

重新部署后pod未必会分配到同一台机器上,所以卷还得是共享卷才行。

所以我们直接放弃这种方式了,每个任务都对应一个唯一的traceId,用traceId为条件在ELK查看任务日志。

这个方案不错,建议楼主试试