logstash+Elasticseach单节点 让logstash生成单副本索引

发布时间 2023-07-11 10:31:26作者: 香菜哥哥

要让 Logstash 和 Elasticsearch 生成单副本索引,请按照以下步骤更改 Logstash 的输出配置文件:

  1. 打开 Logstash 配置文件,该文件默认位于 logstash/config 目录下。

  2. 找到输出部分配置,并添加以下行:

    output {
      elasticsearch {
        hosts => ["localhost"]
        index => "your_index_name"
        manage_template => false
        replication => 1
      }
    }

    其中:

    • your_index_name 是要创建的索引名称。

    • replication => 1 使 Elasticsearch 生成单副本索引。默认情况下,Elasticsearch 生成 1 个主分片和 1 个副本分片,如果要生成单副本索引,则应将 replication 参数设置为 1。

    • manage_template => false 可以禁用 Elasticsearch 模板管理。如果启用模板管理,它可以在创建新索引时自动应用模板,而不必在每个新索引中手动设置副本数量。

  3. 保存并关闭配置文件。

  4. 重启 Logstash。

在上述配置更改后,Logstash 将使用指定的名称将事件发送到 Elasticsearch,创建单副本索引。请注意,如果要更改索引名称或生成多副本索引,请更改上述配置中的相应字段。

 

manage_template => false有什么好处

在 Logstash 输出配置中,将 manage_template => false 设置为 true 会启用 Elasticsearch 模板管理。启用模板管理可以自动应用与特定索引匹配的模板,从而使索引具有相同的映射和设置。

然而,禁用模板管理(即将 manage_template => false 设置为 true)具有以下优点:

  1. 灵活性:禁用模板管理可以使每个索引有自己的映射和设置,而不限于模板中定义的全局配置。这使得索引更加灵活,可以根据需要进行自定义。

  2. 映射冲突解决:如果启用模板管理,并且模板中定义的映射与实际需要的映射不匹配,则可能会出现映射冲突。禁用模板管理可以避免这种情况,因为每个索引可以拥有自己的自定义映射。

  3. 索引名称控制:禁用模板管理可以更好地控制索引的名称。如果启用模板管理,则模板可能会在所有匹配指定模式的索引上自动应用,导致出现不需要的索引。

总之,禁用模板管理可以提高 Elasticsearch 索引的灵活性和可控性,因为每个索引都可以拥有自己的映射和设置。这样可以根据需要进行自定义。但是,如果需要应用相同的设置和映射,则启用模板管理可能更加便于管理和维护。