本地.file_match
local.file_match
通过使用 glob 匹配模式和 doublestar 库在本地文件系统中发现文件。
用法
local.file_match "LABEL" {
path_targets = [{"__path__" = DOUBLESTAR_PATH}]
}
参数
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
path_targets | list(map(string)) | 要展开的目标;在 __path__ 和 __path_exclude__ 键上查找 glob 匹配模式。 | 是 | |
sync_period | 持续时间 | 同步文件系统和目标的频率。 | "10s" | 否 |
path_targets
使用 doublestar 风格路径。
/tmp/**/*.log
将匹配tmp
的所有子文件夹以及以*.log
结尾的所有文件。/tmp/apache/*.log
将仅匹配/tmp/apache/
中以*.log
结尾的文件。/tmp/**
将匹配tmp
的所有子文件夹、tmp
自己以及所有文件。
导出字段
以下字段被导出,其他组件可以引用它们
名称 | 类型 | 描述 |
---|---|---|
targets | list(map(string)) | 从文件系统中发现的集合目标。 |
每个目标包括以下标签
__path__
: 文件的绝对路径。
组件健康
local.file_match
仅在给出无效配置时报告为不健康。在这种情况下,导出字段将保留其最后的健康值。
调试信息
local.file_match
不公开任何特定组件的调试信息。
调试指标
local.file_match
不公开任何特定组件的调试指标。
示例
将 /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 容器日志发送到 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
可以接受来自以下组件的参数
- 导出 目标 的组件
local.file_match
具有可以由以下组件消费的导出
- 消耗 目标 的组件
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能正确连接。有关详细信息,请参阅相关文档。