elasticsearch 洛格萨什与卡夫卡,elasticsearch,logstash,apache-kafka,kafka-consumer-api,elasticsearch,Logstash,Apache Kafka,Kafka Consumer Api" /> elasticsearch 洛格萨什与卡夫卡,elasticsearch,logstash,apache-kafka,kafka-consumer-api,elasticsearch,Logstash,Apache Kafka,Kafka Consumer Api" />

elasticsearch 洛格萨什与卡夫卡

elasticsearch 洛格萨什与卡夫卡,elasticsearch,logstash,apache-kafka,kafka-consumer-api,elasticsearch,Logstash,Apache Kafka,Kafka Consumer Api,我的服务器机器上运行单节点kafka。 我使用以下命令创建主题“bin/kafka-topics.sh--create--zookeeper localhost:2181--replication factor 1--partitions 1--topic test”。 我有两个logstash实例正在运行。第一个从某个java应用程序日志文件读取数据,并将数据注入kafka。 工作正常,我可以使用“bin/kafka-console-consumer.sh--zookeer localhost

我的服务器机器上运行单节点kafka。 我使用以下命令创建主题“bin/kafka-topics.sh--create--zookeeper localhost:2181--replication factor 1--partitions 1--topic test”。 我有两个logstash实例正在运行。第一个从某个java应用程序日志文件读取数据,并将数据注入kafka。 工作正常,我可以使用“bin/kafka-console-consumer.sh--zookeer localhost:2181--topic test--from start”命令在控制台上查看kafka中的数据。但是另一个从kafka(同一主题“test”)读取并注入elasicsearch的logstash实例失败了。第二个logstash实例无法读取数据。我将其配置文件更改为从kafka读取并在控制台上打印,然后它也不会输出任何内容。以下是失败日志存储的配置文件:

// config file
     input {
        kafka {
        zk_connect => "localhost:2181"
        topic_id => "test" 
        }
        }
        output {
        stdout{}
        }
Logstash既不打印任何内容,也不会抛出任何错误。 我使用的是Logstash2.4和kafka 0.10。
我使用了kafka quick start guide()

如果查看kafka输入,您会看到一个重要参数,它允许连接到kafka集群:zk_connect

根据文档,它默认设置为localhost:2181。确保将其设置为Kafka群集实例,或者理想情况下设置为多个实例,具体取决于您的设置

例如,假设您使用JSON主题连接到一个三节点Kafka集群。配置如下所示:

kafka {
 topic_id => "your_topic"
 zk_connect => "kc1.host:2181,kc2.host:2181,kc3.host:2181"
}
此外,为主题配置正确的编解码器也很重要。上面的示例将用于JSON事件。如果使用Avro,则需要设置另一个参数-。关于如何配置它的详细信息有很好的文档记录。它基本上需要指向Avro模式文件,可以将其作为avsc文件或模式注册表端点(我认为这是更好的解决方案)

如果您的Kafka环境中运行了Schema Registry,则可以将编解码器指向它的url。一个完整的例子是:

kafka {
 codec => avro_schema_registry { endpoint => "http://kc1.host:8081"}
 topic_id => "your_topic"
 zk_connect => "kc1.host:2181,kc2.host:2181,kc3.host:2181"
}

希望它能起作用

请查看卡夫卡输入配置选项

@wjp 
Hi wjp, I am running single node kafka cluster. There is no Schema Registry running. zookeeper is also running.   I used following command to create topic "bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test".  I have two logstash instances running. First one reads data from some java application log file inject the same to the kafka. It works fine, I can see data in kafka on console using "bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning" command. But the other logstash instance which reads from kafka(same topic "test") and injects into elasicsearch, is failing. This second instance of logstash fails to read data. I changed its configuration file to read from kafka and print on console, then also it does not output anything.Here is the config file for failing logstash:
input {
kafka {
zk_connect => "localhost:2181"
topic_id => "test" 
}
}
output {
stdout{}
}
Logstash neither print anything nor it throws any error.
I am using Logstash 2.4 and kafka 0.10.
I used kafka quick start guide (http://kafka.apache.org/documentation.html#quickstart)
请找到卡夫卡数据的Logstash配置,并将其推送到ELK Stack

input {
  kafka {
    bootstrap_servers => "localhost:9092"
    topics => ["topic_name"]
  }
}

output{
    elasticsearch{
        hosts => ["http://localhost:9200/"]
        index => "index_name"
    }
}

希望有帮助

您确定在本地主机上运行Zookeeper实例吗?您好,wjp,我正在运行单节点kafka群集,kafka中的数据是一些XML。没有运行架构注册表。我查过动物园管理员,它也在运行。