日志输出通常包含状态、时间和测量等有价值的信息。例如,使用来自Web或应用程序服务器的访问日志输出是一种跟踪事务时间或错误统计的有效方法。可以通过工具来解析这些日志条目,从匹配的输出中创建指标,并使它们可供Prometheus作业抓取。
mtail日志处理器是由Google的SRE人员来编写的,其采用Apache 2.0许可证,并且使用Go语言。mtail日志处理器专门用于从应用程序日志中提取要导出到时间序列数据库中的指标。
有了两个mtail程序,可以通过多种方式部署它们。我们建议为每个应用程序运行一个mtail实例,并作为依赖项通过配置管理部署在应用程序周围。这种模式通常被称为边车(sidecar)模式,非常适合容器化应用。也可以在一个mtail实例中运行多个程序,但有一点需要注意,mtail会在传递给它的每个日志文件上运行每个程序,这可能会对主机产生性能影响。
探针监控的一个示例是执行ICMP ping或echo检查并确认你已收到响应。这种类型的探针监控也称为黑盒监控,因为我们将内部应用程序视为黑盒。
Prometheus通过运行Blackbox exporter来进行探测,该exporter会探测远程目标并暴露在本地端点上收集的任何时间序列,然后Prometheus作业将从这些端点中抓取指标。
监控探针有三个约束:
Blackbox exporter是一个在Apache 2.0许可下的二进制Go语言应用程序。exporter允许通过HTTP、HTTPS、DNS、TCP和ICMP来探测端点。它的架构与其他exporter略有不同。在exporter内部,我们定义了一系列执行特定检查的模块,例如,检查Web服务器是否正在运行,或者DNS记录是否解析。在exporter运行时,它会在URL上暴露这些模块和API。Prometheus将目标和特定模块作为该URL的参数传递给这些目标。exporter执行检查并将生成的指标返回给Prometheus。
在某些情况下,没有可以从中抓取指标的目标。造成这种情况的原因有很多:
Pushgateway是一个独立服务,它在HTTP REST API上接收Prometheus指标。Pushgateway位于发送指标的应用程序和Prometheus服务器之间。Pushgateway接收指标,然后作为目标被抓取,以将指标提供给Prometheus服务器。你可以将其视为代理服务,或者说与黑盒exporter的行为相反:它接收指标而不是探测指标。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。