Re: 关于flink任务的日志收集到kafka,可以在logback配置文件中,加如每个job的id或者name吗?

2020-08-31 文章 zilong xiao
可以用程序来完成的,flink-conf.yaml里可以先用占位符,例如 `env.java.opts:
-Djob.name={{job_name}}`  在你提交作业之前,先读到这个模板文件,在代码里去replace该占位符就好,不需要手动去改

Jim Chen  于2020年8月31日周一 下午1:33写道:

> 我也是flink1.10.1的版本的,如果按照你的方法,每次启动一个任务,都要在flink-conf.yaml中修改一下`env.java.opts:
> -Djob.name=xxx`吗?这样的话,是不是太麻烦了
>
> zilong xiao  于2020年8月31日周一 下午12:08写道:
>
> > 想问下你用的flink哪个版本呢?
> > 如果是Flink 1.10-版本,可以在shell脚本中加上 -yD
> > jobName=xxx,然后在logback自定义PatternLayout中用环境变量`_DYNAMIC_PROPERTIES`获取
> > 如果是Flink 1.10+版本,则上述方式不可行,因为1.10+版本在作业启动执行 launch_container.sh
> > <
> >
> http://dn-rt199.jja.bigo:8042/node/containerlogs/container_e19_1597907464753_1954_01_01/zengkejie/launch_container.sh/?start=-4096
> > >脚本时,脚本中不再`export
> >  _DYNAMIC_PROPERTIES`变量,所以无法从环境变量获取,那么可以在flink-conf.yaml中添加
> > `env.java.opts: -Djob.name=xxx`,然后在 PatternLayout中获取启动参数即可
> >
> > 以上是我个人的实现方式,目前可正常运行,如有描述不正确的地方,欢迎探讨~
> >
> > Jim Chen  于2020年8月31日周一 上午11:33写道:
> >
> > > 我现在是用shell脚本提交per job模式的任务,现在只能拿到yarn的applicationId,自定义的任务名,拿不到
> > >
> > >
> > > zilong xiao  于2020年8月27日周四 下午7:24写道:
> > >
> > > > 如果是用CLI方式提交作业的话是可以做到的
> > > >
> > > > Jim Chen  于2020年8月27日周四 下午6:13写道:
> > > >
> > > > > 如果是自动以PatternLayout的话,我有几点疑问:
> > > > >
> > > > >
> > > >
> > >
> >
> 1、logback加载时机的问题,就是①先会运行logback相关类,②再执行你自定义的PatternLayout,③再去执行你的主类,在②的时候,此时还没法确定具体的启动类是啥,这种方式没法根据job动态变化
> > > > >
> > > > > 如果使用env的话
> > > > > 1、配置环境变量的话,如果yarn有10个节点。那么每台是不是都要配置一下
> > > > > 2、因为是每个job都要传递,所以,这个应该是临时的环境变量吧
> > > > > 3、如果是配置的临时环境变量的话,那么在执行bin/flink run的时候,shell中是执行java
> > > > >
> > >
> -cp的,此时的主类,是org.apache.flink.client.cli.CliFrontend,这种方式,环境变量在传递的时候,会丢吧?
> > > > >
> > > > > zilong xiao  于2020年8月25日周二 下午5:32写道:
> > > > >
> > > > > >
> > > >
> > 1:想加入跟业务相关的字段,例如jobId,jobName,可以继承PatternLayout,重写doLayout即可,在方法中对日志进行填充
> > > > > > 2:这些属性有办法可以从环境变量中获取
> > > > > >
> > > > > > Jim Chen  于2020年8月25日周二 下午4:49写道:
> > > > > >
> > > > > > > 大家好:
> > > > > > >
> >  我们在做flink的日志收集到kafak时,使用的logback日志配置文件,目前的pattern是%d{-MM-dd
> > > > > > > HH:mm:ss.SSS} [%thread] %-5level %logger{60} -
> > > > > > >
> > > %msg,有没有什么办法在里面加入每个job的id,name或者tasknamanger的主机名之类的信息啊。在做ELK的时候,方便查询。
> > > > > > > 这个配置文件,是整个项目的,是基于Yarn的per
> > > job模式,难道每个主类打包的时候,都要改动不同的logbakc配置文件吗?
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>


