警告:此功能处于技术预览阶段,可能会在未来版本中更改或删除。 Elastic 将尽最大努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
Redact 处理器使用 Grok 规则引擎来模糊输入文档中与给定 Grok 模式匹配的文本。 该处理器可用于通过配置检测电子邮件或 IP 地址等已知模式来隐藏个人识别信息 (PII)。 与 Grok 模式匹配的文本将替换为可配置的字符串,例如匹配电子邮件地址的 <EMAIL>,或者如果愿意,只需将所有匹配项替换为文本 <REDACTED>。
Elasticsearch 附带了许多有用的预定义模式,Redact 处理器可以方便地引用这些模式。 如果其中之一不满足您的需求,请使用自定义模式定义创建新模式。 Redact 处理器会替换每次出现的匹配项。 如果有多个匹配项,所有匹配项都将替换为模式名称。
Redact 处理器与弹性通用架构 (ECS) 模式兼容。 不支持旧版 Grok 模式。
在管道中使用 Redact 处理器
名称 | 必要项 | 默认 | |
---|---|---|---|
field | yes | - | 要编辑的字段 |
patterns | yes | - | 用于匹配和编辑命名捕获的 grok 表达式列表 |
pattern_definitions | no | - | 模式名称和模式元组的映射,定义处理器要使用的自定义模式。 匹配现有名称的模式将覆盖预先存在的定义 |
prefix | no | < | 使用此标记开始编辑部分 |
suffix | no | > | 使用此标记结束编辑部分 |
ignore_missing | no | true | 如果 true 并且字段不存在或为 null,则处理器安静退出而不修改文档 |
description | no | - | 处理器的描述。 对于描述处理器或其配置的用途很有用。 |
if | no | - | 有条件地执行处理器。 请参阅有条件地运行处理器。 |
ignore_failure | no | false | 忽略处理器的故障。 请参阅处理管道故障。 |
on_failure | no | - | 忽略处理器的故障。 请参阅处理管道故障。 |
tag | no | - | 处理器的标识符。 对于调试和指标很有用。 |
示例
在此示例中,预定义的 IP Grok 模式用于匹配和编辑消息文本字段中的 IP 地址。 使用 Simulate API 测试管道。
POST _ingest/pipeline/_simulate
{
"pipeline": {
"description" : "Hide my IP",
"processors": [
{
"redact": {
"field": "message",
"patterns": ["%{IP:client}"]
}
}
]
},
"docs":[
{
"_source": {
"message": "55.3.244.1 GET /index.html 15824 0.043"
}
}
]
}
上面命令显示的结果为:
{
"docs": [
{
"doc": {
"_index": "_index",
"_id": "_id",
"_version": "-3",
"_source": {
"message": "<client> GET /index.html 15824 0.043"
},
"_ingest": {
"timestamp": "2023-06-24T01:53:44.906188Z"
}
}
}
]
}
响应中的文档仍然包含 message 字段,但现在 IP 地址 55.3.244.1 被文本 <client> 替换。
IP 地址被替换为单词 client,因为这是 Grok 模式 %{IP:client} 中指定的内容。 模式名称周围的 < 和 > 标记可以使用前缀和后缀选项进行配置。
下一个示例定义了多个模式,这两个模式都被单词 REDACTED 替换,并且前缀和后缀标记设置为 *
POST _ingest/pipeline/_simulate
{
"pipeline": {
"description": "Hide my IP",
"processors": [
{
"redact": {
"field": "message",
"patterns": [
"%{IP:REDACTED}",
"%{EMAILADDRESS:REDACTED}"
],
"prefix": "*",
"suffix": "*"
}
}
]
},
"docs": [
{
"_source": {
"message": "55.3.244.1 GET /index.html 15824 0.043 test@elastic.co"
}
}
]
}
在响应中,IP 55.3.244.1 和电子邮件地址 test@elastic.co 均已替换为 *REDACTED*。
上面命令运行的结果为:
{
"docs": [
{
"doc": {
"_index": "_index",
"_id": "_id",
"_version": "-3",
"_source": {
"message": "*REDACTED* GET /index.html 15824 0.043 *REDACTED*"
},
"_ingest": {
"timestamp": "2023-06-24T01:56:07.547294Z"
}
}
}
]
}
定制 patterns
如果现有 Grok 模式之一不符合你的要求,可以使用 pattern_definitions 选项添加自定义模式。 新模式定义由模式名称和模式本身组成。 该模式可以是正则表达式或引用现有的 Grok 模式。
此示例定义自定义模式 GITHUB_NAME 以匹配 GitHub 用户名。 该模式定义使用现有的 USERNAME Grok 模式,并以文字 @ 为前缀。
提示:Grok 调试器对于构建自定义模式来说是一个非常有用的工具。
POST _ingest/pipeline/_simulate
{
"pipeline": {
"processors": [
{
"redact": {
"field": "message",
"patterns": [
"%{GITHUB_NAME:GITHUB_NAME}"
],
"pattern_definitions": {
"GITHUB_NAME": "@%{USERNAME}"
}
}
}
]
},
"docs": [
{
"_source": {
"message": "@elastic-data-management the PR is ready for review"
}
}
]
}
username 在响应中被编辑。文章来源:https://www.toymoban.com/news/detail-532536.html
{
"docs": [
{
"doc": {
"_index": "_index",
"_id": "_id",
"_version": "-3",
"_source": {
"message": "<GITHUB_NAME> the PR is ready for review"
},
"_ingest": {
"timestamp": "2023-06-24T01:59:15.427469Z"
}
}
}
]
}
Grok watchdog
Watchdog 会中断执行时间过长的表达式。 当中断时,Redact 处理器会失败并出现错误。 控制 Grok Watchdog 超时的相同设置也适用于 Redact 处理器。文章来源地址https://www.toymoban.com/news/detail-532536.html
到了这里,关于Elasticsearch:redact processor - 编辑处理器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!