安装kafka并设置通过外网ip访问

1、kafka 安装

安装JDK

tar xvf jdk1.8.0_231.tar.gz  -C /usr/local && cd   /usr/local
ln -sv jdk1.8.0_231 jdk 

vim /etc/profile.d/java.sh
    JAVA_HOME=/usr/local/jdk
    PATH=$JAVA_HOME/bin:$PATH

zookeeper安装(或使用kafka自带的)

vim /usr/local/kafka/zookeeper/conf/zoo.cfg
   tickTime=2000
   initLimit=10
   syncLimit=5
   dataDir=/data/zookeeper
   clientPort=2181
   maxClientCnxns=0

   # 集群版的zookeeper添加如下配置
   # server.1=ip1:2888:3888
   # server.2=ip2:2888:3888
   # server.3=ip3:28888:3888

下载kafka和安装kakfa

wget https://archive.apache.org/dist/kafka/0.10.2.1/kafka_2.11-0.10.2.1.tgz

tar xvf kafka_2.11-0.10.2.1.tgz -C /usr/local && cd   /usr/local
ln -sv kafka_2.11-0.10.2.1.tgz kafka

修改kafka启动内存

vim /usr/local/kafka/bin/kafka-server-start.sh
  export KAFKA_HEAP_OPTS="-Xmx2G -Xms2G"

kafka启动和停止

/usr/local/kafka/bin/zookeeper-server-start.sh -deamon /usr/local/kafka/conf/zookeeper.properties

/usr/local/kafka/bin/kafka-server-start.sh -deamon /usr/local/kafka/conf/server.properties

/usr/local/kafka/bin/kafka-server-stop.sh /usr/local/kafka/conf/server.properties
/usr/local/kafka/bin/zookeeper-server-stop.sh /usr/local/kafka/conf/zookeeper.properties

单独安装kafka的启停方式

/usr/local/zookeeper/bin/zkServer.sh stop|stop

2、 kafka 设置外网访问(如有需要提供外网访问)

前提条件

需要一个解析到内网ip地址的域名,内网环境也可以设置/etc/hosts

参数设置

host.name=kafka.test.com(对应的域名解析需要解到内网ip)
高版本已弃用。低版本0.10.2.1可以用, 仅当listeners属性未配置时被使用,已用listeners属性代替。表示broker的hostname

advertised.listeners=PLAINTEXT://kafka.test.com:9092(高版本用,替代host.name,设置了advertised.listeners不用设置host.name)
注册到zookeeper上并提供给客户端的监听器,如果没有配置则使用listeners。

advertised.host.name(不需要设置,仅作参考)
已弃用。仅当advertised.listeners或者listeners属性未配置时被使用。官网建议使用advertised.listeners

listeners(不需要设置,仅作参考)
需要监听的URL和协议,如:PLAINTEXT://myhost:9092,SSL://:9091 CLIENT://0.0.0.0:9092,REPLICATION://localhost:9093。如果未指定该配置,则使用java.net.InetAddress.getCanonicalHostName()函数的的返回值

修改上broker的/etc/hosts文件

[内网ip] kafka.test.com

修改外网访问服务器上的/etc/hosts文件

[外网ip] kafka.test.com

3、kafka消费调试

生产者

/usr/local/kafka/bin/kafka-console-producer.sh --broker-list IP:9092 --topic TOPIC

消费者

/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server IP:9092 --topic TOPIC--from-beginning --max-messages 1
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 外网IP:9092 --topic TOPIC --from-beginning --max-messages 1

4、logstash调试

output {
  stdout { codec => rubydebug { metadata => true }  }
}

5、logstash无法消费kakfa日志的问题排查

a、topics_pattern 通配问题".* ","."一定不能少

      topics_pattern=>"prefix-.*"

b、filter中匹配规则,注意要能匹配到kafka中topic,不同的filebeat和不同的logstash版本对应的topic元数据可能不太一样,这点需要注意

      if [type] =~ "prefix-*" {
          grok { match =>["[type]","^prefix-(?<index_name>)"] }
       }

      if [kafka][topic] =~ "prefix-*" {
        grok { match => [ "[kafka][topic]", "^prefix-(?<index_name>.*$)" ]}
      }

       if [@metadata][topic] =~ "prefix-*" {
          grok { match =>["[@metadata][topic]","^prefix-(?<index_name>)"] }
       }

      if [@metadata][kafka][topic] =~ "prefix-*" {
        grok { match => [ "[@metadata][kafka][topic]", "^prefix-(?<index_name>.*$)" ]}
      }

