Link Search Menu Expand Document Documentation Menu

配置 OpenSearch Data Prepper

您可以通过编辑 Data Prepper 安装中的 data-prepper-config.yaml 文件来自定义 OpenSearch Data Prepper 配置。以下配置选项独立于管道配置选项。

Data Prepper 配置

使用以下选项自定义您的 Data Prepper 配置。

选项 必需 类型 描述
SSL 布尔型 指示服务器 API 是否应使用 TLS。默认为 true。
keyStoreFilePath 字符串 .jks 或 .p12 密钥库文件的路径。如果 ssl 为 true,则此项为必填项。
keyStorePassword 字符串 密钥库的密码。可选,默认为空字符串。
privateKeyPassword 字符串 密钥库中私钥的密码。可选,默认为空字符串。
serverPort 整数 服务器 API 使用的端口号。默认为 4900。
metricRegistries 列表 用于发布生成指标的指标注册表。目前支持 Prometheus 和 Amazon CloudWatch。默认为 Prometheus。
metricTags 映射 作为通用指标标签到指标注册表的键值对映射。最大对数为三。请注意,serviceName 是一个保留标签键,默认标签值为 DataPrepper。或者,管理员可以通过环境变量 DATAPREPPER_SERVICE_NAME 设置此值。如果在 metricTags 中定义了 serviceName,则该值将覆盖通过上述方法设置的值。
身份验证 对象 身份验证配置。有效选项是 http_basic,带有 usernamepassword 属性。如果未定义,服务器不执行身份验证。
processorShutdownTimeout 持续时间 处理器清理任何传输中数据并优雅关闭的时间。默认为 30 秒。
sinkShutdownTimeout 持续时间 接收器清理任何传输中数据并优雅关闭的时间。默认为 30 秒。
peer_forwarder 对象 对等转发器配置。有关详细信息,请参阅对等转发器选项
circuit_breakers circuit_breakers 配置传入数据的断路器。
extensions 对象 管道扩展插件配置。有关详细信息,请参阅扩展插件

对等转发器选项

以下部分详细介绍了对等转发器的各种配置选项。

对等转发的通用选项

选项 必需 类型 描述
端口 整数 对等转发服务器端口。有效选项介于 0 到 65535 之间。默认为 4994。
请求超时 整数 对等转发器 HTTP 服务器的请求超时(毫秒)。默认为 10000。
server_thread_count 整数 对等转发器服务器使用的线程数。默认为 200。
client_thread_count 整数 对等转发器客户端使用的线程数。默认为 200。
最大连接数 整数 对等转发器服务器的最大打开连接数。默认为 500。
max_pending_requests 整数 ScheduledThreadPool 工作队列中允许的最大任务数。默认为 1024。
discovery_mode 字符串 要使用的对等发现模式。有效选项是 local_nodestaticdnsaws_cloud_map。默认为 local_node,它在本地处理事件。
static_endpoints 有条件地 列表 包含所有 Data Prepper 实例端点的列表。如果 discovery_mode 设置为 static,则此项为必填项。
domain_name 有条件地 字符串 用于查询 DNS 的单个域名。通常通过为同一域创建多个 DNS A 记录来使用。如果 discovery_mode 设置为 dns,则此项为必填项。
aws_cloud_map_namespace_name 有条件地 字符串 使用 AWS Cloud Map 服务发现时的 Cloud Map 命名空间。如果 discovery_mode 设置为 aws_cloud_map,则此项为必填项。
aws_cloud_map_service_name 有条件地 字符串 使用 AWS Cloud Map 服务发现时的 Cloud Map 服务名称。如果 discovery_mode 设置为 aws_cloud_map,则此项为必填项。
aws_cloud_map_query_parameters 映射 键值对映射,用于根据附加到实例的自定义属性过滤结果。仅返回与所有指定键值对匹配的实例。
buffer_size 整数 缓冲区接受的最大未检查记录数。未检查记录数是写入缓冲区的记录数和尚未由检查点 API 检查的传输中记录数的总和。默认为 512。
batch_size 整数 缓冲区读取时返回的最大记录数。默认为 48。
aws_region 有条件地 字符串 与 ACM、S3 或 AWS Cloud Map 一起使用的 AWS 区域。如果 use_acm_certificate_for_ssl 设置为 true,或者 ssl_certificate_filessl_key_file 是 AWS S3 路径,或者 discovery_mode 设置为 aws_cloud_map,则此项为必填项。
drain_timeout 持续时间 对等转发器在关闭前完成数据处理的等待时间。默认为 10s

