部署方案:filebeat+kafka+logstash+elasticsearch+kibana
Filebeat:轻量级日志采集器
Kafka:高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据
Logstash:实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网
ElasticSearch:分布式多用户能力的全文搜索引擎,基于RESTful web接口
Kibana:ElasticSearch的用户界面
服务器:
应用 | IP | 备注 |
kafka-1 | kafka集群 | |
kafka-2 | ||
kafka-3 | ||
kafka-manager | kafka管理界面 | |
zookeeper | 用于发现kafka集群 | |
logstash-1 | 2台loagstash消费kafka消息 | |
logstash-2 | ||
es-master | es的master节点,日志清理脚本 | |
es-master&data | master节点和存储节点 | |
es-data | es的存储节点 | |
es-data | es的存储节点 | |
kibana | 查询界面 |
应用部署:
1、Filebeat
下载地址:www.elastic.co/downloads/b… 本次采用版本:6.5.4
下载后进行解压,创建配置文件 beat-kafka.yml (默认的配置文件是filebeat.yml)
Filebeat,配置并不难,只需要配置将空的日志文件全路径和输出端的IP,默认输出是到ElasticSearch,需要调整输出到kafka(避免丢消息),具体配置可以参考:
2、Kafka
下载地址:kafka.apache.org/downloads 本次采用版本:2.12-2.1.0
下载后进行解压,修改kafka配置文件:server.properties
填写zookeeper地址(用于注册kafka):
启动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
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交流
启动es:nohup ./elasticsearch 2>&1 &
5、Kibana
下载地址: https://www.elastic.co/downloads/kibana 本次采用版本:6.5.4
解压后修改配置文件kibana.yml,
启动kibana:nohup ./kibana 2>&1 &