Re: 关于flink任务的日志收集到kafka,可以在logback配置文件中,加如每个job的id或者name吗?

2020-08-30 文章 Jim Chen
我也是flink1.10.1的版本的,如果按照你的方法,每次启动一个任务,都要在flink-conf.yaml中修改一下`env.java.opts:
-Djob.name=xxx`吗?这样的话,是不是太麻烦了

zilong xiao  于2020年8月31日周一 下午12:08写道:

> 想问下你用的flink哪个版本呢?
> 如果是Flink 1.10-版本,可以在shell脚本中加上 -yD
> jobName=xxx,然后在logback自定义PatternLayout中用环境变量`_DYNAMIC_PROPERTIES`获取
> 如果是Flink 1.10+版本,则上述方式不可行,因为1.10+版本在作业启动执行 launch_container.sh
> <
> http://dn-rt199.jja.bigo:8042/node/containerlogs/container_e19_1597907464753_1954_01_01/zengkejie/launch_container.sh/?start=-4096
> >脚本时,脚本中不再`export
>  _DYNAMIC_PROPERTIES`变量,所以无法从环境变量获取,那么可以在flink-conf.yaml中添加
> `env.java.opts: -Djob.name=xxx`,然后在 PatternLayout中获取启动参数即可
>
> 以上是我个人的实现方式,目前可正常运行,如有描述不正确的地方,欢迎探讨~
>
> Jim Chen  于2020年8月31日周一 上午11:33写道:
>
> > 我现在是用shell脚本提交per job模式的任务,现在只能拿到yarn的applicationId,自定义的任务名,拿不到
> >
> >
> > zilong xiao  于2020年8月27日周四 下午7:24写道:
> >
> > > 如果是用CLI方式提交作业的话是可以做到的
> > >
> > > Jim Chen  于2020年8月27日周四 下午6:13写道:
> > >
> > > > 如果是自动以PatternLayout的话,我有几点疑问:
> > > >
> > > >
> > >
> >
> 1、logback加载时机的问题,就是①先会运行logback相关类,②再执行你自定义的PatternLayout,③再去执行你的主类,在②的时候,此时还没法确定具体的启动类是啥,这种方式没法根据job动态变化
> > > >
> > > > 如果使用env的话
> > > > 1、配置环境变量的话,如果yarn有10个节点。那么每台是不是都要配置一下
> > > > 2、因为是每个job都要传递,所以,这个应该是临时的环境变量吧
> > > > 3、如果是配置的临时环境变量的话,那么在执行bin/flink run的时候,shell中是执行java
> > > >
> > -cp的,此时的主类,是org.apache.flink.client.cli.CliFrontend,这种方式,环境变量在传递的时候,会丢吧?
> > > >
> > > > zilong xiao  于2020年8月25日周二 下午5:32写道:
> > > >
> > > > >
> > >
> 1:想加入跟业务相关的字段,例如jobId,jobName,可以继承PatternLayout,重写doLayout即可,在方法中对日志进行填充
> > > > > 2:这些属性有办法可以从环境变量中获取
> > > > >
> > > > > Jim Chen  于2020年8月25日周二 下午4:49写道:
> > > > >
> > > > > > 大家好:
> > > > > >
>  我们在做flink的日志收集到kafak时,使用的logback日志配置文件,目前的pattern是%d{-MM-dd
> > > > > > HH:mm:ss.SSS} [%thread] %-5level %logger{60} -
> > > > > >
> > %msg,有没有什么办法在里面加入每个job的id,name或者tasknamanger的主机名之类的信息啊。在做ELK的时候,方便查询。
> > > > > > 这个配置文件,是整个项目的,是基于Yarn的per
> > job模式,难道每个主类打包的时候,都要改动不同的logbakc配置文件吗?
> > > > > >
> > > > >
> > > >
> > >
> >
>


