复制弹性搜索索引与Logstash
问题描述:
我在一台机器上有一个现成的Apache索引,我想克隆到另一台机器使用logstash。相当容易我以为复制弹性搜索索引与Logstash
input {
elasticsearch {
host => "xxx.xxx.xxx.xxx"
index => "logs"
}
}
filter {
}
output {
elasticsearch {
cluster => "Loa"
host => "127.0.0.1"
protocol => http
index => "logs"
index_type => "apache_access"
}
}
,拉过的文档,但不会停止,因为它使用的默认查询"*"
(原指标具有〜50.000文档和我杀前的脚本,当新的指数为过600.000文档和上升)
下一个我试图以确保文档会得到更新,而不是复制,而是this commit还没有做出这些事,所以我没有主..
然后我记得sincedb
但似乎无法在查询中使用它(或可能)
有什么建议吗?也许一个完全不同的方法?非常感谢!
答
假设elasticsearch输入创建与文档ID的logstash事件(我认为它会被_id或类似的东西),尝试设置弹性的搜索输出方式如下:
output {
elasticsearch {
cluster => "Loa"
host => "127.0.0.1"
protocol => http
index => "logs"
index_type => "apache_access"
document_id => "%{_id}"
}
}
这样,即使如果elasticsearch输入无论出于何种原因继续无限期地推送相同的文档,elasticsearch将仅更新现有文档,而不是使用新的id创建新文档。
一旦你达到50,000,你可以停下来。
你解决了这个问题吗?有类似的问题,但输入似乎只运行一次,并没有拿起输入索引上的任何新条目。 – Raoot 2016-05-10 12:07:57