当前位置: 首页 > 面试题库 >

Logstash输出到AWS EC2上的Elasticsearch

陈欣荣
2023-03-14
问题内容

我在配置logstash以输出到AWS EC2上的Elasticsearch集群时遇到麻烦。

我正在使用Logstash版本1.1.5和Elasticsearch 1.19.8。

这是我在logstash中的输出配置:

output {
  stdout { debug => true debug_format => "json"}
  elasticsearch {
    cluster => "logstash-searcher"
    node_name => "logstash-indexer"
  }
}

这是elasticsearch.yml中的相应配置

cluster.name: logstash-searcher
path.data: /usr/local/elasticsearch/data
path.work: /usr/local/elasticsearch/tmp
path.logs: /usr/local/elasticsearch/logs
path.plugins: /usr/local/elasticsearch/plugins
bootstrap.mlockall: true
cloud.aws.region: eu-west-1
cloud.aws.access_key: --
cloud.aws.secret_key: --
discovery.type: ec2
discovery.ec2.host_type: public_ip
discovery.ec2.groups: elasticsearch
gateway.type: s3
gateway.s3.bucket: es-logstash

transport.tcp.port: 9300-9400

我使用以下命令启动logstash:

java -jar logstash-1.1.5-monolithic.jar agent -f shipper.conf

在启动一段时间后,出现以下故障:

Failed to index an event, will retry {:exception=>org.elasticsearch.discovery.MasterNotDiscoveredException: waited for [1m],

我的怀疑是,logstash需要使用诸如cloud-
aws之类的东西来让它的elasticsearch客户端能够找到集群。有没有人可以在AWS上运行的示例配置?


问题答案:

问题在于,logstash的嵌入式Elasticsearch实例正在使用其默认发现模式。由于elasticsearch
集群配置了云技术,因此也需要对logstash进行嵌入式elasticsearch。

为此,您必须将elasticsearch.yml配置文件添加到logstash的工作目录中。您还需要通过将cloud-aws插件添加到类路径中来提供它。

java -cp logstash-1.1.7-monolithic.jar:cloud-aws/* logstash.runner agent -f shipper.conf

使用这种配置,我设法使logstash输出到我的elasticsearch集群。



 类似资料:
  • 我试图在logstash 5.1.2上运行插件,并得到错误:直接事件字段引用(即event['field']='value')已被禁用,以支持使用event get和set方法(例如event.set('field','value'))。有关更多详细信息,请参阅Logstash 5.0破坏性更改文档。 19:20:09.456[LogStash::Runner]信息LogStash。输入。mong

  • 问题内容: 这是我另一个问题的跟进:Logstash中的JSON解析器忽略数据了吗? 但是这次我觉得问题比上次更清楚了,可能更容易回答。 我正在使用JSON解析器,如下所示: logstash.stdout中一个日志的输出部分看起来像这样: 当我删除JSON代码时,有一堆字段就像上面的字段一样工作。当我添加JSON过滤器时,由于某种原因,整个日志只会从elasticserach / kibana中

  • 我正在尝试设置logstash input mongodb插件,以便从我的数据库中读取审计,但所有解析策略似乎都有问题,我不知道如何定制任何内容。 “flatte”parse_方法工作得很好,但它忽略了mongodb对象ID,并且除了在log_输入字段中之外,不会在任何地方输出它们。 “简单”parse_method包括对象标识,但以我无法弄清楚如何使用日期过滤器解析日期的方式输出日期(例如,“2

  • 问题内容: 我正在尝试使用Logstash将XML转换为ElasticSearch的JSON。我能够读取值并将其发送到ElasticSearch。问题是所有值都以数组形式出现。我想让它们像字符串一样出来。我知道我可以为每个字段分别执行操作,但是随后遇到了一个问题,嵌套字段的深度为3级。 XML格式 Logstash配置 示例输出 如您所见,输出是每个元素的数组(我替换为的locationId除外)

  • 问题内容: 我正在使用logstash jdbc来保持mysql和elasticsearch之间的同步。一张桌子工作正常。但是现在我想对多个表执行此操作。我需要在终端中打开多个 每个查询都有一个选择查询,或者我们有更好的方法来进行查询,因此可以更新多个表。 我的配置文件 问题答案: 你绝对可以有多个单配置输入,然后参数化的,并在你的输出,这取决于表中的事件的来源。

  • 问题内容: 我正在使用Logstash和Elasticsearch版本5.6.5。到目前为止,已将Elasticsearch输出与HTTP协议一起使用,并且未进行身份验证。现在,使用基本身份验证(用户/密码)和CA认证的HTTPS URL保护Elasticsearch。我对Elasticsearch服务器没有任何控制权。我只是用它从Logstash输出到。 现在,当我尝试使用基本身份验证配置ela