Re: 关于flink任务的日志收集到kafka,可以在logback配置文件中,加如每个job的id或者name吗?

2020-08-30 文章 zilong xiao
想问下你用的flink哪个版本呢?
如果是Flink 1.10-版本,可以在shell脚本中加上 -yD
jobName=xxx,然后在logback自定义PatternLayout中用环境变量`_DYNAMIC_PROPERTIES`获取
如果是Flink 1.10+版本,则上述方式不可行,因为1.10+版本在作业启动执行 launch_container.sh
脚本时,脚本中不再`export
 _DYNAMIC_PROPERTIES`变量,所以无法从环境变量获取,那么可以在flink-conf.yaml中添加
`env.java.opts: -Djob.name=xxx`,然后在 PatternLayout中获取启动参数即可

以上是我个人的实现方式,目前可正常运行,如有描述不正确的地方,欢迎探讨~

Jim Chen  于2020年8月31日周一 上午11:33写道:

> 我现在是用shell脚本提交per job模式的任务,现在只能拿到yarn的applicationId,自定义的任务名,拿不到
>
>
> zilong xiao  于2020年8月27日周四 下午7:24写道:
>
> > 如果是用CLI方式提交作业的话是可以做到的
> >
> > Jim Chen  于2020年8月27日周四 下午6:13写道:
> >
> > > 如果是自动以PatternLayout的话,我有几点疑问:
> > >
> > >
> >
> 1、logback加载时机的问题,就是①先会运行logback相关类,②再执行你自定义的PatternLayout,③再去执行你的主类,在②的时候,此时还没法确定具体的启动类是啥,这种方式没法根据job动态变化
> > >
> > > 如果使用env的话
> > > 1、配置环境变量的话,如果yarn有10个节点。那么每台是不是都要配置一下
> > > 2、因为是每个job都要传递,所以,这个应该是临时的环境变量吧
> > > 3、如果是配置的临时环境变量的话,那么在执行bin/flink run的时候,shell中是执行java
> > >
> -cp的,此时的主类,是org.apache.flink.client.cli.CliFrontend,这种方式,环境变量在传递的时候,会丢吧?
> > >
> > > zilong xiao  于2020年8月25日周二 下午5:32写道:
> > >
> > > >
> > 1:想加入跟业务相关的字段,例如jobId,jobName,可以继承PatternLayout,重写doLayout即可,在方法中对日志进行填充
> > > > 2:这些属性有办法可以从环境变量中获取
> > > >
> > > > Jim Chen  于2020年8月25日周二 下午4:49写道:
> > > >
> > > > > 大家好:
> > > > > 我们在做flink的日志收集到kafak时,使用的logback日志配置文件,目前的pattern是%d{-MM-dd
> > > > > HH:mm:ss.SSS} [%thread] %-5level %logger{60} -
> > > > >
> %msg,有没有什么办法在里面加入每个job的id,name或者tasknamanger的主机名之类的信息啊。在做ELK的时候,方便查询。
> > > > > 这个配置文件,是整个项目的,是基于Yarn的per
> job模式,难道每个主类打包的时候,都要改动不同的logbakc配置文件吗?
> > > > >
> > > >
> > >
> >
>


Re: 关于flink任务的日志收集到kafka,可以在logback配置文件中,加如每个job的id或者name吗?

2020-08-30 文章 Jim Chen
我现在是用shell脚本提交per job模式的任务,现在只能拿到yarn的applicationId,自定义的任务名,拿不到


zilong xiao  于2020年8月27日周四 下午7:24写道:

