[xuxueli/xxl-job]K8S 重新发布服务后,历史日志无法查看

2024-04-24 572 views
4
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 自然也访问不到执行器了。

回答

7

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

0

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

5

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

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

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

4

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

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

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

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

2

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

6

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

5

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

我们目前的解决方案:

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

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

5

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

5

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

4

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

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

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

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