我正在尝试构建基于recently的管道,其中Kafka从具有文件源连接器的文件中读取。使用this tutorial作为Elastic Stack,我想将Logstash注册为" quickstart-data"话题但我暂时失败了。
这是我的logstash.conf文件:
myApp.service('fileUpload', ['$http', function ($http) {
this.uploadFileToUrl = function(file, uploadUrl){
var fd = new FormData();
fd.append('file', file);
var info = {
"text":"file_name"
};
fd.append('data', angular.toJson(info));
$http.post(uploadUrl, fd, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
})
.success(function(){
})
.error(function(){
});
}
}]);
与Elasticsearch的连接有效,因为我使用心跳输入进行了测试。 我得到的消息错误如下: 无法建立与节点-1的连接。经纪人可能无法使用。 放弃发送元数据请求,因为没有节点可用
有什么想法吗?
答案 0 :(得分:0)
我建议你保持简单,并使用Kafka Connect将数据登陆到Elasticsearch:https://docs.confluent.io/current/connect/connect-elasticsearch/docs/elasticsearch_connector.html#quick-start
答案 1 :(得分:0)
也许有更好的方法可以做到这一点,但在这里我可以解决此问题:
zookeeper:
image: confluentinc/cp-zookeeper:latest
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
networks:
- stack
kafka:
image: confluentinc/cp-kafka:latest
ports:
- "9092:9092"
environment:
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
depends_on:
- zookeeper
networks:
- stack
input {
stdin{}
kafka {
id => "my_kafka_1"
bootstrap_servers => "kafka:29092"
topics => "test"
}
}