我们有以下格式的日志进入Kibana:
{
"starttime": "2019-04-07T23:31:07.855Z",
"maxlevel": "ERROR",
"messages": [
{
"time": "2019-04-07T23:31:07.861Z",
"level": "ERROR",
"message": "[application.controllers.RestApiController] no_staff_member Please identify yourself"
},
{
"time": "2019-04-07T23:31:07.862Z",
"level": "INFO",
"message": "[application.controllers.RestApiController] received request"
}
]
}
如何在Kibana中编写查询以搜索message.message中确实包含“ no_staff_member”的任何日志条目?
我尝试过:
messages.message:no_staff_member
messages.message:/.*no_staff_member.*/
答案 0 :(得分:0)
您需要直接在messages
字段中进行查询,它将在该字段上执行全文查询,而您无法在数组中的字段内部进行查询。
对象数组无法正常运行:您不能独立于数组中的其他对象查询每个对象。如果需要执行此操作,则应使用嵌套数据类型而不是对象数据类型。
如果将字段映射为nested,或者在对Elasticsearch进行索引之前对数据进行非规范化,则可以更改它。