收集了日志后,可以给别的地方做实时计算
很多应用程序使用Log4j记录日志,如何使用Kafka实时的收集与存储这些Log4j产生的日志呢?一种方案是使用其他组件(比如Flume,或者自己开发程序)实时监控这些日志文件,然后发送至Kafka。而另外一种比较便捷的方案是使用Kafka自带的Log4jAppender,在Log4j配置文件中进行相应的配置,即可完成将Log4j产生的日志实时发送至Kafka中。
本文以Kafka0.8.2为例,介绍KafkaLog4jAppender的配置方法:
log4j.properties文件内容如下:
- log4j.rootLogger=INFO,console,KAFKA
- ## appender KAFKA
- log4j.appender.KAFKA=kafka.producer.KafkaLog4jAppender
- log4j.appender.KAFKA.topic=lxw1234
- log4j.appender.KAFKA.brokerList=brokerNode1:9091,brokerNode2:9092
- log4j.appender.KAFKA.compressionType=none
- log4j.appender.KAFKA.syncSend=true
- log4j.appender.KAFKA.layout=org.apache.log4j.PatternLayout
- log4j.appender.KAFKA.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L %% - %m%n
- ## appender console
- log4j.appender.console=org.apache.log4j.ConsoleAppender
- log4j.appender.console.target=System.err
- log4j.appender.console.layout=org.apache.log4j.PatternLayout
- log4j.appender.console.layout.ConversionPattern=%d (%t) [%p - %l] %m%n
注意:KAFKA appender的配置参数,和Kafka版本有关,具体参数可参考kafka.producer. KafkaLog4jAppender中的定义。
一个使用了Log4j记录日志的Java Application Demo:
- package com.lxw1234.kafka;
- import org.apache.log4j.Logger;
- public class TestLog4j2Kafka {
- private static Logger logger = Logger.getLogger(TestLog4j2Kafka.class);
- public static void main(String[] args) throws InterruptedException {
- for(int i = 0;i <= 10; i++) {
- logger.info("This is Message [" + i + "] from log4j producer .. ");
- Thread.sleep(1000);
- }
- }
- }
先启动Kafka自带的consumer模拟脚本,消费Topic lxw1234的消息:
- cd $KAFKA_HOME/bin
- ./kafka-console-consumer.sh --zookeeper localhost:2181 --topic lxw1234 --from-beginning
再运行上面的Java Demo程序,控制台打印的内容:
在Consumer控制台打印消费的消息:
如图所示,KafkaLog4jAppender已经将消息正常发送至Kafka。
http://www.cnblogs.com/gaopeng527/p/5266351.html
相关推荐
先决条件码头工人Docker撰写安装docker-compose up -d使用的依赖Spring启动网Spring Boot log4j2 春天卡夫卡Spring Boot数据Elasticsearch 弹簧启动执行器Sringdoc OpenApi 弹簧启动执行器Spring Boot配置处理器...
log-clientlogclient是基础框架部新开发的一套日志客户端,目前提供了logbcak和log4j2的appender,将日志通过appender写入kafka,然后由一个日志收集器将日志写入elk中。
Logtuc 一个完整的(尽管很简单)的演示应用程序,它使用来自kafka集群的数据(网络日志),并使用最小计数草图来估计各种指标。 估算值将发送到其余的API,然后实时可视化。 为了可视化,也可以使用弹性搜索和...
第四章 Kafka基准测试 第五章 Java编程操作Kafka 5.1 同步生产消息到Kafka中 5.2 从Kafka的topic中消费消息 5.3 异步使用带有回调函数方法生产消息 第六章 架构 6.1 Kafka重要概念 6.2 消费者组 第七章. Kafka生产者...
这是一个大数据实时流处理分析系统 Demo,实现对用户日志的实时分析,采用 Flume + kafka + SparkStreaming + Hbase + SSM + Echarts 的架构。 主要内容包括: 编写 python 脚本,模拟源源不断产生网站的用户行为...
将日志写入本地文件系统 可以将配置作为配置文件提供,也可以选择从Consul获取 可以在Consul中将TCP和RELP侦听器注册为服务 可以通过Javascript函数定义自定义消息解析器和过滤器 可以使用TLS保护与Consul,Kafka或...
通过在运维平台上配置日志收集项,logAgent从etcd中获取要收集的日志信息从业务服务器读取日志信息,发往kafka,logTransfer负责从kafka读取日志,写入到Elasticsearch中,通过Kibana进行日志检索。系统性能数据的...
无入侵的分布式日志系统,基于log4j、log4j2、logback搜集日志,设置链路ID,方便查询关联日志 基于elasticsearch作为查询引擎 高吞吐,查询效率高 全程不占应用程序本地磁盘空间,免维护;对于项目透明,不影响项目...
SyslogTarget 将日志写入 syslog。 安装 安装此扩展的首选方法是通过 。 跑步 php composer.phar require --prefer-dist dmstr/yii2-log "*" 用法 安装扩展后,只需通过以下方式在代码中使用它: 'log' => [ '...
日志 log可以替代std/log并在内部使用日志库的功能。 它实现了以下Zap核心:用法默认情况下使用开发设置。 类似于std/log 。 所有日志均写入stderr。 import "github.com/mattes/log"func main () { defer log . ...
1、无入侵的分布式日志系统,基于log4j、log4j2、logback搜集日志,设置链路ID,方便查询关联日志 2、基于elasticsearch作为查询引擎 3、高吞吐,查询效率高 4、全程不占应用程序本地磁盘空间,免维护;对于项目透明...
这是一个大数据实时流处理分析系统 Demo,实现对用户日志的实时分析,采用 Flume + kafka + SparkStreaming + Hbase + SSM + Echarts 的架构。 主要内容包括: 编写 python 脚本,模拟源源不断产生网站的用户行为...
这样的话,storm才能去消费kafka中的实时的访问日志,然后去进行缓存热数据的统计 用得技术方案非常简单,从lua脚本直接创建一个kafka producer,发送数据到kafka ``` wget ...
快速开始最简单的配置从/ dev / log(从应用程序或systemd转发)接受系统日志,并将所有内容写入单个文件: @version: 3.30@include "scl.conf"log {source { system(); };destination { file("/var/log...
受 Acid-state 和 Kafka 启发的本地事务日志。 交付是严格的先进先出。 消费方式: 每个消费者恰好一次 全球恰好一次 非事务性高吞吐量(至少一次) 以上所有样式都公开了阻塞和非阻塞接口 消费者既可以使用简单...
log4j logback commong logging jdk logger 测试框架 测试框架 junit easymock testng mockito bug管理 禅道 jira 开发工具 编程工具 eclipse myeclipse idea vi VS webstorm sublime text ...
网路应用程式该程序可跟踪对已完成请求的响应时间,并在站点的仪表... 生产者读取日志文件,然后通过kafka将其发送到主题“ LogTopic”。 做了两件事以减少读取日志文件的资源。 首先,添加了python-watchdog ,以便生