菜单
文档breadcrumb arrow Grafana Alloybreadcrumb arrow 参考breadcrumb arrow 组件breadcrumb arrow otelcolbreadcrumb arrow otelcol.receiver.tcplog
实验性

otelcol.receiver.tcplog

实验性:这是一个实验性组件。实验性组件可能会频繁发生破坏性变更,并且可能会被移除而没有等效的替代品。要使用该组件,必须将 stability.level 标志设置为 experimental

otelcol.receiver.tcplog 接收通过 TCP 连接发送的日志消息,并将其作为日志转发到其他 otelcol.* 组件。

注意

otelcol.receiver.tcplog 是上游 OpenTelemetry Collector tcplog 接收器的封装。如有必要,错误报告或功能请求将被重定向到上游仓库。

您可以通过为其指定不同的标签来指定多个 otelcol.receiver.tcplog 组件。

用法

alloy
otelcol.receiver.tcplog "<LABEL>" {
  listen_address = "<IP_ADDRESS:PORT>"

  output {
    logs    = [...]
  }
}

参数

您可以使用以下参数配置 otelcol.receiver.tcplog

名称类型描述默认值必需
listen_addressstring用于接收日志消息的 <HOST:PORT> 地址。
add_attributesbool根据OpenTelemetry 语义约定向日志消息添加 net.* 属性。false
encodingstring日志消息的编码。"utf-8"
max_log_sizestring读取单个日志条目失败前的最大大小。"1MiB"
one_log_per_packetbool跳过日志分词,在消息总是包含一个日志且未使用多行时提高性能。false

encoding 参数指定传入日志消息的编码。encoding 必须是 utf-8utf-16leutf-16beasciibig5nop 之一。有关更多详细信息,请参阅上游接收器的文档

max_log_size 参数的最小值为 64KiB

您可以将以下块与 otelcol.receiver.tcplog 结合使用

描述必需
output配置接收到的遥测数据发送到何处。
debug_metrics配置此组件生成的用于监控其状态的指标。
multiline配置用于对传入消息进行多行解析的规则
retry_on_failure配置当接收器在管道下游遇到错误时的重试行为。
tls配置 TCP 服务器的 TLS。

output

必需

必须指定 output 块,但其所有参数都是可选的。默认情况下,遥测数据会被丢弃。相应地配置 logs 参数以将遥测数据发送到其他组件。

支持以下参数

名称类型描述默认值必需
logslist(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_patternstring匹配日志条目结尾的正则表达式。
line_start_patternstring匹配日志条目开头的正则表达式。
omit_patternbool从拆分的日志条目中忽略开始/结束模式。false

multiline 块必须包含 line_start_patternline_end_pattern 之一。

如果未设置 multiline 块,日志条目将不会被拆分。

retry_on_failure

retry_on_failure 块配置当接收器在管道下游遇到错误时的重试行为。使用指数退避算法来延迟后续失败时的重试。支持以下参数

名称类型描述默认值必需
enabledbool如果设置为 true 并且发生错误,接收器将暂停读取日志文件并重新发送当前批次的日志。false
initial_interval持续时间首次失败后等待重试的时间。1s
max_elapsed_time持续时间数据在被丢弃前的最大消息存活时间。5m
max_interval持续时间应用退避逻辑后等待的最大时间。30s

如果将 max_elapsed_time 设置为 0,数据将永远不会被丢弃。

tls

tls 块配置用于服务器的 TLS 设置。如果未提供 tls 块,则不会对服务器连接使用 TLS。

支持以下参数

名称类型描述默认值必需
ca_filestringCA 文件的路径。
ca_pemstring用于验证服务器的 CA PEM 编码文本。
cert_filestringTLS 证书的路径。
cert_pemstring用于客户端身份验证的证书 PEM 编码文本。
include_system_ca_certs_pool布尔值是否加载系统证书颁发机构池以及证书颁发机构。false
key_filestringTLS 证书私钥的路径。
key_pemsecret用于客户端身份验证的私钥 PEM 编码文本。
max_versionstring连接允许的最大 TLS 版本。"TLS 1.3"
min_versionstring连接允许的最小 TLS 版本。"TLS 1.2"
cipher_suiteslist(string)TLS 传输可以使用的密码套件列表。[]
reload_interval持续时间重新加载证书的持续时间。"0s"
client_ca_filestring服务器用于验证客户端证书的 TLS 证书路径。
curve_preferenceslist(string)握手过程中使用的椭圆曲线集合。[]

如果将 reload_interval 设置为 "0s",证书将永远不会重新加载。

以下成对参数互斥,不能同时设置

  • ca_pemca_file
  • cert_pemcert_file
  • key_pemkey_file

如果 cipher_suites 留空,将使用安全的默认列表。有关支持的密码套件列表,请参阅 Go Cipher Suites 文档

client_ca_fileTLSConfig 中的 ClientCAClientAuth 设置为 RequireAndVerifyClientCert。有关更多信息,请参阅 Go TLS 文档

curve_preferences 参数确定在握手过程中优先使用的椭圆曲线集合(按偏好顺序)。如果未提供,将使用默认列表。可用的椭圆曲线集合为 X25519P521P256P384

导出的字段

otelcol.receiver.tcplog 不会导出任何字段。

组件健康状态

只有在提供无效配置时,otelcol.receiver.tcplog 才会被报告为不健康。

调试信息

otelcol.receiver.tcplog 不会暴露任何组件特定的调试信息。

调试指标

otelcol.receiver.tcplog 不会暴露任何组件特定的调试指标。

示例

此示例从 TCP 接收日志消息并进行记录。

alloy
otelcol.receiver.tcplog "default" {
    listen_address = "localhost:1515"
    output {
        logs = [otelcol.exporter.debug.default.input]
    }
}

otelcol.exporter.debug "default" {}

兼容组件

otelcol.receiver.tcplog 可以接受来自以下组件的参数

注意

连接某些组件可能没有意义,或者组件可能需要进一步配置才能使连接正常工作。有关更多详细信息,请参阅链接的文档。