我目前正在评估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
}
}
}
答案 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中指定表名。