闲来无事,之前用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 集群的搭建,网上已经多如牛毛。
启动命令
扫描二维码关注公众号,回复:
239392 查看本文章
## 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