Promtail
Promtail是船代理本地日志的内容或私人Grafana洛基实例Grafana云。它通常部署到应用程序需要监控每台机器。
它主要是:
- 发现目标
- 高度标签日志流
- 将他们推到洛基实例。
目前,Promtail可以来自两个来源:尾日志本地日志文件和systemd日报(仅在AMD64机器上)。
日志文件发现
Promtail船之前任何数据从日志文件到洛基,它需要找到关于环境的信息。具体来说,这意味着发现应用程序发送日志文件需要被监控。
Promtail借相同从普罗米修斯服务发现机制目前,尽管它只支持静态
和kubernetes
服务发现。这种局限性是由于这一事实Promtail部署每一个本地机器作为一个守护进程,因此,从其他机器没有发现标签。kubernetes
服务发现从Kubernetes API服务器获取所需的标签静态
通常涵盖了所有其他的用例。
就像普罗米修斯一样,promtail
配置使用scrape_configs
节。relabel_configs
允许细粒度控制摄取什么,放弃什么,最后的元数据附加到日志。参考的文档配置Promtail为更多的细节。
支持压缩文件
Promtail现在有原生支持摄取压缩文件的机制依赖于文件扩展名。如果发现文件有一个预期的压缩文件扩展名,Promtail意志懒洋洋地解压压缩文件,推动洛基的解析数据。重要的细节是:
- 它依赖于
\ n
角色分离到不同的日志的数据行。 - 马克斯预期日志行是2 mb字节压缩文件内。
- 块4096字节的数据解压。我。艾凡:它首先获取一块4096字节压缩文件和处理它。在处理这一块并把数据洛基,它获取以下4096字节,等等。
- 它支持以下扩展:
. gz
:数据将与本机解压Gunzip Golang包裹(包裹/ / gzip压缩
)还是z
:数据将与本机Zlib Golang包裹(解压包裹/ / zlib压缩
)bz2
:数据将与本机Bzip2 Golang包裹(解压包裹/压缩/ bzip2
)gz
:数据将解压完全一样. gz
扩展。然而,由于焦油
将增加其元数据发出召唤的压缩文件,第一个解析线路将包含元数据日志一起。它说明了。/客户/ pkg / promtail /目标/文件/ decompresser_test.go
。
. zip
扩展目前不支持,因为它不支持的一些接口Promtail要求。我们计划增加支持它在不久的将来。- 减压很预计CPU密集型和分配工作,特别是根据文件的大小。你可以预期运行垃圾收集的数量和CPU使用量大幅增长,但预计没有内存泄漏。
- 支持位置。这意味着,如果你中断后Promtail解析和推动(例如)45%的压缩文件数据,你可以预期Promtail恢复工作从去年刮行和处理其余的剩下的55%。
- 由于减压和推动可以非常快,根据压缩文件的大小洛基将限速你摄入。在这种情况下你可能配置Promtail的
限制
阶段慢速度或增加摄入限制洛基。 - 日志旋转目前不支持,主要是因为它要求我们修改Promtail依赖文件索引节点代替文件名。如果你想看到对它的支持,请在Github上创建一个新问题要求并解释你的用例。
- 如果你想看到支持压缩协议没有列在这里,请创建一个新的问题在Github要求和解释你的用例。
洛基推动API
Promtail也可以配置来接收从另一个Promtail日志或任何洛基客户机通过暴露洛基推动API与loki_push_api刮配置。
有一些实例,这可能是有用的:
- 复杂的网络基础设施,许多机器拥有出口是不可取的。
- 使用码头工人记录司机和想要提供一个复杂的管道或从日志中提取指标。
- serverless设置许多短暂的日志来源洛基想要发送,发送Promtail实例
use_incoming_timestamp
= =错误可以避免无序的错误,避免使用高基数标签。
收到来自Syslog的日志
当Syslog目标正在使用,可以写日志syslog协议配置的端口。
AWS
如果需要在Amazon Web服务运行Promtail EC2实例,您可以使用我们的详细的教程。
标签和解析
在服务发现过程中,确定元数据(pod名称、文件名等)可以附加到日志行作为容易识别的标签在洛基查询日志。通过relabel_configs
,发现标签可以突变成所需的形式。
允许更复杂的过滤之后,Promtail允许设置标签不仅从服务发现,但也根据每个日志的内容。的pipeline_stages
可以用来添加或更新标签,完全正确的时间戳,或重写日志行。参考的文档管道为更多的细节。
航运
一旦Promtail(即有一组目标。,读的东西,如文件)和所有的标签都是正确地设置,它将开始跟踪(不断阅读)的日志目标。一旦足够的数据读取到内存中或一个可配置的超时后,刷新为单个批处理洛基。
Promtail读取数据来源(如果配置文件和systemd日报》),它将跟踪最后抵消它读入一个立场文件。默认情况下,文件存储的位置/var/log/positions.yaml
。立场文件帮助Promtail继续阅读从上次Promtail实例的情况下重新启动。
API
Promtail功能嵌入式web服务器暴露web控制台/
和下面的API端点:
准备好/
这个端点返回200 Promtail启动和运行时,至少有一个工作目标。
GET /指标
这个端点返回普罗米修斯Promtail指标。指观察Grafana洛基出口标准的列表。
Promtail web服务器配置
web服务器暴露Promtail Promtail可以配置.yaml
配置文件:
服务器:http_listen_address: 127.0.0.1 http_listen_port: 9080