> 如果是用CLI方式提交作业的话是可以做到的
>
> Jim Chen  于2020年8月27日周四 下午6:13写道:
>
> > 如果是自动以PatternLayout的话,我有几点疑问:
> >
> >
> 1、logback加载时机的问题,就是①先会运行logback相关类,②再执行你自定义的PatternLayout,③再去执行你的主类,在②的时候,此时还没法确定具体的启动类是啥,这种方式没法根据job动态变化
> >
> > 如果使用env的话
> > 1、配置环境变量的话,如果yarn有10个节点。那么每台是不是都要配置一下
> > 2、因为是每个job都要传递,所以,这个应该是临时的环境变量吧
> > 3、如果是配置的临时环境变量的话,那么在执行bin/flink run的时候,shell中是执行java
> > -cp的,此时的主类,是org.apache.flink.client.cli.CliFrontend,这种方式,环境变量在传递的时候,会丢吧?
> >
> > zilong xiao  于2020年8月25日周二 下午5:32写道:
> >
> > >
> 1:想加入跟业务相关的字段,例如jobId,jobName,可以继承PatternLayout,重写doLayout即可,在方法中对日志进行填充
> > > 2:这些属性有办法可以从环境变量中获取
> > >
> > > Jim Chen  于2020年8月25日周二 下午4:49写道:
> > >
> > > > 大家好:
> > > > 我们在做flink的日志收集到kafak时,使用的logback日志配置文件,目前的pattern是%d{-MM-dd
> > > > HH:mm:ss.SSS} [%thread] %-5level %logger{60} -
> > > > %msg,有没有什么办法在里面加入每个job的id,name或者tasknamanger的主机名之类的信息啊。在做ELK的时候,方便查询。
> > > > 这个配置文件,是整个项目的,是基于Yarn的per job模式,难道每个主类打包的时候,都要改动不同的logbakc配置文件吗?
> > > >
> > >
> >
>


Re: 关于flink任务的日志收集到kafka,可以在logback配置文件中,加如每个job的id或者name吗?

2020-08-27 文章 zilong xiao
如果是用CLI方式提交作业的话是可以做到的

Jim Chen  于2020年8月27日周四 下午6:13写道:

> 如果是自动以PatternLayout的话,我有几点疑问:
>
> 1、logback加载时机的问题,就是①先会运行logback相关类,②再执行你自定义的PatternLayout,③再去执行你的主类,在②的时候,此时还没法确定具体的启动类是啥,这种方式没法根据job动态变化
>
> 如果使用env的话
> 1、配置环境变量的话,如果yarn有10个节点。那么每台是不是都要配置一下
> 2、因为是每个job都要传递,所以,这个应该是临时的环境变量吧
> 3、如果是配置的临时环境变量的话,那么在执行bin/flink run的时候,shell中是执行java
> -cp的,此时的主类,是org.apache.flink.client.cli.CliFrontend,这种方式,环境变量在传递的时候,会丢吧?
>
> zilong xiao  于2020年8月25日周二 下午5:32写道:
>
> > 1:想加入跟业务相关的字段,例如jobId,jobName,可以继承PatternLayout,重写doLayout即可,在方法中对日志进行填充
> > 2:这些属性有办法可以从环境变量中获取
> >
> > Jim Chen  于2020年8月25日周二 下午4:49写道:
> >
> > > 大家好:
> > > 我们在做flink的日志收集到kafak时,使用的logback日志配置文件,目前的pattern是%d{-MM-dd
> > > HH:mm:ss.SSS} [%thread] %-5level %logger{60} -
> > > %msg,有没有什么办法在里面加入每个job的id,name或者tasknamanger的主机名之类的信息啊。在做ELK的时候,方便查询。
> > > 这个配置文件,是整个项目的,是基于Yarn的per job模式,难道每个主类打包的时候,都要改动不同的logbakc配置文件吗?
> > >
> >
>


Re: 关于flink任务的日志收集到kafka,可以在logback配置文件中,加如每个job的id或者name吗?

2020-08-27 文章 zilong xiao
想确认下你是用什么方式提交作业呢?是CLI吗?

Jim Chen  于2020年8月27日周四 下午6:13写道:

