У меня проблемы с подключением Logstash к моему экземпляру Kafka, работающему в Azure. Мой хост kafka имеет статический публичный IP-адрес. Все работает нормально, если я спулингаю машины Logstash внутри одной подсети и соединяю их. Но когда я пытаюсь отправить данные в экземпляр kafka через публичный IP-адрес, я получаю ошибки. Например, при попытке подключить мой экземпляр Logstash из дома к облачной среде Azure.
Вот соответствующие файлы конфигурации и то, что я пробовал:
Выход Logstash:
kafka {
bootstrap_servers => "my public ip:9092"
codec => json
topic_id => "tagger"
}
Прежде чем продолжить, netcat проверил, что я действительно могу достичь порта на kafka, между блокировками соединения нет брандмауэра.
Вот мой файл kafka server.properties с настройками, которые я пробовал на основе аналогичных проблем в других ответах.
#--------------------------------------------------------#
#Logstash says: Sending batch to Kafka failed. Will retry after a delay. {:batch_size=>1, :failures=>1, :sleep=>0.01}
#advertised.listeners=PLAINTEXT://10.10.100.4:9092
#listeners=PLAINTEXT://10.10.100.4:9092
#--------------------------------------------------------#
#Logstash says: Sending batch to Kafka failed. Will retry after a delay. {:batch_size=>1, :failures=>1, :sleep=>0.01}
#advertised.listeners=PLAINTEXT://10.10.100.4:9092
#listeners=PLAINTEXT://0.0.0.0:9092
#--------------------------------------------------------#
#Logstash says: Error while fetching metadata with correlation id 1 : {tagger=LEADER_NOT_AVAILABLE}
#advertised.listeners=PLAINTEXT://publicip:9092
#listeners=PLAINTEXT://0.0.0.0:9092
#--------------------------------------------------------#
#Logstash says: Error while fetching metadata with correlation id 1 : {tagger=LEADER_NOT_AVAILABLE}
#advertised.listeners=PLAINTEXT://publicip:9092,SEC://10.10.100.4:9093
#listeners=PLAINTEXT://0.0.0.0:9092,SEC://10.10.100.4:9093
#--------------------------------------------------------#
#Logstash says: Error while fetching metadata with correlation id 1 : {tagger=LEADER_NOT_AVAILABLE}
advertised.listeners=PLAINTEXT://publicip:9092
advertised.hostname=dnsname.com
Наконец, вот конфиг, который отлично работал для меня, когда я запускал Logstash и Kafka в одной подсети в среде Azure:
listeners=PLAINTEXT://10.10.100.4:9092,SSL://10.10.100.4:9093
advertised.listeners=PLAINTEXT://10.10.100.4:9092,SSL://10.10.100.4:9093
Это сводит меня с ума, спасибо за любую помощь, поскольку я продолжаю искать