整个数据流示例如图:
1,Tomcat,Filebeat,ES,Kibana安装
这些软件的安装配置可以参考之前的文章:
Filebeat,ES,Kibana:
Tomcat+Filebeat+logstash+ES+Kibana日志监控配置(待续)_yangkei的博客-CSDN博客
Lostash安装请参考:Logstash8.4在Linux系统上的安装以及配置Tomcat日志(ELK安装part2)_yangkei的博客-CSDN博客
Kafka集群安装:
Kafka3.2.3基于Linux的集群安装(待续)_yangkei的博客-CSDN博客
2, 配置Filebeat
vi /app/filebeat/filebeat.kafka.yml
filebeat.prospectors:
- type: log
enabled: true
paths:
- /app/tomcat/logs/tomcat_access_json.2022-09-23.log
output.kafka:
enabled: true
hosts: ["192.168.88.5:9092","192.168.88.7:9092","192.168.88.9:9092"]
topic: tomcatlogtest
type 输入类型。设置为log,表示输入源为日志。
enabled 设置配置是否生效:true:生效 false:不生效
paths 需要监控的日志文件的路径。多个日志可在当前路径下另起一行写入日志文件路径。
topic 日志输出到消息队列Kafka的Topic,请指定为您已创建的Topic。
version Kafka的版本,可在消息队列Kafka的实例详情页面获取。
不配置此参数会报错。
由于不同版本的Filebeat支持的Kafka版本不同,例如8.2及以上版本的Filebeat支持的Kafka版本为2.2.0,因此version需要设置为Filebeat支持的Kafka版本,否则会出现类似报错:Exiting: error initializing publisher: unknown/unsupported kafka vesion '2.2.0' accessing 'output.kafka.version' (source:'filebeat.kafka.yml'),详细信息请参见version。
修改权限:
chmod go-w /app/filebeat/filebeat.kafka.yml
3, 配置Kafka
创建主题:tomcatlogtest
[root@goya2 kafka]# /app/kafka/bin/kafka-topics.sh --create --topic tomcatlogtest --partitions 1 --replication-factor 3 --bootstrap-server goya1:9092,goya2:9092,goya3:9092
Created topic tomcatlogtest.
启动Filebeat
cd /app/filebeat
./filebeat -e -c filebeat.kafka.yml
4,配置Logstash
vi /app/logstash/config/tomcatlogtest.conf
input {
#kafka输入源配置
kafka {
#kafka集群地址
bootstrap_servers => ["192.168.88.5:9092,192.168.88.7:9092,192.168.88.9:9092"]
#从kafka中哪个topic读取数据,这里的topic名要与filebeat中使用的topic保持一致
topics => ["tomcatlogtest"] #这是kafka中的消费组者ID,默认值是“logstash”。kafka将消息发到每个消费者组中,同一个组中的消费者收到的数据不重复。例如有两个消费者组G1、G2,G1中有成员A、B,G2中有成员C、D。kafka从输入中收到了10条消息,会将这10条消息同时发送给G1和G2,A和B各会收到这10条消息中的一部分,他们收到消息的并集就是这10条消息,C和D同理。
group_id => "filebeat-logstash"