> 如果是自动以PatternLayout的话,我有几点疑问:
>
> 1、logback加载时机的问题,就是①先会运行logback相关类,②再执行你自定义的PatternLayout,③再去执行你的主类,在②的时候,此时还没法确定具体的启动类是啥,这种方式没法根据job动态变化
>
> 如果使用env的话
> 1、配置环境变量的话,如果yarn有10个节点。那么每台是不是都要配置一下
> 2、因为是每个job都要传递,所以,这个应该是临时的环境变量吧
> 3、如果是配置的临时环境变量的话,那么在执行bin/flink run的时候,shell中是执行java
> -cp的,此时的主类,是org.apache.flink.client.cli.CliFrontend,这种方式,环境变量在传递的时候,会丢吧?
>
> zilong xiao  于2020年8月25日周二 下午5:32写道:
>
> > 1:想加入跟业务相关的字段,例如jobId,jobName,可以继承PatternLayout,重写doLayout即可,在方法中对日志进行填充
> > 2:这些属性有办法可以从环境变量中获取
> >
> > Jim Chen  于2020年8月25日周二 下午4:49写道:
> >
> > > 大家好:
> > > 我们在做flink的日志收集到kafak时,使用的logback日志配置文件,目前的pattern是%d{-MM-dd
> > > HH:mm:ss.SSS} [%thread] %-5level %logger{60} -
> > > %msg,有没有什么办法在里面加入每个job的id,name或者tasknamanger的主机名之类的信息啊。在做ELK的时候,方便查询。
> > > 这个配置文件,是整个项目的,是基于Yarn的per job模式,难道每个主类打包的时候,都要改动不同的logbakc配置文件吗?
> > >
> >
>


Re: 关于flink任务的日志收集到kafka,可以在logback配置文件中,加如每个job的id或者name吗?

2020-08-27 文章 Jim Chen
如果是自动以PatternLayout的话,我有几点疑问:
1、logback加载时机的问题,就是①先会运行logback相关类,②再执行你自定义的PatternLayout,③再去执行你的主类,在②的时候,此时还没法确定具体的启动类是啥,这种方式没法根据job动态变化

如果使用env的话
1、配置环境变量的话,如果yarn有10个节点。那么每台是不是都要配置一下
2、因为是每个job都要传递,所以,这个应该是临时的环境变量吧
3、如果是配置的临时环境变量的话,那么在执行bin/flink run的时候,shell中是执行java
-cp的,此时的主类,是org.apache.flink.client.cli.CliFrontend,这种方式,环境变量在传递的时候,会丢吧?

zilong xiao  于2020年8月25日周二 下午5:32写道:

> 1:想加入跟业务相关的字段,例如jobId,jobName,可以继承PatternLayout,重写doLayout即可,在方法中对日志进行填充
> 2:这些属性有办法可以从环境变量中获取
>
> Jim Chen  于2020年8月25日周二 下午4:49写道:
>
> > 大家好:
> > 我们在做flink的日志收集到kafak时,使用的logback日志配置文件,目前的pattern是%d{-MM-dd
> > HH:mm:ss.SSS} [%thread] %-5level %logger{60} -
> > %msg,有没有什么办法在里面加入每个job的id,name或者tasknamanger的主机名之类的信息啊。在做ELK的时候,方便查询。
> > 这个配置文件,是整个项目的,是基于Yarn的per job模式,难道每个主类打包的时候,都要改动不同的logbakc配置文件吗?
> >
>


Re: 关于flink任务的日志收集到kafka,可以在logback配置文件中,加如每个job的id或者name吗?

2020-08-27 文章 Jim Chen
如果使用env的话,我有几点疑问:
1、配置环境变量的话,如果yarn有10个节点。那么每台是不是都要配置一下
2、因为是每个job都要传递,所以,这个应该是临时的环境变量吧
3、如果是配置的临时环境变量的话,那么在执行bin/flink run的时候,shell中是执行java
-cp的,此时的主类,是org.apache.flink.client.cli.CliFrontend,这种方式,环境变量在传递的时候,会丢吧?

Yang Wang  于2020年8月26日周三 上午10:17写道:

