kafka + elk 日志收集系统

闲来无事,之前用es的时候,看到elk这个东西,不知道这是什么东西,后面发现这是一个统一收集日志的东西,刚好最近有这个需求,就研究一下,目前是只搭建了一个简单的单点工程,差不多架构图是这样的。当然去掉kafka这一层也是可以的。

因为之前在学习log4j2,然后看到里面的kafka配件,顺便就想直接把log4j2直接发送到kafka里面好了。

所以大致有以下架构图

这里写图片描述

当然 ,通过app直连Logstash也是可以的,只不过如果分布在不同的机器上面,需要配置多个LogStash.当然熟练度高了也是可以的。

我的配件的版本有点不一样,是在windows环境上面。

配件 版本
log4j2 2.x.x
kafka 0.10.2.0
Logstash 6.1.3
ElasticSearch 5.4.1
Kibana 5.4.2

配置文件
log4j2.xml

<Appenders>
        <Kafka name="kafka" topic="log-test">
            <PatternLayout>
                <pattern>%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} %L - %msg%n</pattern>
            </PatternLayout>
            <Property name="bootstrap.servers">localhost:9092</Property>
        </Kafka>
    </Appenders>

logstash.conf放入logstash对应的config目录下面

input {
      kafka {
        bootstrap_servers => ["127.0.0.1:9092"]
        group_id => "logstash1"
        client_id => "logstash1:::one"
        auto_offset_reset => "earliest"
        topics => ["log-test"]
   }
}

output {
  stdout {
   codec => rubydebug { }
  }

  elasticsearch {
    hosts => "127.0.0.1"
    index => "log-%{+YYYY.MM.dd}"
  }
}

其他插件配置都是默认配置

ELK 集群的搭建,网上已经多如牛毛。

启动命令

## kafka.bat
cd /d G:\kafka\kafka
.\bin\windows\kafka-server-start.bat .\config\server.properties

## es.bat
cd /d G:\elk\elasticsearch-5.4.1
.\bin\elasticsearch.bat

## logstash.bat
cd /d G:\elk\logstash-6.1.2\bin
logstash -f ../config/logstash.conf

## kibana.bat
cd /d G:\elk\kibana-5.4.2-windows-x86
./bin/kibana.bat

猜你喜欢

转载自blog.csdn.net/u013076044/article/details/79246286