otelcol.receiver.tcplog
实验性:这是一个实验性组件。实验性组件可能会频繁发生破坏性变更,并且可能会被移除而没有等效的替代品。要使用该组件,必须将
stability.level
标志设置为experimental
。
otelcol.receiver.tcplog
接收通过 TCP 连接发送的日志消息,并将其作为日志转发到其他 otelcol.*
组件。
注意
otelcol.receiver.tcplog
是上游 OpenTelemetry Collectortcplog
接收器的封装。如有必要,错误报告或功能请求将被重定向到上游仓库。
您可以通过为其指定不同的标签来指定多个 otelcol.receiver.tcplog
组件。
用法
otelcol.receiver.tcplog "<LABEL>" {
listen_address = "<IP_ADDRESS:PORT>"
output {
logs = [...]
}
}
参数
您可以使用以下参数配置 otelcol.receiver.tcplog
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
listen_address | string | 用于接收日志消息的 <HOST:PORT> 地址。 | 是 | |
add_attributes | bool | 根据OpenTelemetry 语义约定向日志消息添加 net.* 属性。 | false | 否 |
encoding | string | 日志消息的编码。 | "utf-8" | 否 |
max_log_size | string | 读取单个日志条目失败前的最大大小。 | "1MiB" | 否 |
one_log_per_packet | bool | 跳过日志分词,在消息总是包含一个日志且未使用多行时提高性能。 | false | 否 |
encoding
参数指定传入日志消息的编码。encoding
必须是 utf-8
、utf-16le
、utf-16be
、ascii
、big5
或 nop
之一。有关更多详细信息,请参阅上游接收器的文档。
max_log_size
参数的最小值为 64KiB
。
块
您可以将以下块与 otelcol.receiver.tcplog
结合使用
块 | 描述 | 必需 |
---|---|---|
output | 配置接收到的遥测数据发送到何处。 | 是 |
debug_metrics | 配置此组件生成的用于监控其状态的指标。 | 否 |
multiline | 配置用于对传入消息进行多行解析的规则 | 否 |
retry_on_failure | 配置当接收器在管道下游遇到错误时的重试行为。 | 否 |
tls | 配置 TCP 服务器的 TLS。 | 否 |
output
必需
必须指定 output
块,但其所有参数都是可选的。默认情况下,遥测数据会被丢弃。相应地配置 logs
参数以将遥测数据发送到其他组件。
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
logs | list(otelcol.Consumer) | 要发送日志的消费者列表。 | [] | 否 |
必须指定 output
块,但其所有参数都是可选的。默认情况下,遥测数据会被丢弃。相应地配置 logs
参数以将遥测数据发送到其他组件。
debug_metrics
debug_metrics
块配置此组件生成的用于监控其状态的指标。
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
disable_high_cardinality_metrics | 布尔值 | 是否禁用某些高基数指标。 | true | 否 |
disable_high_cardinality_metrics
是 Grafana Alloy 中 OpenTelemetry Collector telemetry.disableHighCardinalityMetrics
功能门的等效功能。它会移除可能导致高基数指标的属性。例如,关于 HTTP 和 gRPC 连接指标中的 IP 地址和端口号属性会被移除。
注意
如果配置了
disable_high_cardinality_metrics
,它仅适用于otelcol.exporter.*
和otelcol.receiver.*
组件。
multiline
multiline
块配置拆分传入日志条目的逻辑。支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
line_end_pattern | string | 匹配日志条目结尾的正则表达式。 | 否 | |
line_start_pattern | string | 匹配日志条目开头的正则表达式。 | 否 | |
omit_pattern | bool | 从拆分的日志条目中忽略开始/结束模式。 | false | 否 |
multiline
块必须包含 line_start_pattern
或 line_end_pattern
之一。
如果未设置 multiline
块,日志条目将不会被拆分。
retry_on_failure
retry_on_failure
块配置当接收器在管道下游遇到错误时的重试行为。使用指数退避算法来延迟后续失败时的重试。支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
enabled | bool | 如果设置为 true 并且发生错误,接收器将暂停读取日志文件并重新发送当前批次的日志。 | false | 否 |
initial_interval | 持续时间 | 首次失败后等待重试的时间。 | 1s | 否 |
max_elapsed_time | 持续时间 | 数据在被丢弃前的最大消息存活时间。 | 5m | 否 |
max_interval | 持续时间 | 应用退避逻辑后等待的最大时间。 | 30s | 否 |
如果将 max_elapsed_time
设置为 0
,数据将永远不会被丢弃。
tls
tls
块配置用于服务器的 TLS 设置。如果未提供 tls
块,则不会对服务器连接使用 TLS。
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
ca_file | string | CA 文件的路径。 | 否 | |
ca_pem | string | 用于验证服务器的 CA PEM 编码文本。 | 否 | |
cert_file | string | TLS 证书的路径。 | 否 | |
cert_pem | string | 用于客户端身份验证的证书 PEM 编码文本。 | 否 | |
include_system_ca_certs_pool | 布尔值 | 是否加载系统证书颁发机构池以及证书颁发机构。 | false | 否 |
key_file | string | TLS 证书私钥的路径。 | 否 | |
key_pem | secret | 用于客户端身份验证的私钥 PEM 编码文本。 | 否 | |
max_version | string | 连接允许的最大 TLS 版本。 | "TLS 1.3" | 否 |
min_version | string | 连接允许的最小 TLS 版本。 | "TLS 1.2" | 否 |
cipher_suites | list(string) | TLS 传输可以使用的密码套件列表。 | [] | 否 |
reload_interval | 持续时间 | 重新加载证书的持续时间。 | "0s" | 否 |
client_ca_file | string | 服务器用于验证客户端证书的 TLS 证书路径。 | 否 | |
curve_preferences | list(string) | 握手过程中使用的椭圆曲线集合。 | [] | 否 |
如果将 reload_interval
设置为 "0s"
,证书将永远不会重新加载。
以下成对参数互斥,不能同时设置
ca_pem
和ca_file
cert_pem
和cert_file
key_pem
和key_file
如果 cipher_suites
留空,将使用安全的默认列表。有关支持的密码套件列表,请参阅 Go Cipher Suites 文档。
client_ca_file
将 TLSConfig
中的 ClientCA
和 ClientAuth
设置为 RequireAndVerifyClientCert
。有关更多信息,请参阅 Go TLS 文档。
curve_preferences
参数确定在握手过程中优先使用的椭圆曲线集合(按偏好顺序)。如果未提供,将使用默认列表。可用的椭圆曲线集合为 X25519
、P521
、P256
和 P384
。
导出的字段
otelcol.receiver.tcplog
不会导出任何字段。
组件健康状态
只有在提供无效配置时,otelcol.receiver.tcplog
才会被报告为不健康。
调试信息
otelcol.receiver.tcplog
不会暴露任何组件特定的调试信息。
调试指标
otelcol.receiver.tcplog
不会暴露任何组件特定的调试指标。
示例
此示例从 TCP 接收日志消息并进行记录。
otelcol.receiver.tcplog "default" {
listen_address = "localhost:1515"
output {
logs = [otelcol.exporter.debug.default.input]
}
}
otelcol.exporter.debug "default" {}
兼容组件
otelcol.receiver.tcplog
可以接受来自以下组件的参数
注意
连接某些组件可能没有意义,或者组件可能需要进一步配置才能使连接正常工作。有关更多详细信息,请参阅链接的文档。