> 我建议可以通env的方式传,在logback或者log4j配置中直接引用相应的env
>
> 例如,可以通过如下两个配置传递clusterId到环境变量
> containerized.master.env.clusterId=my-flink-cluster
> containerized.taskmanager.env.clusterId=my-flink-cluster
>
> 另外,也有一些内置的环境变量可以来使用
> _FLINK_CONTAINER_ID
> _FLINK_NODE_ID
>
>
> Best,
> Yang
>
> zilong xiao  于2020年8月25日周二 下午5:32写道:
>
> > 1:想加入跟业务相关的字段,例如jobId,jobName,可以继承PatternLayout,重写doLayout即可,在方法中对日志进行填充
> > 2:这些属性有办法可以从环境变量中获取
> >
> > Jim Chen  于2020年8月25日周二 下午4:49写道:
> >
> > > 大家好:
> > > 我们在做flink的日志收集到kafak时,使用的logback日志配置文件,目前的pattern是%d{-MM-dd
> > > HH:mm:ss.SSS} [%thread] %-5level %logger{60} -
> > > %msg,有没有什么办法在里面加入每个job的id,name或者tasknamanger的主机名之类的信息啊。在做ELK的时候,方便查询。
> > > 这个配置文件,是整个项目的,是基于Yarn的per job模式,难道每个主类打包的时候,都要改动不同的logbakc配置文件吗?
> > >
> >
>


Re: 关于flink任务的日志收集到kafka,可以在logback配置文件中,加如每个job的id或者name吗?

2020-08-25 文章 Yang Wang
我建议可以通env的方式传,在logback或者log4j配置中直接引用相应的env

例如,可以通过如下两个配置传递clusterId到环境变量
containerized.master.env.clusterId=my-flink-cluster
containerized.taskmanager.env.clusterId=my-flink-cluster

另外,也有一些内置的环境变量可以来使用
_FLINK_CONTAINER_ID
_FLINK_NODE_ID


Best,
Yang

zilong xiao  于2020年8月25日周二 下午5:32写道:

> 1:想加入跟业务相关的字段,例如jobId,jobName,可以继承PatternLayout,重写doLayout即可,在方法中对日志进行填充
> 2:这些属性有办法可以从环境变量中获取
>
> Jim Chen  于2020年8月25日周二 下午4:49写道:
>
> > 大家好:
> > 我们在做flink的日志收集到kafak时,使用的logback日志配置文件,目前的pattern是%d{-MM-dd
> > HH:mm:ss.SSS} [%thread] %-5level %logger{60} -
> > %msg,有没有什么办法在里面加入每个job的id,name或者tasknamanger的主机名之类的信息啊。在做ELK的时候,方便查询。
> > 这个配置文件,是整个项目的,是基于Yarn的per job模式,难道每个主类打包的时候,都要改动不同的logbakc配置文件吗?
> >
>


Re: 关于flink任务的日志收集到kafka,可以在logback配置文件中,加如每个job的id或者name吗?

2020-08-25 文章 zilong xiao
1:想加入跟业务相关的字段,例如jobId,jobName,可以继承PatternLayout,重写doLayout即可,在方法中对日志进行填充
2:这些属性有办法可以从环境变量中获取

Jim Chen  于2020年8月25日周二 下午4:49写道:

> 大家好:
> 我们在做flink的日志收集到kafak时,使用的logback日志配置文件,目前的pattern是%d{-MM-dd
> HH:mm:ss.SSS} [%thread] %-5level %logger{60} -
> %msg,有没有什么办法在里面加入每个job的id,name或者tasknamanger的主机名之类的信息啊。在做ELK的时候,方便查询。
> 这个配置文件,是整个项目的,是基于Yarn的per job模式,难道每个主类打包的时候,都要改动不同的logbakc配置文件吗?
>


关于flink任务的日志收集到kafka,可以在logback配置文件中,加如每个job的id或者name吗?

2020-08-25 文章 Jim Chen
大家好:
我们在做flink的日志收集到kafak时,使用的logback日志配置文件,目前的pattern是%d{-MM-dd
HH:mm:ss.SSS} [%thread] %-5level %logger{60} -
%msg,有没有什么办法在里面加入每个job的id,name或者tasknamanger的主机名之类的信息啊。在做ELK的时候,方便查询。
这个配置文件,是整个项目的,是基于Yarn的per job模式,难道每个主类打包的时候,都要改动不同的logbakc配置文件吗?