一、安装kafka
下载kafka两种方式
(1)、手动下载 下载地址:Apache Kafka
(2)、也可以用命令下载(直接下载到服务器哦!):
将安装包下载到/opt/monitor/kafka文件夹下面 下载命令: wget http://mirrors.hust.edu.cn/apache/kafka/2.0.0/kafka_2.12-2.0.0.tgz 手动下载移动到/opt/monitor/kafka目录下也可以
二、解压kafka
tar -xzvf kafka_2.12-2.0.0.tgz(文件名可以更换哦!)
三、修改server.properties文件
在目录/opt/monitor/kafka/kafka_2.12-2.7.0/config下
在config目录下输入命令:vim server.properties
1、修改内容为:
server.properties修改 内容如下:可直接复制粘贴。
broker.id=0 port=9092 #端口号 host.name=localhost #单机可直接用localhost log.dirs=/opt/monitor/kafka/kafka_dat #日志存放路径可修改可不修改 zookeeper.connect=localhost:2181 #zookeeper地址和端口,单机配置部署,localhost:2181
2、创建日志文件夹
mkdir + 目录名称
四、修改zookeeper.properties文件
1、 进入/opt/monitor/kafka/kafka_2.12-2.7.0/config目录下输入命令:
vim zookeeper.properties
2、修改内容为:
dataDir=/opt/monitor/kafka/kafka_data/zookeeper #zookeeper数据目录 (可以修改可以不修改) clientPort=2181 maxClientCnxns=100 tickTimes=2000 initLimit=10 syncLimit=5 admin.enableServer=false
由于我修改了默认的数据目录地址和日志目录需要在kafka下创建文件
在/opt/monitor/kafka/创建 mkdir kafka_data/zookeeper
五、启动
1、启动zookeeper
(一般我使用这种方式)
启动:在/opt/monitor/kafka/kafka_2.12-2.7.0路径下先启动zookeeper,默认自带的
bin/zookeeper-server-start.sh config/zookeeper.properties bin/zookeeper-server-start.sh -daemon config/zookeeper.properties #建议使用这种方式,不需要启动多个窗口
2、启动Kafka
然后启动kafka服务在/opt/monitor/kafka/kafka_2.12-2.7.0路径下
bin/kafka-server-start.sh config/server.properties bin/kafka-server-start.sh -daemon config/server.properties #建议使用这种方式,不需要启动多个窗口
#!/bin/sh #启动zookeeper
/opt/monitor/kafka/kafka_2.12-2.7.0/bin/zookeeper-server-start.sh /opt/monitor/kafka/kafka_2.12-2.7.0/config/zookeeper.properties &
sleep 3 #等3秒后执行
#启动kafka
/opt/monitor/kafka/kafka_2.12-2.7.0/bin/kafka-server-start.sh /opt/monitor/kafka/kafka_2.12-2.7.0/config/server.properties &
六、Kafka topic
1、创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic demo bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic demo
其中demo为创建的topic名称。
如上图,创建了一个名为 demo 的主题,其中包含一个分区和一个副本因子。 创建成功之后会输出:Created topic "demo".
如上图,创建主题后,系统会在config / server.properties文件中的”/ tmp / kafka-logs /”中指定的创建主题的日志。
2 、查询topic列表
bin/kafka-topics.sh --list --zookeeper localhost:2181bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic demo
3 、删除topic
bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic demo
七、Kafka 生产/消费
1 、启动生产者
进入/opt/monitor/kafka/kafka_2.12-2.7.0目录下执行命令
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic demo bin/kafka-console-producer.sh --broker-list 192.168.113.xxx:9092 --topic prometheusMonitor_event bin/kafka-console-producer.sh --broker-list 192.168.xxx.xxx:9092 --topic zabbixVm
从上面的语法,生产者命令行客户端需要两个主要参数 –
代理列表 – 我们要发送邮件的代理列表。 在这种情况下,我们只有一个代理。 Config / server.properties文件包含代理端口ID,因为我们知道我们的代理正在侦听端口9092,因此您可以直接指定它。主题名称:demo。
2 、启动消费者
为了方便测试,另启一个sheel窗口 这样效果更明显。需要注意的是旧版本和新版本的命令是不一样的
进入/opt/monitor/kafka/kafka_2.12-2.7.0目录下执行命令
2.1、旧版本:
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic demo --from-beginning
报错提示:zookeeper is not a recognized option
2.2、新版本
发现在启动的时候说使用 –zookeeper是一个过时的方法,最新的版本中命令如下:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic demo --from-beginning bin/kafka-console-consumer.sh --bootstrap-server 192.168.xxx.xxx:9092 --topic 名称 --from-beginning
可以开启两个终端,一个发送消息,一个接受消息。效果如下:
3、 查看kafka生产最大位置偏移量
进入/opt/monitor/kafka/kafka_2.12-2.7.0目录下执行命令
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic demo --time -1
4、消费消息查看
进入/opt/monitor/kafka/kafka_2.12-2.7.0/bin目录下:
(1)、topic: redis_event ./kafka-console-consumer.sh --bootstrap-server 192.168.xxx.xxx:9092 --topic redis_event --from-beginning (2)、topic: zabbixVm ./kafka-console-consumer.sh --bootstrap-server 192.168.xxx.xxx:9092 --topic zabbixVm #查看最新的数据
八,监控
1个kafka集群只需要1个exporter,在集群上的任意1台服务器部署。