【问题标题】:Collect NGINX access.log statistics to Prometheus将 NGINX access.log 统计信息收集到 Prometheus
【发布时间】:2019-05-23 10:29:26
【问题描述】:

有 nginx 网络服务器,它为来自不同用户代理的 API 调用提供服务。我想解析 nginx 日志并收集有关来自不同用户代理的 API 调用的统计信息。

我要写python脚本来解析nginxaccess.log像这样https://gist.github.com/sysdig-blog/22ef4c07714b1a34fe20dac11a80c4e2#file-prometheus-metrics-python-py

有没有更合适的解决方案?

【问题讨论】:

  • 看看google的mtail

标签: nginx logging prometheus


【解决方案1】:

我强烈反对这种方法。

解析日志是一项古老的任务,并且有许多工具能够以有效的方式完成此任务。

就我个人而言,Fluentd - Open Source Data Collector 取得了成功,但还有更多工具,具体取决于您的具体需求。

社区,例如工具插件/插件的数量和质量,在选择工具时是相关的。

因此,如果在谷歌上搜索 fluentd prometheus 可以从 github 和开发人员本身获得一些结果 - 这可能是您正确的做法。

【讨论】:

    【解决方案2】:

    当应用程序不公开白盒监控端点时,解析日志是唯一的解决方案。

    根据设置的规模和预算,您有多种选择:

    • 使用像 Filebeat 这样的 sidecar 来集中化日志(以 ES 为例)来解析和传送它们。然后,您可以查询以导出统计信息
    • 暴露统计信息的日志解析:fluentd、telegraf、mtail 都是很好的例子
    • 定期执行将数据转储到由节点导出器收集的 prom 文件中的脚本也是一种廉价的解决方案

    滚动您自己的脚本将是最后的手段:如果您需要统计信息,您无法从搁置工具或需要提取上下文的统计信息中获得。但这是以处理痛苦的场景为代价的;在您的情况下,在文件滚动时跟踪文件可能是一个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-06
      相关资源
      最近更新 更多