filebeat+kakfa+Logstash+es ELK部署

1,343 阅读2分钟

部署方案:filebeat+kafka+logstash+elasticsearch+kibana

Filebeat:轻量级日志采集器

Kafka:高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据

Logstash:实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网

ElasticSearch:分布式多用户能力的全文搜索引擎,基于RESTful web接口

Kibana:ElasticSearch的用户界面

服务器:

应用IP备注
kafka-1kafka集群
kafka-2
kafka-3
kafka-managerkafka管理界面
zookeeper用于发现kafka集群
logstash-12台loagstash消费kafka消息
logstash-2
es-masteres的master节点,日志清理脚本
es-master&datamaster节点和存储节点
es-dataes的存储节点
es-dataes的存储节点
kibana查询界面

应用部署:

1、Filebeat

下载地址:www.elastic.co/downloads/b…  本次采用版本:6.5.4

下载后进行解压,创建配置文件 beat-kafka.yml (默认的配置文件是filebeat.yml)

image.png

Filebeat,配置并不难,只需要配置将空的日志文件全路径和输出端的IP,默认输出是到ElasticSearch,需要调整输出到kafka(避免丢消息),具体配置可以参考:

image.png 启动filebeat: nohup ./filebeat -e -c beat-kafka.yml  > filebeat.log 2>&1 &

2、Kafka

下载地址:kafka.apache.org/downloads  本次采用版本:2.12-2.1.0

下载后进行解压,修改kafka配置文件:server.properties

填写zookeeper地址(用于注册kafka):

image.png 配置kafka的listeners,在集群的过程中,需要保证broker.id唯一,即每台机器的broker.id不能相同

image.png

启动kafka: nohup ./kafka-server-start.sh /apps/svr/kafka/config/server.properties 2>&1 &

验证kafka是否启动正常:

1、新建topic: kafka-topics.sh --create --zookeeper ip:2181 --replication-factor 1 --partitions 1 --topic test

2、检查topic是否生成正确:kafka-topics.sh --list --zookeeper :2181    kafka-topics.sh --describe --zookeeper ip:2181 --topic test

3、创建一个生产者:kafka-console-producer.sh --broker-list  ip:9092 --topic test    然后随便输入一些字符

4、另起一个页面创建一个消费者:kafka-console-consumer.sh --bootstrap-server ip:9092 --topic test --from-beginning   能查看到生产者创建的数据

3、Logstash

下载地址:www.elastic.co/downloads/l…  本次采用版本:6.5.4

下载后进行解压,修改logstash配置文件kafka.conf (默认是logstash-sample.conf),由于日志的过滤和合并已经在filebeat配置,logstash只需要配置input和ouput

image.png 启动logstash: ./logstash -f  ../config/kafka.conf -l /apps/logs/elk/logstash/logs/logstash.out &

input用于配置消息来源(即kafka集群),outpurt用于配置消息输出,输出地址为es的集群

4、Elasticsearch

下载地址:www.elastic.co/downloads/e… 本次采用版本:6.5.4

下载后解压,修改配置文件elasticsearch.yml,其中node.data 和node.master需要注意,node.data为true(存储节点),node.master为true(master节点),两者都不为true(分发节点),

集群情况下需要额外配置transport.tcp.port ,用于内部tcp交流

image.png

启动es:nohup ./elasticsearch 2>&1 &

5、Kibana

下载地址: https://www.elastic.co/downloads/kibana 本次采用版本:6.5.4

解压后修改配置文件kibana.yml,

image.png

启动kibana:nohup ./kibana 2>&1 &