filebeat+kafka搭建
2019-12-11 15:08 unique-yichen 阅读(535) 评论(0) 收藏 举报准备三台centos7的服务器 两核两G的
关闭防火墙和SELinux
|
1
2
|
systemctl stop firewalldsetenforce 0 |
1.每一台都安装jdk
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
rpm -ivh jdk-8u131-linux-x64_.rpm准备中... ################################# [100%]正在升级/安装... 1:jdk1.8.0_131-2000:1.8.0_131-fcs ################################# [100%]Unpacking JAR files... tools.jar... plugin.jar... javaws.jar... deploy.jar... rt.jar... jsse.jar... charsets.jar... localedata.jar... java -version //执行这条命令可以看到jdk的版本 就是jdk环境配置成功java version "1.8.0_131"Java(TM) SE Runtime Environment (build 1.8.0_131-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode) |
2. 因为我装的是无图形化界面的centos 每一台虚拟机都需要
|
1
2
3
4
5
6
|
yum -y install wgetcd /usr/local/src##这个下载的是zookeeperwget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz##这个下载的是kafkawget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.2.0/kafka_2.11-2.2.0.tgz |
3. 解压zookeeper 然后移动到/usr/local/zookeeper kafka做同样的操作 kafka移动到/usr/local/kafka
|
1
2
|
tar -zxf zookeeper-3.4.14.tar.gzmv zookeeper-3.4.14 /usr/local/zookeeper<br>tar -zxf kafka_2.11-2.2.0.tgz<br>mv kafka_2.11-2.2.0 /usr/local/kafka<br> |
4.在 /usr/local/zookeeper创建两个目录 zkdatalog zkdata
|
1
2
|
cd /usr/local/zookeepermkdir {zkdatalog,zkdata} |
5.进入/usr/loca/zookeeper/conf 复制一个配置文件 修改复制出来的配置文件
cd /usr/local/zookeeper/conf cp zoo_sample.cfg zoo.cfg vim zoo.cfg ******************************* tickTime=2000 initLimit=10 syncLimit=5 dataDir=/usr/local/zookeeper/zkdata datalogDir=/usr/local/zookeeper/zkdatalog clientPort=2181 server.1=192.168.18.140:2888:3888 server.2=192.168.18.141:2888:3888 server.3=192.168.18.142:2888:3888 *******************************
6. 每一台的操作都不一样
|
1
2
3
4
5
6
|
第一台echo '1' > /usr/local/zookeeper/zkdata/myid第二台echo '2' > /usr/local/zookeeper/zkdata/myid第三胎echo '3' > /usr/local/zookeeper/zkdata/myid |
7.启动服务 启动的时候按顺序开启 第一台 第二台 第三台
|
1
2
3
4
5
|
cd /usr/local/zookeeper/bin./zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper/bin/../conf/zoo.cfgStarting zookeeper ... STARTED |
8.查看是否开启 zookpeer 的状态
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
第一台 显示这个状态表示成功./zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper/bin/../conf/zoo.cfgMode: follower第二台./zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper/bin/../conf/zoo.cfgMode: leader第三台./zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper/bin/../conf/zoo.cfgMode: follower |
搭建kafka
第一台 cd /usr/local/kafka/config vim server.properties ********************* broker.id=1 advertised.listeners=PLAINTEXT://kafka01:9092 zookeeper.connect=192.168.18.140:2181,192.168.18.141:2181,192.168.18.142:2181 (三台服务器的IP地址) 第2台 cd /usr/local/kafka/config vim server.properties ********************* broker.id=2 advertised.listeners=PLAINTEXT://kafka02:9092 zookeeper.connect=192.168.18.140:2181,192.168.18.141:2181,192.168.18.142:2181 (三台服务器的IP地址) 第3台 cd /usr/local/kafka/config vim server.properties ********************* broker.id=3 advertised.listeners=PLAINTEXT://kafka03:9092 zookeeper.connect=192.168.18.140:2181,192.168.18.141:2181,192.168.18.142:2181 (三台服务器的IP地址)
10.vim /etc/hosts
添加以下内容在每一台服务器上 192.168.18.140 kafka01 192.168.18.141 kafka02 192.168.18.142 kafka03
11.启动kafka的命令 每一台都启动kafka
cd /usr/local/kafka/bin
./kafka-server-start.sh -daemon ../config/server.properties
启动之后可以查看端口9092
ss -ntlp | grep 9092
12.创建主题 topics
cd /usr/local/kafka/bin
./kafka-topics.sh --create --zookeeper 192.168.18.140:2181(这个ip地址随便写三台服务器中的一个就可以)--replication-factor 2 --partitions 3 --topic wg007
查看主题 如果可以显示刚刚创建的就是成功了
cd /usr/local/kafka/bin
./kafka-topics.sh --list --zookeeper 192.168.18.140:2181
模拟生产者 执行代码后就会有一个小的 >
cd /usr/local/kafka/bin
./kafka-console-producer.sh --broker-list 192.168.18.140:9092 --topic wg007 >
在第二台服务器上模拟消费者
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.18.141:9092 --topic wg007 --from-beginning
测试模拟生产者和消费者是否成功
在模拟生产者的服务器上写一些东西 可以在模拟消费者的服务器上可以看到表示成功如下所示


写一个脚本用来创建kafka的topic
cd /usr/local/kafka/bin
vim kafka-create-topics.sh
#################################
#!/bin/bash
read -p "请输入一个你想要创建的topic:" topic
cd /usr/local/kafka/bin
./kafka-topics.sh --create --zookeeper 192.168.18.140:2181 --replication-factor 2 --partitions 3 --topic ${topic}
创建一个新的yum源
vim /etc/yum.repo.d/filebeat.repo ***加入以下内容 [filebeat-6.x] name=Elasticsearch repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
安装
yum -y install filebeat
编辑filebeat的配置文件
cd /etc/filebeat
vim filebeat.yml
修改以下内容
enabled: true
paths:
- /var/log/nginx/*.log //写这个路径的前提是安装nginx
output.kafka:
enabled: true
# Array of hosts to connect to.
hosts: ["192.168.18.140:9092","192.168.18.141:9092","192.168.18.142:9092"]
topic: nginx_log1 //写这个nginx_log1 的前提是有nginx_log1的topic 上面有生产者的脚本

安装nginx
yum -y install epel* yum -y install nginx
启动nginx和filebeat
systemctl start filebeat systemctl enable filebeat systemctl start nginx
可以给ningx生产一些数据
yum -y install httpd-tools ab -n1000 -c 200 http://127.0.0.1/cccc //这条命令可以多执行几次
可以在安装filebeat的服务器上测试一下nginx的服务
curl -I 192.168.18.140:80
在模拟消费者的服务器上 如果可以显示一下内容 表示成功了
cd /usr/local/kafka/bin ./kafka-console-consumer.sh --bootstrap-server 192.168.18.141:9092 --topic nginx2(这里的topic的名字一定要和filebeat的配置文件里的一致) --from-beginning
如图所示


浙公网安备 33010602011771号