外网kakfa消费参考:https://www.maiyewang.com/archives/17993

原文地址:https://blog.51cto.com/395469372/2464399

时间: 2024-10-07 11:35:14

安装kafka并设置通过外网ip访问的相关文章

阿里云 轻量应用服务器 上传一个HTML文件或者jsp文件 通过外网IP访问

我选择的是 宝塔Linux,现在就说一下如何往服务器里面传文件然后通过外网IP访问 1.打开宝塔Linux面板登录,安装tomcat,安装好后如图 2.点击tomcat有个文件标识处 3.出现如图 4.打开文件夹webapps/root,上传你想要的文件 tomcat默认根目录在/www/server/tomcat/webapps/ROOT 这个目录下,所以直接访问这个目录下的文件才能访问.例如:http://47.93.195.31:8080/1.jsp 然后在外部浏览器中输入http://I

H3C防火墙——回环流量问题(内网终端通过外网IP访问内部服务器)

拓扑如下: 环境描述: 内网两个网段通过防火墙的NAT功能上网,内部WEB服务器:10.1.20.200 映射到公网80端口,配置信息如下: acl number 2000  description NAT_SOURCE  rule 5 permit source 10.1.20.0 0.0.0.255  rule 10 permit source 192.168.10.0 0.0.0.255 interface GigabitEthernet0/0  port link-mode route

通过外网IP访问内网

外网服务器:外网IP1,内网IP192.168.2.156 内网服务器:内网IP192.168.2.206 通过访问外网服务器8083端口,转发到内网服务器的8083端口. 在外网服务器设置映射规则: echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A PREROUTING -p tcp --dport 8083 -j DNAT --to-destination 192.168.2.206:8083iptables -t nat -

用户iis可以用外网ip访问,用内网访问报错404

如下,没有添加内网ip绑定

配置redis外网可访问,并只允许指定的ip可访问redis

开启redis 允许外网IP 访问 在 Linux 中安装了redis 服务,当在客户端通过远程连接的方式连接时,报could not connect错误. 错误的原因很简单,就是没有连接上redis服务,由于redis采用的安全策略,默认会只准许本地访问. 需要通过简单配置,完成允许外网访问. 修改redis的配置文件,将所有bind信息全部屏蔽. # bind 192.168.1.100 10.0.0.1 # bind 192.168.1.8 # bind 127.0.0.1 修改完成后,需

TP-Link路由器端口映射8081端口的Nexus服务外网无法访问的解决办法

环境描述: 路由器:TP-Link TL-R478G+ 内网服务器信息: IP:192.168.1.221 系统:CentOS 6.5 服务:Nexus 端口:8081 映射方法: 问题描述: 其它服务器的服务通过此映射方法通过外网IP都可以访问了,但唯独这个不行,映射的时候尝试换了多个端口也无济于事. 问题分析: 初步分析应该是被映射服务器的网络配置问题! 解决方案: 检查网络配置: vi /etc/sysconfig/network 发现在此文件配置中缺少红框中的两行配置! vi /etc/

Windows Azure 设置虚拟机静态外网IP地址

官方说法叫做“虚拟公共IP地址保留”,为容易理解,我们称之为静态外网IP地址. 如果在国内使用国际版Windows Azure服务时强烈推荐为虚拟机设置IP地址保留. 由于Windows Azure Cloud Service的内部IP地址和虚拟公共IP地址(VIP)是非固定的,且不允许自行更改,很有可能会遇到被分配到一个在国内无法访问的IP地址(大墙V5).因此在能够正常访问时,设置保留此IP地址. 注:需要额外支付费用,定价信息请参考:http://azure.microsoft.com/e

在虚拟机发布网站,设置服务器外网访问ip端口号

这是虚机上的发布网站的网站端口号 这一步要在实机设置 做完这一步,在外网就可以访问你刚刚发布的站点了

Windows Azure 保留已存在的虚拟网络外网IP(云服务)

我们之前文章中有介绍过通过Azure Powershell来绑定vm的内部虚拟地址,现在我们可以通过powershell来绑定vm的外部ip地址了,因为近期世界互联更新了azure的部分功能,其中今天介绍的windows azure设置保留已存在的虚拟网络的外网IP(云服务地址),我们都知道在azure服务内部都有一个dhcp服务器来分发vm内部虚拟网络地址,同时还有分发云服务的外网地址:内部的虚拟地址保留我们在此不说,如果有需要可访问博客中的windows azure相关的文章中有介绍,那为什