Elasticsearch Kibana 기본 질의 구문

18075 단어 Elasticsearch
elasticsearch의 기본 개념은 여기서 소개하지 않고 알아야 할 자체 백과사전이다.
여기에는 주로 일상적인 이용Kibana을 이용하여es로그를 조회하는 문구를 기록하여 여러분에게 참고하도록 합니다.Kibana는 원천적인 분석과 시각화 플랫폼으로 Elasticsearch와 함께 작업할 수 있도록 설계되었다.
안내서 탐색:https://www.elastic.co/guide/cn/elasticsearch/guide/current/foreword_id.html https://www.elastic.co/guide/cn/kibana/current/introduction.html
형식 설명:
[` `]  [` `] / [`type`] / [` `] 
{
	"query": {
		 //  	
	}
}

콘솔Dev Tools 아래console 레코드:
  • 모든 로그 키워드 일치: match_all
    GET nginx_logs/access/_search
    {
      "query": {
        "match_all": {}
      }
    }
    
  • 특정한 필드의 값 조회 키워드를 지정합니다: match
    GET nginx_logs/access/_search
    {
      "query": {
        "match": {
    		"path": "/sovellpay/v2/trade"
        }
      }
    }
    
    일치하는 경로path/sovellpay/v2/trade의 로그
  • 다차원 검색 키워드: boolmustmatch
    GET nginx_logs/access/_search
    {
      "query": {
        "bool": {
    		"must": [
    		  	{
    		    	"match":{"server_name":"www.test.com"}
          		},
    		    {
    				"match":{"status":"404"}
    		    }
    		]
        }
      }
    }
    
    일치server_name 및 상태 코드www.test.comstatus의 로그 여러 가지 조건이 있으면 그룹 대상 요소를 직접 추가하면 된다
  • 모호한 검색 키워드: 404
    GET nginx_logs/access/_search
    {
      "query": {
        "wildcard": {"status": "5*"}
      }
    }
    
    일치 상태 코드wildcard 5로 시작하는 로그
  • 여러 필드 키워드와 일치하는 값을 지정합니다. statusquery가 조회할 값fields가 일치하는 필드 [수조]
    GET nginx_logs/access/_search
    {
      "query": {
        "multi_match": {
            "query":    "400",
            "fields":   [ "code", "status" ]
        }
      }
    }
    
    일치하는 필드 multi_matchcode status 의 모든 로그
  • 한 필드에서 여러 값 키워드 조회: 400 {"필드": [일치하는 여러 값]}
    GET nginx_logs/access/_search
    {
      "query": {
        "terms": {
            "status": ["400","402","406"]
        }
      }
    }
    
  • 다양한 조합 조회 키워드: terms를 보면 다음과 같다.
    GET nginx_logs/access/_search
    {
      "query": {
        "bool": {
    		"must": [
    		    {
    		        "bool":{
    		        	"should":[
    			          	{"wildcard": {"status": "5*"}},
                        	{"terms": {"status": ["400","402","406"]}}
    		         	]
    		        }
    		    },
                { 
                  "range": {
                  	"time": {"gte":"2019-03-14 09:00:00","lte":"2019-03-14 15:30:00"}
                  }
                }
            ]
    	}
      },
      "size":100,
      "sort": [
        {
          "time": {
            "order": "desc"
          }
        }
      ]
    }
    
    bool must should range size sort 일치 상태값 만족은 5로 시작status을 포함하고 로그 시간400 402 406time 범위 내에서 조회 결과는 >= 2019-03-14 09:00:00 && <= 2019-03-14 15:30:00 필드time에 따라 역순으로 배열된다.100개를 조회해 내다.또 다른 예:
    GET nginx_logs/access/_search
    {
      "query": {
        "bool": {
          "must": [
            {
              "bool": {
                "should": [
                  {
                    "wildcard": {
                      "path": "*/order/info"
                    }
                  },
                  {
                    "wildcard": {
                      "path": "/sovellpay/v2/payment/*"
                    }
                  },
                  {
                    "terms": {
                      "path": [
                        "/oauth/v2/token",
                        "/sovellpay/v2/trade"
                      ]
                    }
                  }
                ]
              }
            },
            {
              "range": {
                "request_time": {
                  "gte": 2
                }
              }
            },
            {
              "range": {
                "time": {
                  "gte": "2019-03-14 12:00:00",
                  "lte": "2019-03-14 15:30:00"
                }
              }
            }
          ]
        }
      },
      "size": 100,
      "sort": [
        {
          "time": {
            "order": "desc"
          }
        }
      ]
    }
    
    desc 로그의 path 필드에 다음 값이 포함된 모든 경우와 일치합니다.
    /oauth/v2/token
    /sovellpay/v2/trade
    */order/info
    /sovellpay/v2/payment/*
    
    요청 시간 request_time가 2s보다 큰 로그 기록(시간과 정렬 예시 참조) 도움이 되었으면 좋겠습니다. *
  • 좋은 웹페이지 즐겨찾기