1 of 21 shards failed

Привет товарищи! Ни у кого не вываливалось подобное сообщение в Кибане (1 of 21 shards failed)? Оно возникает когда включаю визуализацию 3х таблиц с логами nginx с выборкой за +-3 часа (не только с ним проблема) и когда загружается большой объем данных (на самом деле не такой большой) . Если делать выборку за 15 минут, то все работает нормально. Пробовал уже гуглить проблему, но у других была совсем другая проблема.
Такое ощущение, что кластер эластика просто не справляется с нагрузкой.
Если у кого-нибудь было что то подобное, подскажите как решить..
Спасибо! :slight_smile:

Версия стэка 7.1.0 (jvm 12.0.1)
В кластере 4 ноды. В логах эластика ничего интересного нет кроме старых ворнингов, которые там лежат с момента последнего перезапуска.

Надо смотреть на конкретную ошибку. Там в тексте ошибки или в логах что-нибудь кроме 1 of 21 shards failed еще есть?

К сожалению нет. Пока ищу информацию как настроить логирование, чтобы он писал обо всем.

На визулизациях есть ... в правом верхнем углу. Надо на них нажать, переключиться в "Inspect", поменять "View: Data" на "View: Requests", потом на закладку "Response".

На что стоит тут посмотреть?

{
  "took": 14329,
  "timed_out": false,
  "_shards": {
    "total": 21,
    "successful": 17,
    "skipped": 0,
    "failed": 4,
    "failures": [
      {
        "shard": 0,
        "index": "logfiles-2021.06.10-000382",
        "node": "JwiLljduSh29Ewylchi_OA",
        "reason": {
          "type": "too_many_buckets_exception",
          "reason": "Trying to create too many buckets. Must be less than or equal to: [10000] but was [10001]. This limit can be set by changing the [search.max_buckets] cluster level setting.",
          "max_buckets": 10000
        }
      },

UPD Кажется понял куда смотреть попробую найти место, где нужно поменять значение "max_buckets"

Расширил лимиты (max_buckets: "99999999")
Возникли новые сообщения и тут я задумался. Не будет ли опасно, если я сейчас все эти лимиты расширю и может быть данные действительно большие исходя из "лога"? Что вы сможете порекомендовать мне в данном случае?

{
  "took": 10317,
  "timed_out": false,
  "_shards": {
    "total": 21,
    "successful": 18,
    "skipped": 0,
    "failed": 3,
    "failures": [
      {
        "shard": 0,
        "index": "logfiles-2021.06.14-000386",
        "node": "l-lT1JOcTFuyTjBu-JwsKA",
        "reason": {
          "type": "circuit_breaking_exception",
          "reason": "[parent] Data too large, data for [<reused_arrays>] would be [5035054240/4.6gb], which is larger than the limit of [5034029875/4.6gb], real usage: [5035054168/4.6gb], new bytes reserved: [72/72b]",
          "bytes_wanted": 5035054240,
          "bytes_limit": 5034029875,
          "durability": "TRANSIENT"
        }
      },
      {
        "shard": 0,
        "index": "logfiles-2021.06.15-000387",
        "node": "IKiHiGakQTC56cgIV6Jlsw",
        "reason": {
          "type": "circuit_breaking_exception",
          "reason": "[parent] Data too large, data for [<reused_arrays>] would be [5034959704/4.6gb], which is larger than the limit of [5034029875/4.6gb], real usage: [5034959632/4.6gb], new bytes reserved: [72/72b]",
          "bytes_wanted": 5034959704,
          "bytes_limit": 5034029875,
          "durability": "PERMANENT"
        }
      },
      {
        "shard": 0,
        "index": "logfiles-2021.06.22-000394",
        "node": "uFcIxSADQ72BxfmvoJQzQg",
        "reason": {
          "type": "too_many_buckets_exception",
          "reason": "Trying to create too many buckets. Must be less than or equal to: [10000] but was [10001]. This limit can be set by changing the [search.max_buckets] cluster level setting.",
          "max_buckets": 10000
        }
      }
    ]
  },

Если в визуализациях посмотреть на X-Axis, то там, скорее всего, будет Date Histogram стоять. Посмотрите в поле "Minimum interval" если там секунды стоят, то переставьте на auto. Вы, похоже, слишком много результатов запрашиваете.

В последних версиях кибаны мы от этого защиту поставили, но, наверное, в 7.1 ее еще не было.

Круто! Да, этого поля я у нас не наблюдаю. Попробую пока что-нибудь поискать про изменение лимитов.

Не лимиты надо менять, а интервалы. Если у вас они в секундах - это пустая трата ресурсов. В 3-х часах 10,800 секунд, если у вас гистограмма с шагом в секунду - вы получаете информацию для 10,000+ точек. У вас экране только максимум половину от этих точек может показать - и то если у вас 5К дисплей и вы этот график смотрите в полный экран. В реальности среднее разрешение экрана сейчас не больше 2000 точек и обычно размешают 2 графика на экран, то есть вы 9 из 10 полученных результатов просто выбрасываете, так как отразить их не можете,

У нас не гистограмма даже, а простая Table, с разными Term (к примеру с полями access.log nginx'a)

Сама Кибана иногда виснет при отображении дашборда. Пишет следующее:

{"statusCode":429,"error":"Too Many Requests","message":"[circuit_breaking_exception] [parent] Data too large, data for [<http_request>] would be [5035760144/4.6gb], which is larger than the limit of [5034029875/4.6gb], real usage: [5035760144/4.6gb], new bytes reserved: [0/0b], with { bytes_wanted=5035760144 & bytes_limit=5034029875 & durability=\"PERMANENT\" }"}

Надо менять запрос, он у вас слишком большой

Не знаете откуда он берет эту цифру про 4.6гб?

Знаю, но эта не та цифра, на которую вам надо смотреть. Надо смотреть на запрос и разбираться.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.