Filter 指定索引别名上的路由';s术语查找过滤器
我正在使用Logstash、ElasticSearch和Kibana允许多个用户登录并查看他们转发的日志数据。我已经为每个用户创建了索引别名。这些限制了他们的结果只包含他们自己的数据 我希望将用户分配到组,并允许用户查看其组中计算机的数据。我在组和用户之间创建了父子关系,并在别名上创建了术语查找筛选器 我的问题是,当我尝试应用别名时,我收到一个Filter 指定索引别名上的路由';s术语查找过滤器,filter,elasticsearch,logstash,kibana,Filter,elasticsearch,Logstash,Kibana,我正在使用Logstash、ElasticSearch和Kibana允许多个用户登录并查看他们转发的日志数据。我已经为每个用户创建了索引别名。这些限制了他们的结果只包含他们自己的数据 我希望将用户分配到组,并允许用户查看其组中计算机的数据。我在组和用户之间创建了父子关系,并在别名上创建了术语查找筛选器 我的问题是,当我尝试应用别名时,我收到一个RoutingMissingException 是否有方法指定术语查找筛选器的路由?如何在父文档上查找术语 我在下面发布了地图和别名,但是这里有完整的要点
RoutingMissingException
是否有方法指定术语查找筛选器的路由?如何在父文档上查找术语
我在下面发布了地图和别名,但是这里有完整的要点
curl-XPUT'http://localhost:9200/accesscontrol/“-d”{
“映射”:{
“集团”:{
“财产”:{
“名称”:{“类型”:“字符串”},
“主机”:{“类型”:“字符串”}
}
},
“用户”:{
“_parent”:{“type”:“group”},
“_路由”:{“必需”:true,“路径”:“组id”},
“财产”:{
“名称”:{“类型”:“字符串”},
“组id”:{“类型”:“字符串”}
}
}
}
}'
#为cvializ创建日志存储别名
curl-XPOST'http://localhost:9200/_aliases“-d”
{
“行动”:[
{“删除”:{“索引”:“logstash-2014.04.25”,“别名”:“cvializ-logstash-2014.04.25”},
{
“加:{
“索引”:“logstash-2014.04.25”,
“别名”:“cvializ-logstash-2014.04.25”,
“路由”:“实习生”,
“过滤器”:{
“条款”:{
“主持人”:{
“索引”:“访问控制”,
“类型”:“用户”,
“id”:“cvializ”,
“路径”:“组.主机”
},
“\u缓存\u密钥”:“cvializ\u主机”
}
}
}
}
]
}'
在试图找到此错误的解决方法时,我向ElasticSearch团队报告,并收到了他们的答复。这是ElasticSearch中的一个缺陷,在动态映射之前应用了过滤器,导致了一些错误的输出。我已将他们的解决方法包括在下面:
PUT /accesscontrol/group/admin
{
"name" : "admin",
"hosts" : ["computer1","computer2","computer3"]
}
PUT /_template/admin_group
{
"template" : "logstash-*",
"aliases" : {
"template-admin-{index}" : {
"filter" : {
"terms" : {
"host" : {
"index" : "accesscontrol",
"type" : "group",
"id" : "admin",
"path" : "hosts"
}
}
}
}
},
"mappings": {
"example" : {
"properties": {
"host" : {
"type" : "string"
}
}
}
}
}
POST /logstash-2014.05.09/example/1
{
"message":"my sample data",
"@version":"1",
"@timestamp":"2014-05-09T16:25:45.613Z",
"type":"example",
"host":"computer1"
}
GET /template-admin-logstash-2014.05.09/_search