logstash+Elasticseach单节点 让logstash生成单副本索引
要让 Logstash 和 Elasticsearch 生成单副本索引,请按照以下步骤更改 Logstash 的输出配置文件:(该方式只适用于老的版本,新的版本需要在模板中配置)
-
打开 Logstash 配置文件,该文件默认位于
logstash/config
目录下。 -
找到输出部分配置,并添加以下行:
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 模板管理。如果启用模板管理,它可以在创建新索引时自动应用模板,而不必在每个新索引中手动设置副本数量。
-
-
保存并关闭配置文件。
-
重启 Logstash。
在上述配置更改后,Logstash 将使用指定的名称将事件发送到 Elasticsearch,创建单副本索引。请注意,如果要更改索引名称或生成多副本索引,请更改上述配置中的相应字段。
模板中配置:
manage_template => false有什么好处
在 Logstash 输出配置中,将 manage_template => false
设置为 true 会启用 Elasticsearch 模板管理。启用模板管理可以自动应用与特定索引匹配的模板,从而使索引具有相同的映射和设置。
然而,禁用模板管理(即将 manage_template => false
设置为 true)具有以下优点:
-
灵活性:禁用模板管理可以使每个索引有自己的映射和设置,而不限于模板中定义的全局配置。这使得索引更加灵活,可以根据需要进行自定义。
-
映射冲突解决:如果启用模板管理,并且模板中定义的映射与实际需要的映射不匹配,则可能会出现映射冲突。禁用模板管理可以避免这种情况,因为每个索引可以拥有自己的自定义映射。
-
索引名称控制:禁用模板管理可以更好地控制索引的名称。如果启用模板管理,则模板可能会在所有匹配指定模式的索引上自动应用,导致出现不需要的索引。
总之,禁用模板管理可以提高 Elasticsearch 索引的灵活性和可控性,因为每个索引都可以拥有自己的映射和设置。这样可以根据需要进行自定义。但是,如果需要应用相同的设置和映射,则启用模板管理可能更加便于管理和维护。