gpt4 book ai didi

elasticsearch - 如何使用Elasticsearch过渡API(别名已更新以指向最新创建的索引)?

转载 作者:行者123 更新时间:2023-12-03 01:17:49 25 4
gpt4 key购买 nike

我有一个Logstash管道,该管道每天运行,并使用agent_index_%{+YYYY_MM_dd}索引签名将数据推送到Elasticsearch。因此,每天我都会创建一个新索引,例如:2020年5月5日的agent_index_2020_05_05和2020年5月6日的agent_index_2020_05_06。

对于此代理索引别名,可以使用其映射来更新它,这很好用,但是我的要求是,代理别名应始终仅指向1个索引(即最新索引)。

映射

PUT /_template/agent_template
{
"order": 0,
"index_patterns": [
"agent_index_*"
],
"aliases": {
"agent": {}
}
}

我调查了 this,但看起来索引名称必须以增量数字结尾。
POST /agent/_rollover?dry_run
{
"conditions": {
"max_age": "1d"
}
}

错误
{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "index name [agent_index_2020_05_06] does not match pattern '^.*-\\d+$'"
}
],
"type": "illegal_argument_exception",
"reason": "index name [agent_index_2020_05_06] does not match pattern '^.*-\\d+$'"
},
"status": 400
}

有没有一种方法可以使用Elasticsearch Rollover API仅允许在别名中更新最新创建的索引,这意味着在给定点,别名仅指向一个索引即最新索引?

注意:使用Elasticsearh v6.2.4

更新

我的Logstash配置
input {
jdbc {
jdbc_driver_library => "ojdbc7.jar"
jdbc_driver_class => "Java::oracle.jdbc.OracleDriver"
jdbc_connection_string => "jdbc:oracle:thin:@EDM:1521/aba"
jdbc_user => "read"
jdbc_password => "read"
schedule => "50 6 * * *"
statement_filepath =>"agent.sql"
}
}
output {
elasticsearch {
hosts => "localhost:17002"
index => "agent_index_%{+YYYY_MM_dd}"
document_type => "agent"
}
}

更新

使用 monitoring API来获取@Val建议的详细信息,但是每次我运行 curl -XGET "localhost:15050/_node/stats/events?pretty"时,我都会得到不同的IN计数。请检查下面的屏幕截图。那么,如何确定是否提取了全部事件?

enter image description here

最佳答案

在ES 6.2中,过渡API要求索引名称以序列号结尾,例如-00001。但是,如果不是这种情况,那么也可以使用其他索引名,但是您需要在翻转调用中添加specify it explicitly,如下所示:

POST /agent/_rollover/agent_index_2020_05_13
{
"conditions": {
"max_age": "1d"
}
}

因此,如果别名 agent所指向的索引早于一天,则翻转调用将创建一个名为 agent_index_2020_05_13的新索引。

注意:但是,由于ES 6.2.4是 EOL,因此您应该将堆栈升级到至少6.6,然后在Logstash中免费获得 ILM support,它将负责在ES中正确设置所有内容。

关于elasticsearch - 如何使用Elasticsearch过渡API(别名已更新以指向最新创建的索引)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61642967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com