Проблема в скоплениях в эластичном поиске и кибане - PullRequest
0 голосов
/ 18 декабря 2018

Я использую ELK версии 6.1.1 с моим Ubuntu 16.04 LTS.

постановка задачи:

У меня есть журналы, которые регистрируются каждый час.Сначала я хочу найти максимум определенного поля, приходящего в эту строку журнала, теперь я хочу получить строку журнала, значение поля которой равно max, и извлечь значение другого поля из этой строки журнала и показать в матричной визуализации.

Я могу получить максимум этого поля, но я не знаю, как мы можем получить этот логлайн и извлечь из него другое поле.

Это похоже на запрос базы данных -

ВЫБЕРИТЕ field2 ИЗ ЖУРНАЛОВ ГДЕ field1 = 'max (field1)' И duration = 'selected_duration'

;

Может кто-нибудь помочь мне найти решение?

Спасибо

Ответы [ 3 ]

0 голосов
/ 18 декабря 2018
GET loggs/_search
{
  "size": 0, 
  "aggs": {
    "NAMEField":{
      "terms": {
        "field": "field2"
      }
    },
    "max_score": {
      "max": {
        "field": "field1"
      }
      }
  },
  "query": {
    "range": {
      "timestamp": {
        "gte": "now-4d/d",
        "lte": "now/d"
      }
    }
  }
}
0 голосов
/ 21 января 2019

Ваш запрос должен быть:

GET  metricbeat-*/_search
  {
  "size": 0, 
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "@timestamp": {
              "gte": "now-15m",
              "lte": "now"
            }
          }
        }
      ]
    }
  },
  "aggs": {
        "allField2": {
          "terms": {
            "field": "field2"
        }
      },
        "maxValue": {
           "max": {
             "field": "field1"
                }
        }

    }
}

И вывод будет:

{
  "took": 15,
  "timed_out": false,
  "_shards": {
    "total": 65,
    "successful": 65,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 1215,
    "max_score": 0,
    "hits": []
  },
  "aggregations": {
    "allField2": {
      "doc_count_error_upper_bound": 0,
      "sum_other_doc_count": 80,
      "buckets": [
        {
          "key": 0.21092499792575836,
          "doc_count": 1
        },
        {
          "key": 0.21797500550746918,
          "doc_count": 1
        },
        {
          "key": 0.22032499313354492,
          "doc_count": 1
        },
        {
          "key": 0.23864999413490295,
          "doc_count": 1
        },
        {
          "key": 0.23907500505447388,
          "doc_count": 1
        },
        {
          "key": 0.24650000035762787,
          "doc_count": 1
        },
        {
          "key": 0.24842500686645508,
          "doc_count": 1
        },
        {
          "key": 0.2488500028848648,
          "doc_count": 1
        },
        {
          "key": 0.2504250109195709,
          "doc_count": 1
        },
        {
          "key": 0.2511749863624573,
          "doc_count": 1
        }
      ]
    },
    "maxValue": {
      "value": 3.1563000679016113
    }
  }
}
0 голосов
/ 18 декабря 2018
GET loggs/_search
{
  "size": 0, 
  "aggs": {
    "NAME": {
      "max": {
        "field": "field1"
      }
    }
  },
  "query": {
    "range": {
      "timestamp": {
        "gte": "now-4d/d",
        "lte": "now/d"
      }
    }
  }
}
...