对等转发器的 TLS/SSL 选项

选项 必需 类型 描述
SSL 布尔型 启用 TLS/SSL。默认为 true
SSL 证书文件 有条件地 字符串 SSL 证书链文件路径或 AWS S3 路径。S3 路径示例 s3://<bucketName>/<path>。如果 ssl 为 true 且 use_acm_certificate_for_ssl 为 false,则此项为必填项。默认为 config/default_certificate.pem,这是默认证书文件。有关如何生成证书文件的更多信息,请参阅此处
SSL 密钥文件 有条件地 字符串 SSL 密钥文件路径或 AWS S3 路径。S3 路径示例 s3://<bucketName>/<path>。如果 ssl 为 true 且 use_acm_certificate_for_ssl 为 false,则此项为必填项。默认为 config/default_private_key.pem,这是默认私钥文件。有关如何生成默认私钥文件的更多信息,请参阅此处
ssl_insecure_disable_verification 布尔型 禁用服务器 TLS 证书链的验证。默认为 false
ssl_fingerprint_verification_only 布尔型 禁用服务器 TLS 证书链的验证,改为仅验证证书指纹。默认为 false
对 SSL 使用 ACM 证书 布尔型 启用使用 AWS Certificate Manager (ACM) 中的证书和私钥的 TLS/SSL。默认为 false
ACM 证书 ARN 有条件地 字符串 ACM 证书 ARN。ACM 证书优先于 S3 或本地文件系统证书。如果 use_acm_certificate_for_ssl 设置为 true,则此项为必填项。
ACM 私钥密码 字符串 解密私钥的 ACM 私钥密码。如果未提供,Data Prepper 会生成一个随机密码。
ACM 证书超时毫秒数 整数 ACM 获取证书的超时时间(毫秒)。默认为 120000。
aws_region 有条件地 字符串 与 ACM、S3 或 AWS Cloud Map 一起使用的 AWS 区域。如果 use_acm_certificate_for_ssl 设置为 true,或者 ssl_certificate_filessl_key_file 是 AWS S3 路径,或者 discovery_mode 设置为 aws_cloud_map,则此项为必填项。

对等转发器的身份验证选项

选项 必需 类型 描述
身份验证 映射 要使用的身份验证方法。有效选项是 mutual_tls(使用 mTLS)或 unauthenticated(无身份验证)。默认为 unauthenticated

断路器

Data Prepper 提供断路器,以帮助防止 Java 内存耗尽。当管道包含有状态处理器时,这会很有用,因为这些处理器可以在缓冲区之外保留内存使用量。

当断路器跳闸时,Data Prepper 会拒绝传入数据路由到缓冲区。

选项 必需 类型 描述
启用堆断路器。默认情况下,此功能未启用。

堆断路器

配置 Data Prepper,使其在 JVM 堆达到指定使用阈值时跳闸断路器。

选项 必需 类型 描述
使用量 字节 指定 JVM 堆使用量,在此使用量下断路器跳闸。如果当前 Java 堆使用量超过此值,则断路器将打开。这可以是一个值,例如 6.5gb
重置 持续时间 断路器跳闸后,在此时间过去之前不会进行新的检查。这有效地设置了断路器保持打开状态以允许清除内存的最短时间。默认为 1s
check_interval 持续时间 指定堆大小检查之间的时间。默认为 500ms

扩展插件

Data Prepper 支持用户可配置的扩展插件。扩展插件是跨管道插件共享的通用配置,例如源、缓冲区、处理器和接收器

AWS 扩展插件

