菜单
开源

loki源.syslog

loki.source.syslog 监听通过 TCP 或 UDP 连接传递的系统日志消息并将它们转发到其他 loki.* 组件。这些消息必须符合 RFC5424 格式。

该组件为每个给定的 config 块启动一个新的系统日志监听器并将传入的条目广播到 forward_to 中的接收者列表。

可以通过不同的标签指定多个 loki.source.syslog 组件。

用法

alloy
loki.source.syslog "LABEL" {
  listener {
    address = "LISTEN_ADDRESS"
  }
  ...

  forward_to = RECEIVER_LIST
}

参数

loki.source.syslog 支持以下参数

名称类型描述默认值必需
forward_tolist(LogsReceiver)发送日志条目到的接收者列表。
relabel_rulesRelabelRules应用于日志条目的重标记规则。“{}”

“relabel_rules”字段可以使用一个 loki.relabel 组件的“rules”导出值来应用一个或多个重标记规则,在将其转发到 forward_to 中的接收者列表之前。

以下块支持在 loki.source.syslog 定义中

层次结构名称描述必需
listenerlistener配置 IETF 系统日志 (RFC5424) 消息的监听器。
listener > tls_configtls_config配置与 TCP 连接的端点连接的 TLS 设置。

“>”符号表示更深的嵌套级别。例如,“config > tls_config”表示在“config”块中定义的“tls_config”块。

listener block

“listener”块定义监听地址和协议,监听器期望将系统日志消息发送到,以及接收消息时的行为。

可以使用以下参数配置“listener”。仅“address”字段是必需的,任何省略的字段都使用它们的默认值。

名称类型描述默认值必需
addressstring将系统日志消息监听起来监听的“”地址。
protocolstring监听系统日志消息的协议。必须是 tcpudptcp
idle_timeoutdurationtcp连接的空闲超时。"120s"
label_structured_data布尔型是否将syslog结构化数据转换为loki标签。false
labelsmap(string)与每个收到的syslog记录关联的标签。{}
use_incoming_timestamp布尔型是否将时间戳设置为收到的syslog记录的时间戳。false
use_rfc5424_message布尔型是否转发完整的RFC5424格式syslog消息。false
max_message_lengthintsyslog消息长度的最大限制。8192

默认情况下,组件将日志条目的时间戳分配为处理时的时间。

将该labels映射应用于组件读取的每个消息。

将解析的RFC5424消息的所有头部字段作为内部标签引入,前缀为__syslog_

如果设置了,则syslog头部的结构化数据也将转换为内部标签,格式为__syslog_message_sd_<ID>_<KEY>。例如,结构化数据条目[example@99999 test="yes"]变为标签__syslog_message_sd_example_99999_test,其值为"yes"

tls_config块

名称类型描述默认值必需
ca_pemstring用于验证服务器的CA PEM编码文本。
ca_filestring用于验证服务器的CA证书。
cert_pemstring客户端认证的证书PEM编码文本。
cert_filestring客户端认证的证书文件。
insecure_skip_verify布尔型禁用服务器证书验证。
key_filestring客户端认证的密钥文件。
key_pemsecret客户端认证的密钥PEM编码文本。
min_versionstring可接受的TLS最低版本。
server_namestringServerName扩展,用于指示服务器名称。

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

  • ca_pemca_file
  • cert_pemcert_file
  • key_pemkey_file

在配置客户端认证时,必须同时提供客户端证书(使用cert_pemcert_file)和客户端密钥(使用key_pemkey_file)。

如果没有提供min_version,则最低可接受的TLS版本继承自Go的默认最低版本,TLS 1.2。如果提供了min_version,则必须将其设置为以下字符串之一

  • "TLS10"(TLS 1.0)
  • "TLS11"(TLS 1.1)
  • "TLS12"(TLS 1.2)
  • "TLS13"(TLS 1.3)

导出的字段

loki.source.syslog不导出任何字段。

组件健康

当给定无效配置时,loki.source.syslog才被报告为不健康。

调试信息

loki.source.syslog根据syslog监听器公开一些调试信息

  • 监听器是否当前正在运行。
  • 监听地址。
  • 监听器应用于传入日志条目的标签。

调试指标

  • loki_source_syslog_entries_total(计数器):成功发送到syslog组件的条目总数。
  • loki_source_syslog_parsing_errors_total(计数器):接收syslog消息时的解析错误总数。
  • loki_source_syslog_empty_messages_total(计数器):从syslog组件接收到的空消息总数。

示例

此示例在指定的端口上监听有效RFC5424格式的Syslog消息,并将它们转发到loki.write组件。

alloy
loki.source.syslog "local" {
  listener {
    address  = "127.0.0.1:51893"
    labels   = { component = "loki.source.syslog", protocol = "tcp" }
  }

  listener {
    address  = "127.0.0.1:51898"
    protocol = "udp"
    labels   = { component = "loki.source.syslog", protocol = "udp"}
  }

  forward_to = [loki.write.local.receiver]
}

loki.write "local" {
  endpoint {
    url = "loki:3100/api/v1/push"
  }
}

兼容组件

loki.source.syslog可以接受以下组件的参数

注意

连接某些组件可能不合理,或者组件可能需要进一步配置才能正确连接。有关更多详细信息,请参阅链接文档。