Kinesis将输入流输入Logstash

时间:2017-02-16 21:09:42

标签: elasticsearch logstash amazon-kinesis

我目前正在评估Logstash的数据提取需求。其中一个用例是从AWS Kinesis流中读取数据。我试图安装logstash-input-kinesis插件。当我运行它时,我没有看到logstash处理流中的任何事件。我的logstash与其他类型的输入(tcp)一起正常工作。调试日志中没有错误。它只是表现为无需处理。我的配置文件是:

input {
    kinesis {
        kinesis_stream_name => "GwsElasticPoc"
        application_name => "logstash"
        type => "kinesis"
    }
    tcp {
         port => 10000
         type => tcp
    }
}

filter {
    if [type] == "kinesis" {
        json {
            source => "message"
        }  
    }

    if [type] == "tcp" {
        grok {
            match => { "message" => "Hello, %{WORD:name}"}
        }
    }
} 

output{
    if [type] == "kinesis"
    {
        elasticsearch{
            hosts => "http://localhost:9200"
            user => "elastic"
            password => "changeme"
            index => elasticpoc
        }
    }
    if [type] == "tcp"
    {
        elasticsearch{
            hosts => "http://localhost:9200"
            user => "elastic"
            password => "changeme"
            index => elkpoc
        }
    }
}

3 个答案:

答案 0 :(得分:0)

我没有尝试过logstash方法,但是如果你在AWS上运行的话。如http://docs.aws.amazon.com/firehose/latest/dev/basic-create.html#console-to-es

所述,可以使用Kinesis Firehose进行Elasticsearch摄取

你可以看看它是否可以作为logstash的替代品

答案 1 :(得分:0)

我们需要提供AWS凭据以访问AWS服务,以使此集成工作。

您可以在此处找到相同内容:https://github.com/logstash-plugins/logstash-input-kinesis#authentication

答案 2 :(得分:0)

此插件需要对AWS DynamoDB作为“检查点”数据库的附加访问权限。

如果有多个流,则需要使用'application_name'在DynamoDB中指定表名。

https://github.com/logstash-plugins/logstash-input-kinesis