kafka+elasticsearch+logstash+kibana环境搭建

单机环境部署ELK
本文详细介绍如何在单机环境下部署ELK堆栈(Elasticsearch、Logstash、Kibana),并涵盖JDK、Kafka、Zookeeper等组件的安装配置过程。

环境准备

jdk1.8、kafka2.11(kafka-manage可选)、zookeeper3.4.10、logstash5.4.6、kibana5.4.6、elasticsearch(head插件,ik中文分词插件)

1、jdk安装

yum install java-1.8.0-openjdk


2、安装kafka

修改配置文件

vi /usr/local/kafka/config/server.properties 

port=9092
log.dirs=/data/kafka
zookeeper.connect=localhost:2181

启用JMX

vi /usr/local/kafka/bin/kafka-server-start.sh 

增加:

export JMX_PORT=${JMX_PORT:-9999}

启动:cd /usr/local/kafka && ./bin/kafka-server-start.sh -daemon config/server.properties 

3、安装zookeeper

配置:

cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg

修改配置:

vi /usr/local/zookeeper/conf/zoo.cfg


dataDir=/data/zookeeper
# the port at which the clients will connect
clientPort=2181
server.1=localhost:2888:3888

启动:

/usr/local/zookeeper/bin/zkServer.sh start

4、安装logstash

直接安装rpm

rpm -ivh logstash-5.6.4.rpm

软件目录:/usr/share/logstash

配置目录:/etc/logstash/conf.d

配置文件:/etc/logstash/logstash.yml

日志目录:/var/log/logstash

LS_HOME:/var/lib/logstash


指定文件启动:

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/logstack-template.conf --path.data=/root/


5、安装elasticSearch

直接安装rpm

rpm -ivh elasticsearch-5.6.4.rpm

软件目录:/usr/share/elasticsearch

配置目录:/etc/elasticsearch

日志目录:/var/log/elasticsearch

数据目录:/var/lib/elasticsearch

PID目录:/var/run/elasticsearch


修改配置:

vi /etc/elasticsearch/elasticsearch.yml

#禁用swap
bootstrap.mlockall: true
#绑定所有网卡
network.host: 0.0.0.0
#
# Enable CORS in elasticsearch (elasticsearch-head)
#
http.cors.enabled: true
http.cors.allow-origin: "*"

启动 systemctl start elasticsearch

(head插件和ik可自选)

6、安装kibana

直接rpm安装

rpm -ivh kibana-5.6-4.rpm 

修改配置

vi /etc/kibana/kibana.yml

server.host: "kibana-node"

启动:systemctl start kibana

------------------------------------------------------------------

单机环境搭建完成,可以进入测试阶段,过程中会遇到一些坑,欢迎评论。

### 3. KafkaLogstashElasticsearch 组合的使用场景与数据处理流程 KafkaLogstashElasticsearch 的组合广泛应用于日志处理、实时数据分析、数据管道构建等场景。这种架构通过消息队列实现数据的缓冲与异步传输,通过 Logstash 实现数据的清洗与结构化处理,最终由 Elasticsearch 实现数据的高效存储与实时查询分析。 #### 3.1 使用场景 - **日志集中化处理**:多个服务器节点产生的日志可通过 Filebeat 等采集工具发送至 KafkaLogstash 从中消费并清洗日志,Elasticsearch 负责存储与检索。该流程适用于大规模服务器集群的日志管理。 - **实时监控与报警**:系统运行指标数据(如 CPU、内存、网络等)通过 Kafka 传输,经过 Logstash 处理后写入 Elasticsearch,结合 Kibana 实现可视化监控与异常预警。 - **用户行为分析**:网站或应用的用户点击流数据可实时写入 Kafka,由 Logstash 解析后导入 Elasticsearch,支持实时用户画像与行为趋势分析。 - **数据同步与数据湖构建**:数据库的变更数据(如 MySQL 的 binlog)可通过 Kafka 接入,Logstash 转换后写入 Elasticsearch,构建统一的实时搜索与分析平台[^4]。 #### 3.2 数据处理流程 整个数据处理流程由多个组件协同完成: - **数据采集**:Filebeat 或其他日志采集工具从服务器、应用或数据库中收集原始数据,发送至 Kafka 主题中。 - **数据缓冲**:Kafka 接收并缓存数据,确保数据在传输过程中不丢失,同时提供高吞吐能力与持久化支持。 - **数据处理**:Logstash 作为 Kafka消费者,拉取数据并进行解析、过滤、字段提取等操作,将原始数据转换为结构化格式。 - **数据存储与搜索**:结构化数据由 Logstash 写入 ElasticsearchElasticsearch 建立倒排索引,支持快速检索与聚合分析。 - **数据可视化**:Kibana 连接 Elasticsearch,提供丰富的图表类型与交互式仪表盘,用于日志可视化与业务监控[^1]。 #### 3.3 架构示例配置 以下是一个典型的 Logstash 配置文件,用于从 Kafka 读取 JSON 格式数据并写入 Elasticsearch: ```yaml input { kafka { bootstrap_servers => "kafka1:9092" topic_id => "logs" group_id => "logstash_group" codec => json } } filter { # 示例:添加时间戳字段 date { match => [ "timestamp", "yyyy-MM-dd HH:mm:ss" ] } } output { elasticsearch { hosts => ["http://es-node1:9200"] index => "logs-%{+YYYY.MM.dd}" } } ``` 该配置实现了从 KafkaElasticsearch 的数据管道构建,支持日志的自动索引与按天分片存储。 #### 3.4 架构优势 - **解耦性强**:数据采集与处理流程分离,提升系统灵活性与可维护性。 - **高可用与容错**:Kafka 提供持久化机制与副本策略,确保数据不丢失;Elasticsearch 支持分布式部署与自动恢复。 - **实时性高**:端到端的数据流支持毫秒级延迟,适用于实时监控与分析场景。 - **扩展性好**:各组件均可横向扩展,适应不断增长的数据量与并发需求。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值