loki源.syslog
loki.source.syslog
监听通过 TCP 或 UDP 连接传递的系统日志消息并将它们转发到其他 loki.*
组件。这些消息必须符合 RFC5424 格式。
该组件为每个给定的 config
块启动一个新的系统日志监听器并将传入的条目广播到 forward_to
中的接收者列表。
可以通过不同的标签指定多个 loki.source.syslog
组件。
用法
loki.source.syslog "LABEL" {
listener {
address = "LISTEN_ADDRESS"
}
...
forward_to = RECEIVER_LIST
}
参数
loki.source.syslog
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
forward_to | list(LogsReceiver) | 发送日志条目到的接收者列表。 | 是 | |
relabel_rules | RelabelRules | 应用于日志条目的重标记规则。 | “{}” | 否 |
“relabel_rules”字段可以使用一个 loki.relabel 组件的“rules”导出值来应用一个或多个重标记规则,在将其转发到 forward_to
中的接收者列表之前。
块
以下块支持在 loki.source.syslog
定义中
层次结构 | 名称 | 描述 | 必需 |
---|---|---|---|
listener | listener | 配置 IETF 系统日志 (RFC5424) 消息的监听器。 | 否 |
listener > tls_config | tls_config | 配置与 TCP 连接的端点连接的 TLS 设置。 | 否 |
“>”符号表示更深的嵌套级别。例如,“config > tls_config”表示在“config”块中定义的“tls_config”块。
listener block
“listener”块定义监听地址和协议,监听器期望将系统日志消息发送到,以及接收消息时的行为。
可以使用以下参数配置“listener”。仅“address”字段是必需的,任何省略的字段都使用它们的默认值。
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
address | string | 将系统日志消息监听起来监听的“ | 是 | |
protocol | string | 监听系统日志消息的协议。必须是 tcp 或 udp 。 | tcp | 否 |
idle_timeout | duration | tcp连接的空闲超时。 | "120s" | 否 |
label_structured_data | 布尔型 | 是否将syslog结构化数据转换为loki标签。 | false | 否 |
labels | map(string) | 与每个收到的syslog记录关联的标签。 | {} | 否 |
use_incoming_timestamp | 布尔型 | 是否将时间戳设置为收到的syslog记录的时间戳。 | false | 否 |
use_rfc5424_message | 布尔型 | 是否转发完整的RFC5424格式syslog消息。 | false | 否 |
max_message_length | int | syslog消息长度的最大限制。 | 8192 | 否 |
默认情况下,组件将日志条目的时间戳分配为处理时的时间。
将该labels映射应用于组件读取的每个消息。
将解析的RFC5424消息的所有头部字段作为内部标签引入,前缀为__syslog_
。
如果设置了__syslog_message_sd_<ID>_<KEY>
。例如,结构化数据条目[example@99999 test="yes"]
变为标签__syslog_message_sd_example_99999_test
,其值为"yes"
。
tls_config块
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
ca_pem | string | 用于验证服务器的CA PEM编码文本。 | 否 | |
ca_file | string | 用于验证服务器的CA证书。 | 否 | |
cert_pem | string | 客户端认证的证书PEM编码文本。 | 否 | |
cert_file | string | 客户端认证的证书文件。 | 否 | |
insecure_skip_verify | 布尔型 | 禁用服务器证书验证。 | 否 | |
key_file | string | 客户端认证的密钥文件。 | 否 | |
key_pem | secret | 客户端认证的密钥PEM编码文本。 | 否 | |
min_version | string | 可接受的TLS最低版本。 | 否 | |
server_name | string | ServerName扩展,用于指示服务器名称。 | 否 |
以下参数对相互排斥,不能同时设置
ca_pem
和ca_file
cert_pem
和cert_file
key_pem
和key_file
在配置客户端认证时,必须同时提供客户端证书(使用cert_pem
或cert_file
)和客户端密钥(使用key_pem
或key_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
组件。
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
可以接受以下组件的参数
- 导出Loki
LogsReceiver
的组件
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能正确连接。有关更多详细信息,请参阅链接文档。