Процессор 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
| Имя | Обязательно | По умолчанию | Описание |
|---|---|---|---|
| да | - | Поле, содержащее строку user agent. |
| нет | user_agent | Поле, которое будет заполнено данными user agent. |
| нет | - | Имя файла в каталоге |
| нет | [ | Управляет тем, какие свойства добавляются в |
| нет |
| Если |
| нет |
| [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