qhdx07
作者qhdx07·2022-05-20 11:30
系统架构师·as

ELK+kafka+filebeat+集群搭建

字数 4239阅读 1367评论 1赞 5

1.整体架构图:

2.实验环境准备:

各组件简单介绍:

Elasticsearch:

是一个基于Lucene的搜索服务器。提供搜集、分析、存储数据三大功能。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

Logstash:

主要是用来日志的搜集、分析、过滤日志的工具。用于管理日志和事件的工具,你可以用它去收集日志、转换日志、解析日志并将他们作为数据提供给其它模块调用,例如搜索、存储等。

Kibana:

是一个优秀的前端日志展示框架,它可以非常详细的将日志转化为各种图表,为用户提供强大的数据可视化支持。

Kafka:

1.发布和订阅记录流,类似于消息队列或企业消息传递系统。

2.以容错持久的方式存储记录流。

3.处理记录发生的流。

4.在Kafka的设计中,选择了使用Zookeeper来进行所有Broker的管理。

zookeeper:

是一个​ ​分布式​​的,开放源码的​ ​分布式应用程序​​协调服务,它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

Filebeat: 隶属于Beats。目前Beats包含四种工具:

1.Packetbeat(搜集网络流量数据)

2.Metricbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据。通过从操作系统和服务收集指标,帮助您监控服务器及其托管的服务。)

3.Filebeat(搜集文件数据)

4.Winlogbeat(搜集 Windows 事件日志数据)

3.搭建zookeeper及kafka集群:

(1)安装java(三台配置一样,下同)

(2)安装kafka

上传kafka_2.12-2.3.0.tgz到/app,解压,kafka 依赖zookeeper,zookeeper 简称zk,已经包含在kafka的tar包里

<1>配置zookeeper

①给zookeeper 创建data 目录和logs 目录

[root@es-kafka-1 app]# mkdir -p /app/zookeeper/{data,logs}

②创建myid 文件

③配置zookeeper配置文件/app/kafka_2.12-

<2>配置kafka

①创建kafka 日志目录

[root@es-kafka-1 config]# mkdir -p /app/kafka/logs

②配置kafka配置文件/app/kafka_2.12-2.3.0/config/server.properties

<3>启动服务:(先启动zookeeper,后启动kafka)

三台服务器均启动:

①启动zookeeper

nohup /app/kafka_2.12-2.3.0/bin/zookeeper-server-start.sh /app/kafka_2.12-2.3.0/config/zookeeper.properties >>/dev/null 2>&1 &

②启动kafka

nohup /app/kafka_2.12-2.3.0/bin/kafka-server-start.sh /app/kafka_2.12-2.3.0/config/server.properties >>/dev/null 2>&1 &

检查zookeeper端口2181、2888(leader上有)和3888,kafka端口9092

4.Elasticsearch集群部署:

1.安装java,本次是和kafka装在一起,前面已安装。

2.上传elasticsearch-7.4.0-linux-x86_64.tar.gz到/app,解压

3..es不能以root用户运行,创建elk用户,并更改目录属组 useradd elk chown -R elk:elk elasticsearch-7.4.0/

4.编辑配置文件(省略号代表有其他内容,但是不用修改)
1 # ---------------------------------- Cluster -----------------------------------
2 …………
3 #cluster.name: my-application
4 cluster.name: ELK #起名三个节点要一致
5 …………
6 # ------------------------------------ Node ------------------------------------
7 …………
8 #node.name: node-1
9 node.name: es-1 #节点名:三个节点不一致
10 …………
11 # ---------------------------------- Network -----------------------------------
12 ……
13 #network.host: 192.168.0.1
14 network.host: 192.168.205.155 #当前IP地址
15 # Set a custom port for HTTP:
16 #http.port: 9200 #端口号:默认9200
17 ……
18 # --------------------------------- Discovery ----------------------------------
19 …………
20 # The default list of hosts is ["127.0.0.1", "[::1]"]
21 discovery.zen.ping.unicast.hosts: ["192.168.205.155","192.168.205.156","192.168.205.157"]
22 #集群节点IP地址
23 …………

5.切换到elk启动,su - elk ,screen -S es 打开一个新窗口执行启动命令

/app/elasticsearch-7.4.0/bin/elasticsearch

如果遇到这个错误

执行命令: su - root

sysctl -w vm.max_map_count=262144

sysctl -a | grep vm.max_map_count

exit

再尝试启动 , 如果遇到这个错误

回到root账户 , 修改/etc/security/limits.conf 添加如下行并重启: elk hard nofile 262144

elk soft nofile 262144

5.logstash部署:

1.安装java

2.上传logstash-7.4.0.tar.gz到服务器/app,解压

3.新建配置文件/app/logstash-7.4.0/config/logstash.conf

3.启动 /app/logstash-7.4.0/bin/logstash -f /app/logstash-7.4.0/config/logstash.conf

启动成功后查看9600端口

6.kibana部署:

1.上传kibana-7.4.0-linux-x86_64.tar.gz到/app并解压

2.修改配置文件/app/kibana-7.4.0-linux-x86_64/config/kibana.yml

3.启动kibana /app/kibana-7.4.0-linux-x86_64/bin/kibana --allow-root

查看5601端口,并访问http://10.10.10.24:5601

7.filebeat安装:

1.在需要搜集日志的主机上安装filebeat,上传filebeat-7.4.0-linux-x86_64.tar.gz到/app目录并解压

2.修改配置文件/app/filebeat-7.4.0-linux-x86_64/filebeat.yml

3.启动/app/filebeat-7.4.0-linux-x86_64/filebeat -e -c filebeat.yml

8.服务启动顺序:

1.启动三台节点的zookeeper服务

nohup /app/kafka_2.12-2.3.0/bin/zookeeper-server-start.sh /app/kafka_2.12-2.3.0/config/zookeeper.properties >>/dev/null 2>&1 &

2.启动三台节点的kafka服务

nohup /app/kafka_2.12-2.3.0/bin/kafka-server-start.sh /app/kafka_2.12-2.3.0/config/server.properties >>/dev/null 2>&1 & 检查zookeeper端口2181、2888(leader上有)和3888,kafka端口9092

3.启动三台节点的Elasticsearch服务 su - elk screen -S es /app/elasticsearch-7.4.0/bin/elasticsearch 检查9200、9300端口

4.启动logstash服务 /app/logstash-7.4.0/bin/logstash -f /app/logstash-7.4.0/config/logstash.conf 启动成功后查看9600端口

5.启动kibana服务 /app/kibana-7.4.0-linux-x86_64/bin/kibana --allow-root

检查5601端口,并访问http://10.10.10.24:5601

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

5

添加新评论1 条评论

makosunmakosun系统工程师东华软件股份公司
2023-04-06 15:53
借鉴了,谢谢分享!
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广