本地文件匹配
local.file_match
使用glob模式及doublestar库在本地文件系统中发现文件。
使用方法
local.file_match "LABEL" {
path_targets = [{"__path__" = DOUBLESTAR_PATH}]
}
参数
以下参数被支持:
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
path_targets | list(map(string)) | 要展开的目标;在 __path__ 和 __path_exclude__ 键上查找 glob 模式。 | yes | |
sync_period | 持续时间 | 多久同步一次文件系统和目标。 | "10s" | no |
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
此示例查找所有容器的日志并进行监控。
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
的导出可以被以下组件消费
- 消费 目标 的组件
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能正确工作。有关详细信息,请参阅相关文档。