Elasticsearch Kibana 基本查询语法

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 Toolsconsole 记录:

  • 匹配所有日志
    关键词: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 的日志

  • 多维度查询
    关键词:bool must match

    GET nginx_logs/access/_search
    {
      "query": {
        "bool": {
    		"must": [
    		  	{
    		    	"match":{"server_name":"www.test.com"}
          		},
    		    {
    				"match":{"status":"404"}
    		    }
    		]
        }
      }
    }
    

    匹配出server_namewww.test.com 并且 状态码status404的日志
    多个条件的话直接添加数组对象元素即可

  • 模糊查询
    关键词:wildcard

    GET nginx_logs/access/_search
    {
      "query": {
        "wildcard": {"status": "5*"}
      }
    }
    

    匹配出状态码status 以 5 开头的日志

  • 指定某个值 同时匹配多个字段
    关键词:multi_match
    query 要查询的值
    fields 要匹配的字段【数组】

    GET nginx_logs/access/_search
    {
      "query": {
        "multi_match": {
            "query":    "400",
            "fields":   [ "code", "status" ]
        }
      }
    }
    

    匹配出 字段codestatus400的所有日志

  • 一个字段查询多个值
    关键词:terms
    { “字段”:[ 要匹配的多个值 ] }

    GET nginx_logs/access/_search
    {
      "query": {
        "terms": {
            "status": ["400","402","406"]
        }
      }
    }
    
  • 多种组合查询
    关键词:bool must should range size sort
    来看一个例子:

    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"
          }
        }
      ]
    }
    

    解释:
    匹配出 状态值 status 满足以5开头 包含 400 402 406,并且日志时间time>= 2019-03-14 09:00:00 && <= 2019-03-14 15:30:00 范围内,查询结果按照time 字段 desc 倒叙排列。 查询出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"
          }
        }
      ]
    }
    

    解释:
    匹配出日志中path字段包含以下值的所有情况:(*通配符)

    /oauth/v2/token
    /sovellpay/v2/trade
    */order/info
    /sovellpay/v2/payment/*
    

    请求时长request_time 大于等于2s 的日志记录(时间和排序那些见上个例子)


    希望对大家有所帮助~

    loading...

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值