2015-09-09 18 views
23

elasticsearch phiên bản 1.4.5elasticsearch/kibana 4: Trường tồn tại nhưng không bằng một giá trị

kibana 4.1.1

logstash 1.5.2-1

Làm thế nào để cấu trúc một tìm kiếm trong tab khám phá của kibana 4 chỉ trả về kết quả nếu một trường tồn tại nhưng không bằng một giá trị cụ thể?

Tôi có một số dữ liệu nhật ký apache trong nhật ký và tôi muốn trả về tất cả các mục có status_code được xác định nhưng không bằng 200. Vì vậy, nếu các giá trị có thể là {undefined, 200, 403, 404, 500, etc} I muốn xem tất cả các biến thể của 4xx và 5xx lỗi nhưng không phải bài viết khi lĩnh vực này không được định nghĩa và không phải là nơi nó được thiết lập để 200.

tôi đã thử những điều sau đây:

+status_code: (*) -status_code: (200) 

((status_code: (*) AND NOT status_code: (200)) 

tôi cũng thấy tài liệu tham khảo để elasticsearch curl queries nhưng tôi không chắc chắn làm thế nào để biến chúng thành một cái gì đó mà tôi có thể sử dụng trong kibana s thanh tìm kiếm. Dưới đây là ví dụ:

{ 
    "query": { 
    "constant_score": { 
     "filter": { 
     "bool": { 
      "must": { 
      "exists": { 
       "field": "status_code" 
      } 
      }, 
      "must_not": { 
      "term": { 
       "status_code": '200' 
      } 
      } 
     } 
     } 
    } 
    } 
} 

Cảm ơn!

Trả lời

44

Các truy vấn mà bạn đang tìm kiếm là một trong những điều này:

_exists_:status_code AND NOT status_code:200 

This link cho bạn thấy tất cả những gì đang được hỗ trợ bởi các truy vấn chuỗi truy vấn.

5

Câu trả lời trước đó là chính xác những gì tôi yêu cầu, tuy nhiên, điều này cũng có thể có ích:

status_code:[300 TO 600] 
Các vấn đề liên quan