Http 输出插件
编辑Http 输出插件编辑
- 插件版本: v5.6.1
- 发布日期: 2024-06-04
- 变更日志
有关其他版本,请参阅 版本化插件文档.
获取帮助编辑
如果您对插件有任何疑问,请在 讨论 论坛中发布主题。对于错误或功能请求,请在 Github 中提交问题。有关 Elastic 支持的插件列表,请参阅 Elastic 支持矩阵.
描述编辑
此输出插件允许您将事件发送到通用的 HTTP(S) 端点。
此输出插件将并行执行最多 pool_max 个请求以提高性能。在为性能调整此插件时请考虑这一点。
此外,请注意,当使用并行执行时,无法保证事件的严格排序!
请注意,此 gem 尚未支持编解码器。目前请使用 format 选项。
重试策略编辑
此输出插件有两个级别的重试:库级别和插件级别。
库级别重试编辑
库级别重试适用于与 IO 相关的故障。不可重试的错误包括 SSL 相关问题、无法解析的主机、连接问题以及请求期间发生的 OS/JVM 级中断。
库级别重试的选项包括
-
automatic_retries
。控制插件在库级别发生故障后应重试的次数。 -
retry_non_idempotent
。当设置为false
时,GET、HEAD、PUT、DELETE、OPTIONS 和 TRACE 请求将被重试。
插件级别重试编辑
插件级别重试的选项包括
-
retry_failed
。当设置为true
时,插件将无限期地重试在retryable_codes
选项(429、500、502、503、504)中定义的 HTTP 错误响应代码以及可重试的异常(套接字超时/错误、DNS 解析失败和客户端协议异常)。 -
retryable_codes
。设置触发重试的 HTTP 响应代码。
retry_failed
选项不控制库级别重试。
Http 输出配置选项编辑
此插件支持以下配置选项,以及后面描述的 通用选项。
设置 | 输入类型 | 必需 |
---|---|---|
否 |
||
有效的系统文件路径 |
已弃用 |
|
有效的系统文件路径 |
已弃用 |
|
有效的系统文件路径 |
已弃用 |
|
否 |
||
否 |
||
否 |
||
否 |
||
字符串,其中之一为 |
否 |
|
否 |
||
否 |
||
字符串,其中之一为 |
是 |
|
否 |
||
否 |
||
有效的系统文件路径 |
已弃用 |
|
已弃用 |
||
已弃用 |
||
否 |
||
否 |
||
否 |
||
否 |
||
<<,>> |
否 |
|
否 |
||
否 |
||
否 |
||
否 |
||
否 |
||
否 |
||
列表 路径 |
否 |
|
列表 字符串 |
否 |
|
否 |
||
否 |
||
否 |
||
否 |
||
否 |
||
否 |
||
否 |
||
字符串,其中之一为 |
否 |
|
有效的系统文件路径 |
已弃用 |
|
已弃用 |
||
已弃用 |
||
是 |
||
否 |
另请参阅 通用选项,了解所有输出插件支持的选项列表。
automatic_retries
编辑
- 值类型为 数字
- 默认值为
1
客户端应重试失败 URL 的次数。如果 keepalive
选项 已启用,我们建议将此选项设置为非零值。某些服务器会错误地过早结束 keepalive,需要重试。有关更多信息,请参阅 重试策略。
client_cert
编辑
在 5.6.0 中已弃用。
已替换为 ssl_certificate
- 值类型为 路径
- 此设置没有默认值。
如果您想使用客户端证书(请注意,大多数人都不希望这样做),请在此处设置 x509 证书的路径。
content_type
编辑
- 值类型为 字符串
- 此设置没有默认值。
内容类型
如果未指定,则默认为以下内容
- 如果 format 为 "json",则为 "application/json"
- 如果 format 为 "json_batch",则为 "application/json"。每个 Logstash 事件批次将被连接到单个数组中,并通过一个请求发送。
- 如果 format 为 "form",则为 "application/x-www-form-urlencoded"
format
编辑
- 值可以是以下任何一个:
json
、json_batch
、form
、message
- 默认值为
"json"
设置 HTTP 主体的格式。
如果为 json_batch,则此输出插件接收的每个事件批次将被放置到单个 JSON 数组中,并通过一个请求发送。这对于高吞吐量场景(例如在 Logstash 实例之间发送数据)特别有用。
如果为 form,则主体将是映射(或整个事件)转换为查询参数字符串,例如 foo=bar&baz=fizz...
如果为 message,则主体将是根据 message 格式化事件的结果。
否则,事件将作为 json 发送。
http_method
edit
- 这是必需的设置。
- 值可以是以下任何一个:
put
,post
,patch
,delete
,get
,head
- 此设置没有默认值。
HTTP 动词。其中之一是“put”、“post”、“patch”、“delete”、“get”、“head”。
keepalive
edit
- 值类型为 布尔值
- 默认值为
true
启用此选项以启用 HTTP keepalive 支持。我们强烈建议将 automatic_retries
设置为至少 1,以修复与损坏的 keepalive 实现的交互。
keystore
edit
在 5.6.0 中已弃用。
已由 ssl_keystore_path
替换
- 值类型为 路径
- 此设置没有默认值。
如果您需要使用自定义密钥库(.jks
),请在此处指定。这与 .pem 密钥不兼容!
keystore_password
edit
在 5.6.0 中已弃用。
已由 ssl_keystore_password
替换
- 值类型为 password
- 此设置没有默认值。
在此处指定密钥库密码。请注意,大多数使用 keytool 创建的 .jks 文件都需要密码!
keystore_type
edit
在 5.6.0 中已弃用。
已由 ssl_keystore_type
替换
- 值类型为 字符串
- 默认值为
"JKS"
在此处指定密钥库类型。其中之一是 JKS
或 PKCS12
。默认值为 JKS
mapping
edit
- 值类型为 哈希
- 此设置没有默认值。
这使您可以选择发送的事件的结构和部分。
例如
mapping => {"foo" => "%{host}" "bar" => "%{type}"}
proxy
edit
- 值类型为 字符串
- 此设置没有默认值。
如果您想使用 HTTP 代理。这支持多种配置语法
- 代理主机格式:
http://proxy.org:1234
- 代理主机格式:
{host => "proxy.org", port => 80, scheme => 'http', user => 'username@host', password => 'password'}
- 代理主机格式:
{url => 'http://proxy.org:1234', user => 'username@host', password => 'password'}
request_timeout
edit
- 值类型为 数字
- 默认值为
60
此模块使基于 [Manticore](https://github.com/cheald/manticore) 在 logstash 中轻松添加一个配置非常完整的 HTTP 客户端。有关其用法的示例,请参阅 https://github.com/logstash-plugins/logstash-input-http_poller 整个请求的超时时间(以秒为单位)
retry_failed
edit
- 值类型为 布尔值
- 默认值为
true
请注意,此选项仅控制插件级别的重试。它对库级别的重试没有影响。
如果您希望禁用对 retryable_codes
中定义的 HTTP 错误响应代码或可重试异常(Timeout、SocketException、ClientProtocolException、ResolutionFailure 和 SocketTimeout)的无限重试,请将此选项设置为 false
。有关更多信息,请参阅 重试策略。
retry_non_idempotent
edit
- 值类型为 布尔值
- 默认值为
false
当此选项设置为 false
且 automatic_retries
启用时,将重试 GET、HEAD、PUT、DELETE、OPTIONS 和 TRACE 请求。
当设置为 true
且 automatic_retries
启用时,这将导致非幂等 HTTP 动词(如 POST)被重试。有关更多信息,请参阅 重试策略。
ssl_certificate
edit
- 值类型为 路径
- 此设置没有默认值。
用于对客户端进行身份验证的 SSL 证书。此证书应为 OpenSSL 风格的 X.509 证书文件。
仅当设置了 ssl_key
时,才能使用此设置。
ssl_key
edit
- 值类型为 路径
- 此设置没有默认值。
与 ssl_certificate
相对应的 OpenSSL 风格的 RSA 私钥。
仅当设置了 ssl_certificate
时,才能使用此设置。
ssl_supported_protocols
edit
- 值类型为 字符串
- 允许的值为:
'TLSv1.1'
,'TLSv1.2'
,'TLSv1.3'
- 默认值取决于所使用的 JDK。使用最新 Logstash 时,默认值为
['TLSv1.2', 'TLSv1.3']
。'TLSv1.1'
不被认为是安全的,仅提供给旧版应用程序。
建立与 HTTP 端点连接时要使用的允许的 SSL/TLS 版本列表。
对于 Java 8,'TLSv1.3'
仅从 8u262(AdoptOpenJDK)开始受支持,但要求您在 Logstash 中设置 LS_JAVA_OPTS="-Djdk.tls.client.protocols=TLSv1.3"
系统属性。
如果您将插件配置为在任何最新的 JVM(例如与 Logstash 打包在一起的 JVM)上使用 'TLSv1.1'
,则该协议默认情况下处于禁用状态,需要通过更改 $JDK_HOME/conf/security/java.security 配置文件中的 jdk.tls.disabledAlgorithms
来手动启用。也就是说,需要从列表中删除 TLSv1.1
。
ssl_verification_mode
edit
- 值类型为 字符串
- 支持的值为:
full
、none
- 默认值为
full
控制服务器证书的验证。 full
选项验证提供的证书是否由受信任的颁发机构 (CA) 签署,以及服务器的主机名(或 IP 地址)是否与证书中标识的名称匹配。
none
设置不执行服务器证书的任何验证。此模式会禁用 SSL/TLS 的许多安全优势,应仅在经过谨慎考虑后使用。它主要用作尝试解决 TLS 错误时的临时诊断机制。强烈建议不要在生产环境中使用 none
。
truststore
edit
在 5.6.0 中已弃用。
被 ssl_truststore_path
替换
- 值类型为 路径
- 此设置没有默认值。
如果您需要使用自定义信任库 (.jks
),请在此处指定。这与 .pem 证书不兼容!
truststore_password
edit
在 5.6.0 中已弃用。
- 值类型为 password
- 此设置没有默认值。
在此处指定信任库密码。请注意,大多数使用 keytool 创建的 .jks 文件都需要密码!
truststore_type
edit
在 5.6.0 中已弃用。
被 ssl_truststore_type
替换
- 值类型为 字符串
- 默认值为
"JKS"
在此处指定信任库类型。 JKS
或 PKCS12
之一。默认值为 JKS
validate_after_inactivity
edit
- 值类型为 数字
- 默认值为
200
在使用 keepalive 对连接执行请求之前,等待多长时间才能检查连接是否已过期。您可能希望将此值设置得更低,可能设置为 0,如果您经常遇到连接错误。引用 Apache commons 文档(此客户端基于 Apache Commmons):定义在持久连接在被租赁给消费者之前必须重新验证的非活动时间(以毫秒为单位)。传递给此方法的非正值将禁用连接验证。此检查有助于检测在保持非活动状态时已变得陈旧(半关闭)的连接。 查看 这些文档以获取更多信息