Logstash 将相同的数据加载到相同的索引
Logstash loads the same data to same index
我使用logstash加载数据到ES。
我有一个 csv 文件,两列,使用 logstash 基本文件加载,如下所示。
input {
file {
path => "/Users/gibbs/Documents/search/mini_system_data_new.csv"
start_position => beginning
}
}
filter {
csv {
columns => [
"secure_flag",
"mini_system_key"
]
separator => ","
}
mutate {
remove_field => ["path", "host"]
}
}
output {
stdout
{
codec => rubydebug
}
elasticsearch {
action => "index"
hosts => ["127.0.0.1:9200"]
index => "mini_system"
document_id => "%{mini_system_key}"
}
}
加载时我没有创建索引。我意识到并创建了索引,但我没有停止 logstash。所以它加载了部分数据。
假设我重新启动了 logstash,但它没有加载。我明白要避免 this issue。但这里我有自定义 ID 字段,这个问题不应该发生。但是没有加载丢失的数据。
作为最糟糕的选择,我重新创建了索引并重新启动了 logstash。但这里没有帮助。
有什么加载数据的建议吗?
编辑:
我认为 logstash 创建了对文件名的引用。我重命名了数据文件并重新启动。它加载数据。
我想你正在寻找 sincedb_path
。
Logstash 在此位置维护已处理文件的状态。如果删除该文件并重新启动 logstash,它将再次读取该文件。
此外,我认为您不需要为在elasticsearch 中插入数据创建索引。有一个名为 Dynamic Mapping 的功能(除非您已禁用它 smh)。 Elasticsearch 将尝试自动从数据中推断映射。
所以,您错过的数据可能是因为格式不正确而丢失了。 CSV 过滤器过滤掉格式错误的行。尝试通过删除 CSV 过滤器来使用标准输出检查数据。
我使用logstash加载数据到ES。
我有一个 csv 文件,两列,使用 logstash 基本文件加载,如下所示。
input {
file {
path => "/Users/gibbs/Documents/search/mini_system_data_new.csv"
start_position => beginning
}
}
filter {
csv {
columns => [
"secure_flag",
"mini_system_key"
]
separator => ","
}
mutate {
remove_field => ["path", "host"]
}
}
output {
stdout
{
codec => rubydebug
}
elasticsearch {
action => "index"
hosts => ["127.0.0.1:9200"]
index => "mini_system"
document_id => "%{mini_system_key}"
}
}
加载时我没有创建索引。我意识到并创建了索引,但我没有停止 logstash。所以它加载了部分数据。
假设我重新启动了 logstash,但它没有加载。我明白要避免 this issue。但这里我有自定义 ID 字段,这个问题不应该发生。但是没有加载丢失的数据。
作为最糟糕的选择,我重新创建了索引并重新启动了 logstash。但这里没有帮助。
有什么加载数据的建议吗?
编辑:
我认为 logstash 创建了对文件名的引用。我重命名了数据文件并重新启动。它加载数据。
我想你正在寻找 sincedb_path
。
Logstash 在此位置维护已处理文件的状态。如果删除该文件并重新启动 logstash,它将再次读取该文件。
此外,我认为您不需要为在elasticsearch 中插入数据创建索引。有一个名为 Dynamic Mapping 的功能(除非您已禁用它 smh)。 Elasticsearch 将尝试自动从数据中推断映射。
所以,您错过的数据可能是因为格式不正确而丢失了。 CSV 过滤器过滤掉格式错误的行。尝试通过删除 CSV 过滤器来使用标准输出检查数据。