Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Руководство [7.17] ›Конвейеры ingest ›Справочник по процессорам ingest

Процессор user agent

Процессор user_agent извлекает детали из строки user agent, которую браузер отправляет вместе с веб-запросами. Этот процессор добавляет эту информацию по умолчанию в поле user_agent.

Модуль ingest-user-agent по умолчанию поставляется с файлом regexes.yaml, предоставленным uap-java под лицензией Apache 2.0. Более подробную информацию см. на странице https://github.com/ua-parser/uap-core.

Использование процессора user_agent в конвейере

Таблица 44. Параметры user-agent

Имя Обязательно По умолчанию Описание

field

да

-

Поле, содержащее строку user agent.

target_field

нет

user_agent

Поле, которое будет заполнено данными user agent.

regex_file

нет

-

Имя файла в каталоге config/ingest-user-agent, содержащего регулярные выражения для разбора строки user agent. Каталог и файл должны быть созданы до запуска Elasticsearch. Если не указано, ingest-user-agent будет использовать regexes.yaml из uap-core, который он поставляет (см. ниже).

properties

нет

[name, major, minor, patch, build, os, os_name, os_major, os_minor, device]

Управляет тем, какие свойства добавляются в target_field.

ignore_missing

нет

false

Если true и field не существуют, процессор тихо выйдет, не изменяя документ.

ecs

нет

true

[7.2] Устарело в версии 7.2. Нужно ли возвращать результат в формате Elastic Common Schema.

Вот пример, который добавляет детали user agent в поле user_agent на основе поля agent:

PUT _ingest/pipeline/user_agent
{
  "description" : "Add user agent information",
  "processors" : [
    {
      "user_agent" : {
        "field" : "agent"
      }
    }
  ]
}
PUT my-index-000001/_doc/my_id?pipeline=user_agent
{
  "agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
}
GET my-index-000001/_doc/my_id

Что возвращает

{
  "found": true,
  "_index": "my-index-000001",
  "_type": "_doc",
  "_id": "my_id",
  "_version": 1,
  "_seq_no": 22,
  "_primary_term": 1,
  "_source": {
    "agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36",
    "user_agent": {
      "name": "Chrome",
      "original": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36",
      "version": "51.0.2704.103",
      "os": {
        "name": "Mac OS X",
        "version": "10.10.5",
        "full": "Mac OS X 10.10.5"
      },
      "device" : {
        "name" : "Mac"
      }
    }
  }
}

Использование пользовательского файла regex

Чтобы использовать пользовательский файл regex для разбора user agent, этот файл должен быть помещен в каталог config/ingest-user-agent и должен иметь расширение файла .yml. Файл должен присутствовать при запуске узла; любые изменения в нем или добавление новых файлов во время работы узла не будут иметь никакого эффекта.

На практике, любой пользовательский файл regex будет представлять собой вариант файла по умолчанию, либо более новую версию, либо настроенную версию.

Файл по умолчанию, включенный в ingest-user-agent, — это regexes.yaml из uap-core: https://github.com/ua-parser/uap-core/blob/master/regexes.yaml

Настройки узла

Процессор user_agent поддерживает следующую настройку:

ingest.user_agent.cache_size
Максимальное количество результатов, которое должно быть кэшировано. По умолчанию — 1000.

Обратите внимание, что эти настройки являются настройками узла и применяются ко всем процессорам user_agent, т.е. существует один кэш для всех определенных процессоров user_agent.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/user-agent-processor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API