首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卡夫卡没有吞下原木

卡夫卡没有吞下原木
EN

Stack Overflow用户
提问于 2021-12-30 08:30:27
回答 1查看 472关注 0票数 0

我在基于bitnami图表的kube集群上创建了一个Kafka服务。部署进行得很顺利。接下来,我安装了一个文件节拍来向该服务发送日志。在我看来,文件节拍与集群通信,但不吞食日志。实际上,在启动file节拍服务之后,我发现了一个名为“logs”的主题,它是由file节拍创建的。然而,这个话题仍然是空的。我的配置如下:

代码语言:javascript
复制
filebeat.inputs:
- type: filestream
  enabled: true
  paths:
    - /var/log/test.log
  fields:
    level: debug
    review: 1
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: true
setup.template.settings:
  index.number_of_shards: 1
setup.kibana:
processors:
  - add_host_metadata:
      when.not.contains.tags: forwarded
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
  - add_kubernetes_metadata: ~
output.kafka:
  hosts: ["ip-172-31-26-181:30092"]
  topic: "logs-topic"
  codec.json:
    pretty: false

卡夫卡主题存在

代码语言:javascript
复制
I have no name!@kafka-release-client:/$ kafka-topics.sh --list  --bootstrap-server kafka-release.default.svc.cluster.local:9092
.......
logs-topic

syslog输出

代码语言:javascript
复制
Dec 30 08:28:45 ip-172-31-23-248 filebeat[29968]: 2021-12-30T08:28:45.928Z#011INFO#011[file_watcher]#011filestream/fswatch.go:137#011Start next scan
Dec 30 08:28:53 ip-172-31-23-248 filebeat[29968]: 2021-12-30T08:28:53.186Z#011INFO#011[publisher]#011pipeline/retry.go:219#011retryer: send unwait signal to consumer
Dec 30 08:28:53 ip-172-31-23-248 filebeat[29968]: 2021-12-30T08:28:53.186Z#011INFO#011[publisher]#011pipeline/retry.go:223#011  done
Dec 30 08:28:55 ip-172-31-23-248 filebeat[29968]: 2021-12-30T08:28:55.927Z#011INFO#011[file_watcher]#011filestream/fswatch.go:137#011Start next scan
EN

回答 1

Stack Overflow用户

发布于 2022-01-21 17:06:47

我已经找到了解决这个问题的办法,梅比,它会帮助其他人的。

我的问题和上面的文章描述的一样,我挣扎了很长一段时间,因为我没有从filebeat中找到任何日志,这说明了问题所在。此外,我也找不到一种方法来增加日志记录级别,而不是调试选项,例如:

filebeat -e -c filebeat.yml -v -d "publisher"

Kafka Broker日志指出了信息级别上的一些SSL握手失败:

journalctl -f -u kafka

代码语言:javascript
复制
Jan 22 18:18:22 kafka sh[15893]: [2022-01-22 18:18:22,604] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1] Failed authentication with /172.20.3.10 (SSL handshake failed) (org.apache.kafka.common.network.Selector)

同样,在配置了调试级别之后,我无法看到实际的问题。

我决定用python脚本生成一些数据,并能够重现这个问题:

代码语言:javascript
复制
from kafka import KafkaConsumer, KafkaProducer
import logging
logging.basicConfig(level=logging.DEBUG)

try:
    topic = "test"
    sasl_mechanism = "PLAIN"
    username = "test"
    password = "fake"
    security_protocol = "SASL_SSL"
    
    producer = KafkaProducer(bootstrap_servers='kafka.domain.com:9092',
                             security_protocol=security_protocol,
                             ssl_check_hostname=True,
                             ssl_cafile='ca.crt',
                             sasl_mechanism=sasl_mechanism,
                             sasl_plain_username=username,
                             sasl_plain_password=password)


    producer.send(topic, "test".encode('utf-8'))
    producer.flush()
    print("Succeed")
    
except Exception as e:
    print("Exception:\n\n")
    print(e)

输出:

代码语言:javascript
复制
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'kafka'. (_ssl.c:1129)
DEBUG:kafka.producer.sender:Node 1 not ready; delaying produce of accumulated batch
WARNING:kafka.conn:SSL connection closed by server during handshake.
INFO:kafka.conn:<BrokerConnection node_id=1 host=kafka:9092 <handshake> [IPv4 ('198.168.1.11', 9092)]>: Closing connection. KafkaConnectionError: SSL connection closed by server during handshake

=>主机名无法在证书中成功验证。我在Kafka的advertised.listeners中更改并添加了许多参数(listener /advertised.listeners/ host.name),无法配置将在元数据中返回给客户端的另一个/完整域名。它总是返回"kafka:9092",而这不是证书中所示的域名。

解决方案:

禁用双方(服务器/客户端)的主机名验证。

卡夫卡服务器:ssl.endpoint.identification.algorithm=

python:ssl_check_hostname=True

File节拍也能做到这一点,但并不是很清楚:

代码语言:javascript
复制
output.kafka:
  ssl.verification_mode: certificate

证书验证所提供的证书是否由受信任的机构(CA)签名,但不执行任何主机名验证。

来源:https://www.elastic.co/guide/en/beats/filebeat/current/configuration-ssl.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70529171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档