Я использую Logstash, ElasticSearch и Kibana, чтобы позволить нескольким пользователям входить в систему и просматривать пересланные ими данные журнала. Я создал псевдонимы индексов для каждого пользователя. Они ограничивают свои результаты, чтобы они содержали только их собственные данные.
Я хотел бы назначить пользователей в группы и разрешить пользователям просматривать данные для компьютеров в своей группе. Я создал отношения родитель-потомок между группами и пользователями и создал фильтр поиска терминов для псевдонима.
Моя проблема в том, что я получаю RoutingMissingException
, когда пытаюсь применить псевдоним.
Есть ли способ указать маршрут для фильтра поиска терминов? Как я могу искать термины в родительском документе?
Я разместил сопоставление и псевдоним ниже, но полное описание доступно по этой ссылке.
curl -XPUT 'http://localhost:9200/accesscontrol/' -d '{
"mappings" : {
"group" : {
"properties" : {
"name" : { "type" : "string" },
"hosts" : { "type" : "string" }
}
},
"user" : {
"_parent" : { "type" : "group" },
"_routing" : { "required" : true, "path" : "group_id" },
"properties" : {
"name" : { "type" : "string" },
"group_id" : { "type" : "string" }
}
}
}
}'
# Create the logstash alias for cvializ
curl -XPOST 'http://localhost:9200/_aliases' -d '
{
"actions" : [
{ "remove" : { "index" : "logstash-2014.04.25", "alias" : "cvializ-logstash-2014.04.25" } },
{
"add" : {
"index" : "logstash-2014.04.25",
"alias" : "cvializ-logstash-2014.04.25",
"routing" : "intern",
"filter": {
"terms" : {
"host" : {
"index" : "accesscontrol",
"type" : "user",
"id" : "cvializ",
"path" : "group.hosts"
},
"_cache_key" : "cvializ_hosts"
}
}
}
}
]
}'