elasticsearch 在Logstash中定义多个输出,同时处理Elasticsearch实例的潜在不可用性,elasticsearch,logstash,logstash-configuration,logstash-forwarder,elasticsearch,Logstash,Logstash Configuration,Logstash Forwarder" /> elasticsearch 在Logstash中定义多个输出,同时处理Elasticsearch实例的潜在不可用性,elasticsearch,logstash,logstash-configuration,logstash-forwarder,elasticsearch,Logstash,Logstash Configuration,Logstash Forwarder" />

elasticsearch 在Logstash中定义多个输出,同时处理Elasticsearch实例的潜在不可用性

elasticsearch 在Logstash中定义多个输出,同时处理Elasticsearch实例的潜在不可用性,elasticsearch,logstash,logstash-configuration,logstash-forwarder,elasticsearch,Logstash,Logstash Configuration,Logstash Forwarder,我为Logstash配置了两个输出,因为我需要将数据发送到不同位置的两个单独的Elasticsearch节点 下面是配置的一个片段(根据需要进行编辑): 在测试期间,我注意到如果一个ES实例,host1.local或host2.local不可用,则Logstash无法处理/向另一个实例传递数据,即使它可用 我是否可以对配置进行修改,以允许将数据传送到可用的Elasticsearch实例,即使其他实例死亡?logstash具有至少一次的传送模型。如果未启用,则数据可能会在重新启动过程中丢失,否则,

我为Logstash配置了两个输出,因为我需要将数据发送到不同位置的两个单独的Elasticsearch节点

下面是配置的一个片段(根据需要进行编辑):

在测试期间,我注意到如果一个ES实例,
host1.local
host2.local
不可用,则Logstash无法处理/向另一个实例传递数据,即使它可用


我是否可以对配置进行修改,以允许将数据传送到可用的Elasticsearch实例,即使其他实例死亡?

logstash具有至少一次的传送模型。如果未启用,则数据可能会在重新启动过程中丢失,否则,logstash将至少向所有输出传递一次事件。因此,如果一个输出变得不可访问,队列(内存或持久)将备份并阻止处理。您可以对模式使用持久队列和管道到管道通信,以避免在一个输出不可用时暂停另一个输出。

logstash具有至少一次的传递模型。如果未启用,则数据可能会在重新启动过程中丢失,否则,logstash将至少向所有输出传递一次事件。因此,如果一个输出变得不可访问,队列(内存或持久)将备份并阻止处理。您可以对模式使用持久队列和管道到管道的通信,以避免在一个输出不可用时暂停另一个输出

output {
  elasticsearch {
    hosts => [ "https://host1.local:9200" ]
    cacert => '/etc/logstash/config/certs/ca.crt'
    user => XXXXX
    password => XXXXX
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  }
 }

output {
  elasticsearch {
    hosts => [ "https://host2.local:9200" ]
    cacert => '/etc/logstash/config/certs/ca.crt'
    user => XXXXX
    password => XXXXX
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  }
}