要使用 AWS 扩展插件,请在 data-prepper-config.yaml 中的 aws 下添加以下设置。

选项 必需 类型 描述
aws 对象 AWS 扩展插件配置。

AWS secrets 扩展插件

AWS secrets 扩展插件配置 AWS Secrets Manager,以便在管道插件配置中引用,示例如下:

extensions:
  aws:
    secrets:
      <YOUR_SECRET_CONFIG_ID_1>:
        secret_id: <YOUR_SECRET_ID_1>
        region: <YOUR_REGION_1>
        sts_role_arn: <YOUR_STS_ROLE_ARN_1>
        refresh_interval: <YOUR_REFRESH_INTERVAL>
        disable_refresh: false
      <YOUR_SECRET_CONFIG_ID_2>:
        ...

要使用 secrets 扩展插件,请在 pipeline.yaml 中的 extensions > aws 下添加以下设置。

选项 必需 类型 描述
secrets 对象 AWS Secrets Manager 扩展插件配置。有关详细信息,请参阅Secrets

Secrets

secrets 扩展设置下使用以下设置。

选项 必需 类型 描述
secret_id 字符串 AWS 秘密名称或 ARN。
region 字符串 秘密的 AWS 区域。默认为 us-east-1
sts_role_arn 字符串 用于对 AWS Secrets Manager 请求的 AWS 安全令牌服务 (AWS STS) 角色。默认为 null,这将使用标准的 SDK 凭证行为
refresh_interval 持续时间 AWS Secrets 扩展插件轮询新秘密值的刷新间隔。默认为 PT1H。有关详细信息,请参阅自动刷新秘密
disable_refresh 布尔型 禁用 AWS secrets 扩展插件内部最新秘密值的定期轮询。默认为 false。当设置为 true 时,refresh_interval 将不被使用。

引用秘密

pipelines.yaml 中,可以在管道插件中通过以下格式引用秘密值

  • 纯文本: ${{aws_secrets:<YOUR_SECRET_CONFIG_ID>}}
  • JSON(键值对): ${{aws_secrets:<YOUR_SECRET_CONFIG_ID>:<YOUR_KEY>}}

<YOUR_SECRET_CONFIG_ID> 替换为 /extensions/aws/secrets 下对应的秘密配置 ID。将 <YOUR_KEY> 替换为秘密 JSON 值中所需的键。秘密值引用字符串格式可解析为以下插件设置数据类型:

  • 字符串
  • 数字
  • 长整型
  • Short
  • 整数
  • Double
  • 浮点型
  • 布尔型
  • Character

以下 data-prepper-config.yaml 示例部分命名了两个秘密配置 ID:host-secret-configcredential-secret-config

extensions:
  aws:
    secrets:
      host-secret-config:
        secret_id: <YOUR_SECRET_ID_1>
        region: <YOUR_REGION_1>
        sts_role_arn: <YOUR_STS_ROLE_ARN_1>
        refresh_interval: <YOUR_REFRESH_INTERVAL_1>
      credential-secret-config:
        secret_id: <YOUR_SECRET_ID_2>
        region: <YOUR_REGION_2>
        sts_role_arn: <YOUR_STS_ROLE_ARN_2>
        refresh_interval: <YOUR_REFRESH_INTERVAL_2>

配置 <YOUR_SECRET_CONFIG_ID> 后,您可以在 pipelines.yaml 中引用这些 ID。

sink:
    - opensearch:
        hosts: [ "${{aws_secrets:host-secret-config}}" ]
        username: "${{aws_secrets:credential-secret-config:username}}"
        password: "${{aws_secrets:credential-secret-config:password}}"
        index: "test-migration"

自动刷新秘密

对于每个单独的秘密配置,系统会定期轮询最新的秘密值,以支持 AWS Secrets Manager 中的秘密刷新。刷新的秘密值将被某些管道插件用于刷新其组件,例如与后端服务的连接和身份验证。

对于多个秘密配置,在初始秘密轮询期间,所有配置将应用 60s 内的抖动。

剩余 350 字符

有问题?

想贡献?