我创建了一个 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))
Run Code Online (Sandbox Code Playgroud)
现在,我希望我的应用程序的任何用户都能看到此仪表板,经过筛选以便仅查看他们的数据。我需要的过滤查询非常简单,因为所有数据都包含一个字段user_id。
示例:对于具有标识符的用户$id,我想加载带有过滤器的仪表板user_id:$id
有没有办法通过url设置过滤器?我看到已经有一些参数(refreshInterval,time..),但我找不到正确的文档。有任何想法吗?
使用 Kibana6.2.2和 ElasticSearch6.6.0
我尝试通过参数设置过滤器_a,如下所述: https: //discuss.elastic.co/t/dashboard-search-parameter-via-url/84385,但没有成功。
{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")))
Run Code Online (Sandbox Code Playgroud) 我正在努力过滤 Kibana 日志消息中的方括号。假设我有以下消息:
[BOOK] The Book 32 was sold
Exception on buying BOOK
Run Code Online (Sandbox Code Playgroud)
我想只过滤具有完全正确的消息[BOOK](所以我应该只得到第一个)。
我尝试过使用我能想到的各种转义来过滤自由文本:
[BOOK]
"[BOOK]"
\[BOOK\]
"\[BOOK\]"
\\[BOOK\\]
Run Code Online (Sandbox Code Playgroud)
还尝试按消息字段进行过滤:
message: [BOOK]*
message: "[BOOK]*"
message: \[BOOK\]*
message: "\[BOOK\]*"
Run Code Online (Sandbox Code Playgroud)
但 Kibana 似乎只是忽略了方括号,并且总是带来这两条消息,仅突出显示该BOOK单词。
我怎样才能强制它搜索[]?
我使用SerilogElasticsearch sink 的配置如下:
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.MinimumLevel.Override("Microsoft", LogEventLevel.Verbose)
.Enrich.FromLogContext()
.Enrich.WithExceptionDetails()
.Enrich.WithProperty("Application", "abc")
.Enrich.WithProperty("Environment", env.EnvironmentName)
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(Configuration["LoggingEndpoint"]))
{
AutoRegisterTemplate = true,
CustomFormatter = new ExceptionAsObjectJsonFormatter(renderMessage: true) // Better formatting for exceptions
})
Run Code Online (Sandbox Code Playgroud)
// 然后:
services.AddLogging(loggingBuilder =>
loggingBuilder.AddSerilog());
Run Code Online (Sandbox Code Playgroud)
但是我可以在 Kibana 上看到每个日志两次,时间戳相差几毫秒。我尝试了此处提供的解决方案,以防万一它们可能有所帮助,但没有运气。
我有一个堆积条形图,由布尔字段分割。这会导致图例以两种颜色显示(酷!),但图例具有以下值:true 和 false。对于读者来说,没有上下文说明什么是正确的,什么是错误的。
在本例中,字段名称为is_active。
至少让字段名称出现在图例中将有助于人们阅读和理解图表。
更好:有没有办法分别用“Active”和“Inactive”替换“true”和“false”?
我尝试了这个高级->JSON 输入:
{
"script": {
"inline": "doc['is_active'].value ? 'Active' : 'Inactive'",
"lang": "painless"
}
}
Run Code Online (Sandbox Code Playgroud)
这会导致错误“String无法转换为java.lang.Number”。如果我用数字替换 JSON 输入中的字符串,数字确实会出现在图例中。但没有帮助。
如何在 AWS 环境中自动化 Kibana 保存对象的版本控制?
我在 AWS 上托管了一个 Elasticsearch 域,并且我已经配置了 Kibana 来可视化数据。现在,出于以下几个原因,我想对 Kibana 配置进行版本控制:
到目前为止,我发现的唯一解决方案包括几个手动步骤:
备份:
Saved Objects在 Kibana 管理控制台中选择选项卡Export Everything按钮恢复:
Index Patterns在 Kibana 管理控制台中选择选项卡Saved Objects在 Kibana 管理控制台中选择选项卡Import按钮并上传受版本控制的 .json 文件amazon-web-services elasticsearch kibana elasticsearch-6 kibana-6
有没有可能在时间轴上分裂多次?
目前,我使用这样的表达式:
.es(q='name:*jvm*', metric=avg:mean, split=name.keyword:10)
.label(regex='.*whatever\.(.*) >.*', label=$1)
Run Code Online (Sandbox Code Playgroud)
产生时序图。
如果要添加第二个应用程序,则只需在es查询中添加另一个带有附加AND的表达式,然后按以下方式拆分:
.es(q='name:*jvm* AND app:one', metric=avg:mean, split=name.keyword:10)
.label(regex='.*whatever\.(.*) >.*', label='one-$1'),
.es(q='name:*jvm* AND app:two', metric=avg:mean, split=name.keyword:10)
.label(regex='.*whatever\.(.*) >.*', label='two-$1')
Run Code Online (Sandbox Code Playgroud)
不可能在单个表达式中执行此操作吗?
您能否为我提供一个提示,如何在Kibana Dev Tools控制台中注释掉行?我对注释语法感兴趣。
我想用ELK为我们的Spring Boot微服务实现集中配置。
我安装了3个不同版本的Kibana 6.3、6.7和7版本。取消注释端口和elasticsearch.url(使用的默认值-运行弹性搜索)
在控制台上连续获取以下警告和错误
log [05:40:20.028] [warning][task_manager]
The task maps_telemetry "Maps-maps_telemetry" is not cancellable.
log [05:40:24.145] [error][security]
Error registering Kibana Privileges with Elasticsearch for kibana-.kibana:
[security_exception] current license is non-compliant for [security], with { license.expired.feature="security" }
Run Code Online (Sandbox Code Playgroud)
npm -v 5.5.1
节点-v v8.9.3
java-版本1.8.121
感谢您的帮助解决此问题,以便我可以使用kibana。