local.file_match
local.file_match
使用 glob 模式和 doublestar 库发现本地文件系统上的文件。
用法
local.file_match "LABEL" {
path_targets = [{"__path__" = DOUBLESTAR_PATH}]
}
参数
您可以将以下参数与 local.file_match
一起使用
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
path_targets | list(map(string)) | 要扩展的目标;在 __path__ 和 __path_exclude__ 键上查找 glob 模式。 | 是 | |
ignore_older_than | 持续时间 | 忽略在此持续时间之前修改的文件。 | "0s" | 否 |
sync_period | 持续时间 | 同步文件系统和目标的频率。 | "10s" | 否 |
path_targets
使用 doublestar 风格的路径。
/tmp/**/*.log
匹配tmp
的所有子目录,并包含所有以*.log
结尾的文件。/tmp/apache/*.log
仅匹配/tmp/apache/
中以*.log
结尾的文件。/tmp/**
匹配tmp
的所有子目录,tmp
本身,以及所有文件。
当 ignore_older_than
设置为默认值 0s
时,local.file_match
不会忽略文件。
块
local.file_match
组件不支持任何块。您可以使用参数配置此组件。
导出字段
以下字段已导出,可供其他组件引用
名称 | 类型 | 描述 |
---|---|---|
targets | list(map(string)) | 从文件系统发现的目标集。 |
每个目标包含以下标签
__path__
: 文件的绝对路径。
组件健康状况
local.file_match
仅在给定无效配置时报告为不健康。在这种情况下,导出字段保留其上次健康的值。
调试信息
local.file_match
不会公开任何组件特定的调试信息。
调试指标
local.file_match
不会公开任何组件特定的调试指标。
示例
以下示例展示了如何使用 local.file_match
查找日志文件并发送到 Loki
将 /tmp/logs/*.log
文件发送到 Loki
此示例发现 /tmp/logs
下的所有文件和文件夹。绝对路径由 loki.source.file.files
目标使用。
local.file_match "tmp" {
path_targets = [{"__path__" = "/tmp/logs/**/*.log"}]
}
loki.source.file "files" {
targets = local.file_match.tmp.targets
forward_to = [loki.write.endpoint.receiver]
}
loki.write "endpoint" {
endpoint {
url = <LOKI_URL>
basic_auth {
username = <USERNAME>
password = <PASSWORD>
}
}
}
替换以下内容
<LOKI_URL>
: 要发送日志的 Loki 服务器 URL。<USERNAME>
: 用于对 Loki API 进行身份验证的用户名。<PASSWORD>
: 用于对 Loki API 进行身份验证的密码。
将 Kubernetes Pod 日志发送到 Loki
此示例查找 Pod 上的所有日志并进行监控。
discovery.kubernetes "k8s" {
role = "pod"
}
discovery.relabel "k8s" {
targets = discovery.kubernetes.k8s.targets
rule {
source_labels = ["__meta_kubernetes_namespace", "__meta_kubernetes_pod_label_name"]
target_label = "job"
separator = "/"
}
rule {
source_labels = ["__meta_kubernetes_pod_uid", "__meta_kubernetes_pod_container_name"]
target_label = "__path__"
separator = "/"
replacement = "/var/log/pods/*$1/*.log"
}
}
local.file_match "pods" {
path_targets = discovery.relabel.k8s.output
}
loki.source.file "pods" {
targets = local.file_match.pods.targets
forward_to = [loki.write.endpoint.receiver]
}
loki.write "endpoint" {
endpoint {
url = <LOKI_URL>
basic_auth {
username = <USERNAME>
password = <PASSWORD>
}
}
}
替换以下内容
<LOKI_URL>
: 要发送日志的 Loki 服务器 URL。<USERNAME>
: 用于对 Loki API 进行身份验证的用户名。<PASSWORD>
: 用于对 Loki API 进行身份验证的密码。
兼容组件
local.file_match
可以接受来自以下组件的参数
- 导出 Targets 的组件
local.file_match
具有可供以下组件消费的导出内容
- 消费 Targets 的组件
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能使连接正常工作。有关更多详细信息,请参阅链接的文档。