在CentOS7上配置ELK日志分析系统-kafka集群安装配置

(1)软件获取

部署kafka集群需要三种软件,分别为JAVA环境,zookeeper和kafka。截至撰写本文档之前,JDK最新版本为12.0.2,下载地址为https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html。zookeeper最新版本为3.5.5,下载地址为https://www-us.apache.org/dist/zookeeper/zookeeper-3.5.5/(推荐使用bin格式的压缩包)。kafka最新版本为2.3.0,下载地址为http://kafka.apache.org/downloads(推荐使用bin格式且为Scala 2.12)。

(2)部署结构

本次搭建一个kafka集群,使用三台服务器,服务器用途如下:

序号

IP地址

操作系统

作用

1

10.10.2.226

CentOS 7

Node-0

2

10.10.2.227

CentOS 7

Node-1

3

10.10.2.228

CentOS 7

Node-2

注:部署前将CentOS 7的防火墙关闭,并且关闭CentOS 7自身的selinux,关闭selinux后请重启机器。

(3)JAVA环境安装

将下载到本地的JDK压缩包通过SFTP客户端(WinSCP)上传到CentOS7相应的目录(这里选择opt目录)下。

然后解压JDK,解压命令为tar -zxvf jdk-12.0.2_linux-x64_bin.tar.gz。为了使后续使用方便将将压后的目录重命名为jdk,重命名的命令为mv jdk-12.0.2/  jdk。

安装JDK后需要配置一下环境变量,编辑/etc/profile文件。在文件尾部添加如下配置,如图1所示。

命令如下:

# vim /etc/profile

export JAVA_HOME=/opt/jdk

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

在CentOS7上配置ELK日志分析系统-kafka集群安装配置

图1

保存完成后通过source命令重新加载/etc/profile文件,使得修改后的内容生效,命令如下。然后输入java –version查看jdk版本信息如图2所示。

# source /etc/profile

在CentOS7上配置ELK日志分析系统-kafka集群安装配置
图2

(4)zookeeper集群部署

将下载到本地的zookeeper压缩包通过SFTP客户端(WinSCP)上传到CentOS7相应的目录(这里选择opt目录)下。

然后解压zookeeper压缩包,解压命令同样使用tar解压命令。为了使后续使用方便将解压压后的目录重命名为zookeeper,重命名的命令同样使用mv命令。相关命令如下:

tar  –zxvf apache-zookeeper-3.5.5-bin.tar.gz

mv  apache-zookeeper-3.5.5-bin/  zookeeper

zookeeper的配置文件在zookeeper/config/目录下,首先复制zoo_sample.cfg为zoo.cfg。然后在zookeeper目录下创建data目录和logs目录,这里存放zookeeper数据和运行日志。相关命令如下:

cp zoo_sample.cfg zoo.cfg

mkdir /opt/zookeeper/{data,logs}
然后在data目录下创建myid文件,myid值是zoo.cfg文件里定义的server.A项A的值。Node-1(10.10.2.226)的myid值为1,10.10.2.227、10.10.2.228的myid的值为2,3。其中myid值为1~255。接下来配置zoo.cfg文件,配置内容如图3所示。

在CentOS7上配置ELK日志分析系统-kafka集群安装配置

图3

其他两台的配置相同,这里不再介绍,配置保存后,开始启动zookeeper集群,启动、查看状态命令如下,状态显示如图4所示,显示信息还会包含这个节点属于主节点信息和从节点信息。

/opt/zookeeper/bin/zkServer.sh start
/opt/zookeeper/bin/zkServer.sh status

在CentOS7上配置ELK日志分析系统-kafka集群安装配置

图4

至此,分别启动另外两台机器后,查看集群状态,zookeeper集群搭建完成。

(5)kafka集群部署

将下载到本地的kafka压缩包通过SFTP客户端(WinSCP)上传到CentOS7相应的目录(这里选择opt目录)下。

然后解压kafka压缩包,解压命令同样使用tar解压命令。为了使后续使用方便将解压压后的目录重命名为kafka,重命名的命令同样使用mv命令。相关命令如下:

tar –zxvf kafka_2.12-2.3.0.tgz

mv kafka_2.12-2.3.0/ kafka
kafka的配置文件在/opt/kafka/config目录下,编辑其中server.properties文件,编辑内容如图5所示。

在CentOS7上配置ELK日志分析系统-kafka集群安装配置

图5

配置完成后启动,启动命令如下,如需在后台运行,则在命令后加&。其他两个节点的配置类似,只是broker.id不同,另外两台分别为2,3。

/opt/kafka/bin/kafka-server-start.sh  /opt/kafka/config/server.properties

至此,kafka集群搭建已经完成。下面是测试的一些命令,前提是kafka在启动状态下。

1、创建topic:kafka/bin/kafka-topics.sh --create --zookeeper 10.10.2.226:2181, 10.10.2.227:2181, 10.10.2.228:2181 --replication-factor 3 --partitions 3 --topic test

2、显示topic:kafka/bin/kafka-topics.sh --describe --zookeeper 10.10.2.226:2181, 10.10.2.227:2181, 10.10.2.228:2181  --topic test

3、列出topic:kafka/bin/kafka-topics.sh --list --zookeeper 10.10.2.226:2181, 10.10.2.227:2181, 10.10.2.228:2181

4、在主节点创建生产者(master为0):kafka/bin/kafka-console-producer.sh --broker-list 10.10.2.226:9092 -topic test

5、在另外的节点创建消费者:kafka/bin/kafka-console-consumer.sh  --bootstrap-server 10.10.2.226:9092, 10.10.2.227:9092, 10.10.2.228:9092 -topic test --from-beginning

6、删除topic:kafka/bin/kafka-topics.sh --delete --zookeeper 10.10.2.226:2181, 10.10.2.227:2181, 10.10.2.228:2181 --topic test