elasticsearch,logstash,codec,Json,Amazon Web Services,elasticsearch,Logstash,Codec" /> elasticsearch,logstash,codec,Json,Amazon Web Services,elasticsearch,Logstash,Codec" />

如何使用AmazonES的Logstash插件向ES发送json事件?

如何使用AmazonES的Logstash插件向ES发送json事件?,json,amazon-web-services,elasticsearch,logstash,codec,Json,Amazon Web Services,elasticsearch,Logstash,Codec,我是新手。正在尝试使用向ES发送json事件 但是,当我给出以下配置时,它不识别任何事件 input { file { path => "C:/Program Files/logstash-2.3.1/transactions.log" start_position => beginning codec => "json_lines"

我是新手。正在尝试使用向ES发送json事件 但是,当我给出以下配置时,它不识别任何事件

   input {
        file {
            path => "C:/Program Files/logstash-2.3.1/transactions.log"
            start_position => beginning
            codec => "json_lines"
        }
    }
    filter {
       json {
            source => "message"
       }
    }
    
    output {
        amazon_es {
            hosts => ["endpoint"]
            region => "us-east-1"
            codec => json
            index => "production-logs-%{+YYYY.MM.dd}"
            
        }
    }
我正在调试模式下运行它,但日志中没有任何内容 在开始从Logstash发送事件之前,是否还需要创建索引

下面的配置以某种方式工作,但是它不识别任何json字段

input {
    file {
        path => "C:/Program Files/logstash-2.3.1/transactions.log"
        start_position => beginning
    }
}

output {
    amazon_es {
        hosts => ["Endpoint"]
        region => "us-east-1"
        index => "production-logs-%{+YYYY.MM.dd}"
    }
}

这里可能有几个因素在起作用,包括:

  • Logstash认为您的文件已被处理。开始位置仅适用于以前未见过的文件。如果正在测试,请将sincedb_path设置为/dev/null,或者手动管理注册表文件
  • 您有映射问题。Elasticsearch将在字段映射不正确时删除文档(尝试将字符串插入数字字段等)。如果您可以在AWS上找到elasticsearch日志,则应将其显示在日志中
  • 调试非常冗长。如果你真的什么都没有得到,那么你就没有收到任何输入。请参见第一个项目符号
  • 在工作正常之前,添加stdout{}输出是一个好主意。这将显示logstash发送给elasticsearch的内容

在Windows 7上运行它日志中有什么内容?Logstash在解析文件时非常糟糕,您确实需要正确地过滤/解析它以转储到输出,否则它将忽略它们。>默认情况下,每个事件假定为一行。如果要将多个日志行合并到一个事件中,则需要使用多行编解码器或过滤器。确保日志为1行,没有换行符,格式正确的json,并且logstash不会重新读取它已处理的行,因此需要确保将“新”行追加到文件中。