flume日志实时同步
参考:
flume简介:https://blog.csdn.net/sunqingok/article/details/88636948
flume部署:https://blog.csdn.net/volitationlong/article/details/82186379
flume配置详解:https://www.cnblogs.com/qingyunzong/p/8996155.html
flume配置详解:https://blog.csdn.net/qq_33598343/article/details/88394101
flume配置参数详解:https://blog.csdn.net/qq_41587243/article/details/80454628
flume部署路径及使用
1.flume程序部署在192.164.58.6-192.164.58.13及192.164.58.18,其中192.164.58.18是服务端,其他机器为客户端,客户端上的日志向服务端实时同步。
所有flume程序部署在/home/work/flume/apache-flume 路径下,服务端存放日志路径/home/work/flume/log_data/* 默认一小时分割一个文件。
2.flume启动,切到/home/work/flume/apache-flume/conf路径下
红框中为配置文件,分别采集nginx的access error日志,和PHP的error,fpm-slow日志及java服务日志。
执行 当前目录下的start-flume.sh <conf_name> 例如:./start-flume.sh accesslog, 即可启动对应配置文件。 切记一定要先启动服务端后启动客户端。
服务端flume程序
客户端flume程序
配置及启动脚本
客户端(6,7,8,9,10,11,12,13上)配置如下:
新建了5个配置文件和1个脚本:[work@localhost ~]$ cd /home/work/flume/apache-flume/conf/[work@localhost conf]$ lsflume-accesslog.conf flume-errorlog.conf log4j.propertiesflume-conf.properties.template flume-javaconsolelog.conf start-flume.shflume-env.ps1.template flume-phperrorlog.confflume-env.sh.template flume-phpfpmslowlog.conf一个一个看:第一个:[work@localhost conf]$ cat flume-accesslog.confaccesslog.sources=sc1 #accesslog相当于一个配置单元,这个单元的数据源命名为sc1accesslog.sinks=sk1 #这个单元的发送命名为sk1accesslog.channels=ch1 #这个单元的缓存命名为ch1accesslog.sources.sc1.type=exec #这一段是sc1的描述。sc1的类型为执行命令accesslog.sources.sc1.channels=ch1 #sc1的缓存为ch1accesslog.sources.sc1.command=tail -F /home/work/odp/log/access_log #sc1的命令为追踪access_logaccesslog.sources.sc1.shell=/bin/sh -c #sc1的shell由谁执行accesslog.sinks.sk1.type=avro #这一段是sk1的描述。sk1的类型为avro,即发送一个指定的文件accesslog.sinks.sk1.hostname=192.164.58.18 #sk1要发送的目的主机accesslog.sinks.sk1.port=4140 #sk1要发送的目的主机端口accesslog.sinks.sk1.channel=ch1 #sk1的缓存accesslog.channels.ch1.type=file #这一段是ch1的描述。ch1的类型为文件accesslog.channels.ch1.checkpointDir=/home/work/flume/log_data/accesslog/checkpoint_udp #ch1的检查点目录accesslog.channels.ch1.dataDirs=/home/work/flume/log_data/accesslog/data_udp #ch1的数据目录accesslog.channels.ch1.keep-alive=120 第二个:[work@localhost conf]$ cat flume-errorlog.conferrorlog.sources=sc1errorlog.sinks=sk1errorlog.channels=ch1errorlog.sources.sc1.type=execerrorlog.sources.sc1.channels=ch1errorlog.sources.sc1.command=tail -F /home/work/odp/log/error_logerrorlog.sources.sc1.shell=/bin/sh -cerrorlog.sinks.sk1.type=avroerrorlog.sinks.sk1.hostname=192.164.58.18errorlog.sinks.sk1.port=4141errorlog.sinks.sk1.channel=ch1errorlog.channels.ch1.type=fileerrorlog.channels.ch1.checkpointDir=/home/work/flume/log_data/errorlog/checkpoint_udperrorlog.channels.ch1.dataDirs=/home/work/flume/log_data/errorlog/data_udperrorlog.channels.ch1.keep-alive=120第三个:[work@localhost conf]$ cat flume-phpfpmslowlog.confphpfpmslowlog.sources=sc1phpfpmslowlog.sinks=sk1phpfpmslowlog.channels=ch1phpfpmslowlog.sources.sc1.type=execphpfpmslowlog.sources.sc1.channels=ch1phpfpmslowlog.sources.sc1.command=tail -F /home/work/odp/log/php/php-fpm-slow.logphpfpmslowlog.sources.sc1.shell=/bin/sh -cphpfpmslowlog.sinks.sk1.type=avrophpfpmslowlog.sinks.sk1.hostname=192.164.58.18phpfpmslowlog.sinks.sk1.port=4142phpfpmslowlog.sinks.sk1.channel=ch1phpfpmslowlog.channels.ch1.type=filephpfpmslowlog.channels.ch1.checkpointDir=/home/work/flume/log_data/phpfpmslowlog/checkpoint_udpphpfpmslowlog.channels.ch1.dataDirs=/home/work/flume/log_data/phpfpmslowlog/data_udpphpfpmslowlog.channels.ch1.keep-alive=120第四个:[work@localhost conf]$ cat flume-phperrorlog.confphperrorlog.sources=sc1phperrorlog.sinks=sk1phperrorlog.channels=ch1phperrorlog.sources.sc1.type=execphperrorlog.sources.sc1.channels=ch1phperrorlog.sources.sc1.command=tail -F /home/work/odp/log/php/php-fpm.logphperrorlog.sources.sc1.shell=/bin/sh -cphperrorlog.sinks.sk1.type=avrophperrorlog.sinks.sk1.hostname=192.164.58.18phperrorlog.sinks.sk1.port=4143phperrorlog.sinks.sk1.channel=ch1phperrorlog.channels.ch1.type=filephperrorlog.channels.ch1.checkpointDir=/home/work/flume/log_data/phperrorlog/checkpoint_udpphperrorlog.channels.ch1.dataDirs=/home/work/flume/log_data/phperrorlog/data_udpphperrorlog.channels.ch1.keep-alive=120第五个:[work@localhost conf]$ cat flume-javaconsolelog.confjavaconsolelog.sources=sc1javaconsolelog.sinks=sk1javaconsolelog.channels=ch1javaconsolelog.sources.sc1.type=execjavaconsolelog.sources.sc1.channels=ch1javaconsolelog.sources.sc1.command=tail -F /home/work/auth/log/console.logjavaconsolelog.sources.sc1.shell=/bin/sh -cjavaconsolelog.sinks.sk1.type=avrojavaconsolelog.sinks.sk1.hostname=192.164.58.18javaconsolelog.sinks.sk1.port=4144javaconsolelog.sinks.sk1.channel=ch1javaconsolelog.channels.ch1.type=filejavaconsolelog.channels.ch1.checkpointDir=/home/work/flume/log_data/javaconsolelog/checkpoint_udpjavaconsolelog.channels.ch1.dataDirs=/home/work/flume/log_data/javaconsolelog/data_udpjavaconsolelog.channels.ch1.keep-alive=120第六个:[work@localhost conf]$ cat start-flume.sh#!/bin/bashcd `dirname $0`pwdif [ $# -lt 1 ];then echo "Usage: $0 {agent type}" exit 1ficase "$1" in a1|accesslog|errorlog|javaconsolelog|phpfpmslowlog|phperrorlog) ;; *) echo "not supported agent type [$1]" exit 1 ;;esacflume-ng agent -c . -f flume-$1.conf -n $1 -Dflume.root.logger=INFO,console > /home/work/flume/apache-flume/logs/flume-$1.log 2>&1 &注:上面脚本日志输出到如下文件:[work@control conf]$ ls ../logs/flume-accesslog.log flume-javaconsolelog.log flume-phpfpmslowlog.logflume-errorlog.log flume-phperrorlog.log上面脚本运行后,如下文件自动生成:[work@localhost ~]$ ls /home/work/flume/log_data/accesslog/checkpoint_udp data_udp |
服务端(18上)5个配置文件不同,脚本和上面是一样的:
[work@control ~]$ cd /home/work/flume/apache-flume/conf/[work@control conf]$ lsflume-accesslog.conf flume-env.sh.template flume-phpfpmslowlog.confflume-conf.properties.template flume-errorlog.conf flume-tailaccesslog-avro.congflume-env.ps1.template flume-javaconsolelog.conf log4j.propertiesflume-env.sh flume-phperrorlog.conf start-flume.sh第一个:[work@control conf]$ cat flume-accesslog.confaccesslog.sources = r1 accesslog.sinks = k1accesslog.channels = c1# Describe/configure the source accesslog.sources.r1.type = avro accesslog.sources.r1.channels = c1accesslog.sources.r1.bind = 0.0.0.0 #因为服务端收集的是多台代理机器。如果改成单个机器也会报错,尚不知原因?accesslog.sources.r1.port = 4140# Describe the sink #这是一段sink的描述accesslog.sinks.k1.type = file_roll #k1类型为滚动文件accesslog.sinks.k1.sink.directory = /home/work/flume/log_data/accesslog/ #k1的目录accesslog.sinks.k1.sink.rollInterval = 3600 #k1滚动间隔为3600saccesslog.sinks.k1.batchSize = 1000 #k1大小为1000Gaccesslog.channels.c1.type = file accesslog.channels.c1.checkpointDir = /home/work/flume/log_data/accesslog/checkpoint_udpaccesslog.channels.c1.dataDirs = /home/work/flume/log_data/accesslog/data_udp# Bind the source and sink to the channel #把源和发送绑定到缓存。因为18机器既是server又是agent,当它自己给自己发送时,这样配置?accesslog.sources.r1.channels = c1 #r1的缓存为c1accesslog.sinks.k1.channel = c1 #k1的缓存为c1第二个:[work@control conf]$ cat flume-errorlog.conferrorlog.sources = r1errorlog.sinks = k1errorlog.channels = c1# Describe/configure the sourceerrorlog.sources.r1.type = avroerrorlog.sources.r1.channels = c1errorlog.sources.r1.bind = 0.0.0.0errorlog.sources.r1.port = 4141# Describe the sinkerrorlog.sinks.k1.type = file_rollerrorlog.sinks.k1.sink.directory = /home/work/flume/log_data/errorlog/errorlog.sinks.k1.sink.rollInterval = 3600errorlog.sinks.k1.batchSize = 1000errorlog.channels.c1.type = fileerrorlog.channels.c1.checkpointDir = /home/work/flume/log_data/errorlog/checkpoint_udperrorlog.channels.c1.dataDirs = /home/work/flume/log_data/errorlog/data_udp# Bind the source and sink to the channelerrorlog.sources.r1.channels = c1errorlog.sinks.k1.channel = c1第三个:[work@control conf]$ cat flume-phpfpmslowlog.confphpfpmslowlog.sources = r1phpfpmslowlog.sinks = k1phpfpmslowlog.channels = c1# Describe/configure the sourcephpfpmslowlog.sources.r1.type = avrophpfpmslowlog.sources.r1.channels = c1phpfpmslowlog.sources.r1.bind = 0.0.0.0phpfpmslowlog.sources.r1.port = 4142# Describe the sinkphpfpmslowlog.sinks.k1.type = file_rollphpfpmslowlog.sinks.k1.sink.directory = /home/work/flume/log_data/phpfpmslowlog/phpfpmslowlog.sinks.k1.sink.rollInterval = 3600phpfpmslowlog.sinks.k1.batchSize = 1000phpfpmslowlog.channels.c1.type = filephpfpmslowlog.channels.c1.checkpointDir = /home/work/flume/log_data/phpfpmslowlog/checkpoint_udpphpfpmslowlog.channels.c1.dataDirs = /home/work/flume/log_data/phpfpmslowlog/data_udp# Bind the source and sink to the channelphpfpmslowlog.sources.r1.channels = c1第四个:[work@control conf]$ cat flume-phperrorlog.confphperrorlog.sources = r1phperrorlog.sinks = k1phperrorlog.channels = c1# Describe/configure the sourcephperrorlog.sources.r1.type = avrophperrorlog.sources.r1.channels = c1phperrorlog.sources.r1.bind = 0.0.0.0phperrorlog.sources.r1.port = 4143# Describe the sinkphperrorlog.sinks.k1.type = file_rollphperrorlog.sinks.k1.sink.directory = /home/work/flume/log_data/phperrorlog/phperrorlog.sinks.k1.sink.rollInterval = 3600phperrorlog.sinks.k1.batchSize = 1000phperrorlog.channels.c1.type = filephperrorlog.channels.c1.checkpointDir = /home/work/flume/log_data/phperrorlog/checkpoint_udpphperrorlog.channels.c1.dataDirs = /home/work/flume/log_data/phperrorlog/data_udp# Bind the source and sink to the channelphperrorlog.sources.r1.channels = c1phperrorlog.sinks.k1.channel = c1第五个:[work@control conf]$ cat flume-javaconsolelog.confjavaconsolelog.sources = r1javaconsolelog.sinks = k1javaconsolelog.channels = c1# Describe/configure the sourcejavaconsolelog.sources.r1.type = avrojavaconsolelog.sources.r1.channels = c1javaconsolelog.sources.r1.bind = 0.0.0.0javaconsolelog.sources.r1.port = 4144# Describe the sinkjavaconsolelog.sinks.k1.type = file_rolljavaconsolelog.sinks.k1.sink.directory = /home/work/flume/log_data/javaconsolelog/javaconsolelog.sinks.k1.sink.rollInterval = 3600javaconsolelog.sinks.k1.batchSize = 1000javaconsolelog.channels.c1.type = filejavaconsolelog.channels.c1.checkpointDir = /home/work/flume/log_data/javaconsolelog/checkpoint_udpjavaconsolelog.channels.c1.dataDirs = /home/work/flume/log_data/javaconsolelog/data_udp# Bind the source and sink to the channeljavaconsolelog.sources.r1.channels = c1javaconsolelog.sinks.k1.channel = c1第六个(是一样的):[work@control conf]$ cat start-flume.sh#!/bin/bashcd `dirname $0`pwdif [ $# -lt 1 ];then echo "Usage: $0 {agent type}" exit 1ficase "$1" in a1|accesslog|errorlog|javaconsolelog|phperrorlog|phpfpmslowlog) ;; *) echo "not supported agent type [$1]" exit 1 ;;esacflume-ng agent -c . -f flume-$1.conf -n $1 -Dflume.root.logger=INFO,console > /home/work/flume/apache-flume/logs/flume-$1.log 2>&1 &注:上面脚本日志输出到如下文件:[work@control conf]$ ls ../logs/flume-accesslog.log flume-javaconsolelog.log flume-phpfpmslowlog.logflume-errorlog.log flume-phperrorlog.log上面脚本运行后,如下文件自动生成(日志就存在这里):[work@control ~]$ ls /home/work/flume/log_data/accesslog/1577683847875-1 1577683847875-122 1577683847875-31 1577683847875-55 1577683847875-791577683847875-10 1577683847875-123 1577683847875-32 1577683847875-56 1577683847875-81577683847875-100 1577683847875-124 1577683847875-33 1577683847875-57 1577683847875-801577683847875-101 1577683847875-125 1577683847875-34 1577683847875-58 1577683847875-811577683847875-102 1577683847875-126 1577683847875-35 1577683847875-59 1577683847875-821577683847875-103 1577683847875-127 1577683847875-36 1577683847875-6 1577683847875-831577683847875-104 1577683847875-13 1577683847875-37 1577683847875-60 1577683847875-841577683847875-105 1577683847875-14 1577683847875-38 1577683847875-61 1577683847875-851577683847875-106 1577683847875-15 1577683847875-39 1577683847875-62 1577683847875-861577683847875-107 1577683847875-16 1577683847875-4 1577683847875-63 1577683847875-871577683847875-108 1577683847875-17 1577683847875-40 1577683847875-64 1577683847875-881577683847875-109 1577683847875-18 1577683847875-41 1577683847875-65 1577683847875-891577683847875-11 1577683847875-19 1577683847875-42 1577683847875-66 1577683847875-91577683847875-110 1577683847875-2 1577683847875-43 1577683847875-67 1577683847875-901577683847875-111 1577683847875-20 1577683847875-44 1577683847875-68 1577683847875-911577683847875-112 1577683847875-21 1577683847875-45 1577683847875-69 1577683847875-921577683847875-113 1577683847875-22 1577683847875-46 1577683847875-7 1577683847875-931577683847875-114 1577683847875-23 1577683847875-47 1577683847875-70 1577683847875-941577683847875-115 1577683847875-24 1577683847875-48 1577683847875-71 1577683847875-951577683847875-116 1577683847875-25 1577683847875-49 1577683847875-72 1577683847875-961577683847875-117 1577683847875-26 1577683847875-5 1577683847875-73 1577683847875-971577683847875-118 1577683847875-27 1577683847875-50 1577683847875-74 1577683847875-981577683847875-119 1577683847875-28 1577683847875-51 1577683847875-75 1577683847875-991577683847875-12 1577683847875-29 1577683847875-52 1577683847875-76 checkpoint_udp1577683847875-120 1577683847875-3 1577683847875-53 1577683847875-77 data_udp1577683847875-121 1577683847875-30 1577683847875-54 1577683847875-78 |





浙公网安备 33010602011771号