使用flume抓取tomcat的日志文件下沉到kafka消费

Tomcat生产日志

Flume抓取日志下沉到kafka中

  1. 将写好的web项目打包成war包,eclise直接导出export,IDEA 在artifact中添加新的artifact-achieve项,选择web项目所在目录,再build即可
  2. 在Linux的Tomcat  Webapp目录下放入war包,在bin下启动Tomcat时,war包会自动解压,然后从浏览器访问,注意是http://bigdata2:8080/WebAnalysis_war/ 的形式 host:8080/+项目文件名
  3. 配置flume的conf文件如下,直接抓取到kafka

agent.sinks = k1

agent.sources = s1

agent.sources = s1

agent.channels = c1

agent.sinks = k1

agent.sources.s1.type=exec

agent.sources.s1.command=tail -F /home/bigdata/weblogs/access.log

agent.sources.s1.channels=c1

agent.channels.c1.type=memory

agent.channels.c1.capacity=10000

agent.channels.c1.transactionCapacity=100

#设置Kafka接收器

agent.sinks.k1.type= org.apache.flume.sink.kafka.KafkaSink

#设置Kafka的broker地址和端口

agent.sinks.k1.brokerList=bigdata3:9092

#设置Kafka的Topic

agent.sinks.k1.topic=kafkatest

#设置序列化方式

agent.sinks.k1.serializer.class=kafka.serializer.StringEncoder

agent.sinks.k1.channel=c1

启动flume

flume-ng agent -c conf -f /home/bigdata/flumeconf/log_kafka.log -n agent  -Dflume.root.logger=INFO,console

  1. 启动kafka

./kafka-server-start.sh -daemon ../config/server.properties

如果没有创建该topic则新建topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic kafkatest

启动消费者

./kafka-console-consumer.sh --zookeeper bigdata3:2181 --topic kafkatest --from beginning

  1. 在JSP上点击添加日志文件内容,在Kafka中就可以消费的到
  2. 解决中文乱码问题

1修改tomcat的server.xml文件:

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>

2表单中文乱码,在<%@ page %>下加一句<% request.setCharacterEncoding("utf-8");%>

或在servlet中添加request.setCharacterEncoding("utf-8")

原文地址:https://www.cnblogs.com/schoolbag/p/8654833.html

时间: 2024-08-25 00:00:53

使用flume抓取tomcat的日志文件下沉到kafka消费的相关文章

使用Apache Flume抓取数据(1)

使用Apache Flume抓取数据,怎么来抓取呢?不过,在了解这个问题之前,我们必须明确ApacheFlume是什么? 一.什么是Apache Flume Apache Flume是用于数据采集的高性能系统 ,名字来源于原始的近乎实时的日志数据采集工具,现在广泛用于任何流事件数据的采集,支持从很多数据源聚合数据到HDFS. 最初由Cloudera开发 ,在2011年贡献给了Apache基金会 ,在2012年变成了Apache的顶级项目,Flume OG升级换代成了Flume NG. Flume

PHP利用Curl实现多线程抓取网页和下载文件

PHP 利用 Curl  可以完成各种传送文件操作,比如模拟浏览器发送GET,POST请求等等,然而因为php语言本身不支持多线程,所以开发爬虫程序效率并不高,一般采集 数据可以利用 PHPquery类来采集数据库,在此之外也可以用 Curl ,借助Curl 这个功能实现并发多线程的访问多个url地址以实现并发多线程抓取网页或者下载文件. 至于具体实现过程,请参考下面几个例子: 1.实现抓取多个URL并将内容写入指定的文件 $urls = array( '路径地址', '路径地址', '路径地址

Python抓取网页&amp;批量下载文件方法初探(正则表达式+BeautifulSoup) (转)

Python抓取网页&批量下载文件方法初探(正则表达式+BeautifulSoup) 最近两周都在学习Python抓取网页方法,任务是批量下载网站上的文件.对于一个刚刚入门python的人来说,在很多细节上都有需要注意的地方,以下就分享一下我在初学python过程中遇到的问题及解决方法. 一.用Python抓取网页 基本方法: [python] view plaincopyprint? import urllib2,urllib url = 'http://www.baidu.com' req 

Linux高级调试与优化——同时抓取coredump和maps文件

Linux内核源码 Documentation/sysctl/kernel.txt core_pattern: core_pattern: core_pattern is used to specify a core dumpfile pattern name. . max length 128 characters; default value is "core" . core_pattern is used as a pattern template for the output

抓取Android端日志

背景:ADT-Bundlee for Windows 是由GoogleAndroid官方提供的集成式IDE,已经包含了Eclipse,你无需再去下载Eclipse,并且里面已集成了插件,它解决大部分新手通过eclipse来配置Android开发环境的复杂问题.有了ADT-Bundle,新涉足安卓开发的同学也无需再像以前那样在网上参考繁琐的配置教程,可以轻松一步到位进行Android应用开发.下面给大家附上下载地址:网盘地址:链接:http://pan.baidu.com/s/1miwVZxI 密

shell命令curl抓取网页内容-下载xls文件

通过curl命令抓取网页内容,关键点如下: 1.curl要模拟浏览器,最好是有个代理,因为很多站点都会搞个反爬虫什么的. 2.我的需求很简单,就是在国家外汇管理局上下载各种货币对美元的汇率. http://www.safe.gov.cn/wps/portal/sy/tjsj_dmzsl 3.主要命令:curl,grep,awk,xls2txt,msql(LOAD DATA ). curl:提取url xls2txt:shell下的xls操作命令 xls2txt-0.14.tar.gz 下载地址:

抓取网页数据C#文件

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using System.Collections.Generic;using System.Text.RegularExpressions;using System.Text; using System.Net; using System.IO; namespace WebJSON.Contro

随笔-tomcat的日志文件按日期每天生成

在server.xml里加上<host>节点后面加上 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"               prefix="localhost_access_log." suffix=".txt"               pattern="%h %l %u %t &q

Java学习-046-日志抓取合并后排序问题解决方案之 --- log4j 二次定制,实现日志输出添加延时10ms

自3月25至今,已经好久没有写学习日志了,今天在写日志抓取合并的小方法,发现抓取后的日志并米有依据系统执行的日志顺序排序.日志抓取排列逻辑如下: 通过日志标识,从各个日志文件(例如 use.log,error.log 等)中获取所需日志列表 合并日志列表 升序排序 输出日志报告 结果最后获取日志信息后,发现实际产出结果与预期结果不相符,如下所示: 1 2016-04-10 22:54:23,042 - INFO - [main] [cn.ffp.autotest.api.report.Repor