用户代理处理器
编辑用户代理处理器编辑
user_agent
处理器从浏览器与其 Web 请求一起发送的用户代理字符串中提取详细信息。默认情况下,此处理器在 user_agent
字段下添加此信息。
ingest-user-agent 模块默认情况下附带由 uap-java 提供的 regexes.yaml,并使用 Apache 2.0 许可证。有关更多详细信息,请参阅 https://github.com/ua-parser/uap-core。
在管道中使用 user_agent 处理器编辑
表 48. 用户代理选项
名称 | 必需 | 默认值 | 描述 |
---|---|---|---|
|
是 |
- |
包含用户代理字符串的字段。 |
|
否 |
user_agent |
将填充用户代理详细信息的字段。 |
|
否 |
- |
位于 |
|
否 |
[ |
控制添加到 |
|
否 |
|
[beta] 此功能处于测试阶段,可能会发生变化。设计和代码不如正式 GA 功能成熟,按现状提供,不提供任何担保。测试版功能不受正式 GA 功能支持 SLA 的约束。 尽力从用户代理字符串中提取设备类型。 |
|
否 |
|
如果为 |
以下是一个示例,它根据 agent
字段将用户代理详细信息添加到 user_agent
字段
response = client.ingest.put_pipeline( id: 'user_agent', body: { description: 'Add user agent information', processors: [ { user_agent: { field: 'agent' } } ] } ) puts response response = client.index( index: 'my-index-000001', id: 'my_id', pipeline: 'user_agent', body: { 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' } ) puts response response = client.get( index: 'my-index-000001', id: 'my_id' ) puts response
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", "_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" } } } }
使用自定义正则表达式文件编辑
要使用自定义正则表达式文件来解析用户代理,该文件必须放在 config/ingest-user-agent
目录中,并且必须具有 .yml
文件名扩展名。该文件必须在节点启动时存在,在节点运行期间对该文件进行的任何更改或添加的任何新文件都不会有任何影响。
实际上,任何自定义正则表达式文件都最有可能是默认文件的变体,无论是更新的版本还是自定义版本。
包含在 ingest-user-agent
中的默认文件是 uap-core 中的 regexes.yaml
:https://github.com/ua-parser/uap-core/blob/master/regexes.yaml
节点设置编辑
user_agent
处理器支持以下设置
-
ingest.user_agent.cache_size
- 应缓存的最大结果数。默认为
1000
。
请注意,这些设置是节点设置,适用于所有 user_agent
处理器,即所有定义的 user_agent
处理器只有一个缓存。