Что это значит

Elasticsearch ограничивает число полей в одном индексе параметром index.mapping.total_fields.limit, по умолчанию 1000. Когда приходит документ с новыми полями и предел уже достигнут, документ отклоняется с этой ошибкой. Отправитель (Logstash, Vector, Filebeat) пишет её в свой журнал, а запись в индекс не попадает.

С журналами Directum RX это случается часто: в полях args и cust у разных сообщений разные вложенные ключи, и при автоматическом создании полей их число быстро растёт. В справке вендора случай описан для решения «Мониторинг Directum RX».

Как проверить

GET <индекс>/_settings?include_defaults=true&filter_path=**.total_fields
GET <индекс>/_mapping

Что сделать

  1. Быстро: поднять предел для текущего индекса.
PUT <индекс>/_settings
{ "index.mapping.total_fields.limit": 2000 }
  1. Для новых индексов прописать предел в шаблоне индекса, иначе завтра индекс снова создастся с 1000.
  2. Правильнее уменьшить число полей: разнородные вложенные объекты (args, cust) сохранять одной строкой JSON или отключить для них автоматическое создание полей. Как это сделано при сборе через Vector, есть в статье про Vector для журналов RX.