Docker容器中运行flume及启动不输出运行日志问题
flume配置文件如下:
#Namethecomponentsonthisagent app1.sources=r1 app1.sinks=k1 app1.channels=c1 #Describe/configurethesource app1.sources.r1.type=avro app1.sources.r1.bind=0.0.0.0 app1.sources.r1.port=44444 #Describethesink #a1.sinks.k1.type=logger app1.sinks.k1.type=file_roll app1.sinks.k1.sink.directory=/var/log/my/app1 app1.sinks.k1.sink.rollInterval=86400 app1.sinks.k1.sink.batchSize=100 app1.sinks.k1.sink.serializer=text app1.sinks.k1.sink.serializer.appendNewline=false #Useachannelwhichbufferseventsinmemory app1.channels.c1.type=memory app1.channels.c1.capacity=1000 app1.channels.c1.transactionCapacity=100 app1.channels.c1.byteCapacity=100000000 app1.channels.c1.byteCapacityBufferPercentage=10 #Bindthesourceandsinktothechannel app1.sources.r1.channels=c1 app1.sinks.k1.channel=c1 #Namethecomponentsonthisagent app2.sources=r2 app2.sinks=k2 app2.channels=c2 #Describe/configurethesource app2.sources.r2.type=avro app2.sources.r2.bind=0.0.0.0 app2.sources.r2.port=44445 #Describethesink #a1.sinks.k1.type=logger app2.sinks.k2.type=file_roll app2.sinks.k2.sink.directory=/var/log/my/app2 app2.sinks.k2.sink.rollInterval=86400 app2.sinks.k2.sink.batchSize=100 app2.sinks.k2.sink.serializer=text app2.sinks.k2.sink.serializer.appendNewline=false #Useachannelwhichbufferseventsinmemory app2.channels.c2.type=memory app2.channels.c2.capacity=1000 app2.channels.c2.transactionCapacity=100 app2.channels.c2.byteCapacity=100000000 app2.channels.c2.byteCapacityBufferPercentage=10 #Bindthesourceandsinktothechannel app2.sources.r2.channels=c2 app2.sinks.k2.channel=c2
dockerfile如下:
FROMubuntu:16.04 MAINTAINERXXX"XXX@XXXXX.com" RUNapt-getupdate ADDjdk-8u77-linux-x64.tar.gz/usr/local/java RUNcp/etc/profile/etc/profile.bak ENVJAVA_HOME/usr/local/java/jdk1.8.0_77 ENVPATH$JAVA_HOME/bin:$PATH ENVCLASSPATH.:$JAVA_HOME/lib ADDapache-flume-1.7.0-bin.tar.gz/usr/local/flume RUNapt-getinstall-ytzdata RUNln-sf/usr/share/zoneinfo/Asia/Shanghai/etc/localtime RUNecho"Asia/Shanghai">/etc/timezone RUNdpkg-reconfigure-fnoninteractivetzdata ENVLANGC.UTF-8 WORKDIR/var/log RUNmkdirmy WORKDIR/var/log/my RUNmkdirapp1 RUNmkdirapp2 EXPOSE44444 EXPOSE44445 ENTRYPOINT(/usr/local/flume/apache-flume-1.7.0-bin/bin/flume-ngagent--conf/usr/local/flume/apache-flume-1.7.0-bin/conf-conf-file/usr/local/flume/apache-flume-1.7.0-bin/conf/flume-conf.properties--nameapp1&)&&(/usr/local/flume/apache-flume-1.7.0-bin/bin/flume-ngagent--conf/usr/local/flume/apache-flume-1.7.0-bin/conf-conf-file/usr/local/flume/apache-flume-1.7.0-bin/conf/flume-conf.properties--nameapp2&)&&/bin/bash
下面看下flume启动不输出运行日志
问题
以前碰到的一个问题,算是一个小问题,flume用命令
./flume-ngagent-c/opt/apps/flume/conf-f/opt/apps/flume/conf/syslog_tcp.conf-na1-Dflume.root.logger=INFO,console
启动的时候,flume使用的log4j不起效,不会输出日志到日志文件。
解决
在启动时去掉
-Dflume.root.logger=INFO,console
这个命令就好了。flume的log4j就正常工作了。也算是一个坑。
加上这个命令会将运行的日志在控制台输出。
总结
以上所述是小编给大家介绍的Docker容器中运行flume及启动不输出运行日志问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!