elasticsearch 通过url设置Kibana仪表板过滤器,elasticsearch,kibana,kibana-6,elasticsearch,Kibana,Kibana 6" /> elasticsearch 通过url设置Kibana仪表板过滤器,elasticsearch,kibana,kibana-6,elasticsearch,Kibana,Kibana 6" />

elasticsearch 通过url设置Kibana仪表板过滤器

elasticsearch 通过url设置Kibana仪表板过滤器,elasticsearch,kibana,kibana-6,elasticsearch,Kibana,Kibana 6,我创建了一个Kibana仪表板,其中包含一些可视化内容。我可以使用提供的url成功嵌入仪表板: {url}/app/kibana#/dashboard/{dashboard_uuid}?embed=true&_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:now-1y,mode:quick,to:now)) 现在,我想让我的应用程序的任何用户都能看到这个仪表板,经过过滤后,只能看到他们的数据。我需要的过滤查询非

我创建了一个Kibana仪表板,其中包含一些可视化内容。我可以使用提供的url成功嵌入仪表板:

{url}/app/kibana#/dashboard/{dashboard_uuid}?embed=true&_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:now-1y,mode:quick,to:now))
现在,我想让我的应用程序的任何用户都能看到这个仪表板,经过过滤后,只能看到他们的数据。我需要的过滤查询非常简单,因为所有数据都包含一个字段
user\u id

例如:对于标识符为
$id
的用户,我想用过滤器
user\u id:$id
加载仪表板

有没有办法通过url设置过滤器?我看到已经有一些参数(
refreshInterval
time
),但是我找不到合适的文档。有什么想法吗

使用Kibana
6.2.2
和ElasticSearch
6.6.0

我尝试通过
\u a
参数设置过滤器,如下所述:没有成功

{url}/app/kibana#/dashboard/{dashboard_uuid}?
      embed=true&
      _g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:now-1y,mode:quick,to:now))&
      _a=(filters:!(),query:(querystring:(query: "user_id:1")))

我在寻找一个稍微相似的问题的解决方案时偶然发现了这个问题。我想我会分享两种选择,这两种选择都是我(大部分)工作的选择,但它们都应该满足你的需求


变量设置为应用程序状态的URL: 使用此方法,过滤器不会“固定”,因此,如果您的着陆仪表板上有另一个链接,则如果您单击该链接,过滤器将不会保留。但是,您的其他全局状态设置(时间范围等)仍然存在


变量设置为全局状态的URL: 使用此方法,过滤器将被“固定”,并在其他单击过程中保持不变。但是,此URL将覆盖所有其他全局状态设置(时间范围等)

这就是我所在的地方。我希望过滤器保持固定状态,但如果我也设置了时间过滤器,单击此链接将不幸默认为Kibana中的
timepicker:timeDefaults
设置



我仍然没有找到解决我的问题的办法,但我希望这能回答原来的问题;或者可以帮助在这里遇到困难的其他人(因为这个线程现在已经很旧了)。

我建议转到仪表板,在GUI中设置过滤器并复制url。然后用变量替换url中筛选器的值。其他应用程序可能无法解析庞大的kibana url。为了解决这个问题,我找到了两个选择或使用该服务。
../app/dashboards#/view/{dashboard_uuid}?_a=(filters:!((query:(match_phrase:(user_id:$id)))))
../app/dashboards#/view/{dashboard_uuid}?_g=(filters:!((query:(match_phrase:(user_id:$id)))))