收集NGINX access.log统计信息到Prometheus

时间:2019-05-23 10:29:26

标签: nginx logging prometheus

有nginx Web服务器,它服务于来自不同User-Agent的API调用。我想解析nginx日志并收集有关来自不同User-Agent的API调用的统计信息。

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

还有更合适的解决方案吗?

2 个答案:

答案 0 :(得分:0)

我强烈反对这种方法。

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

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

选择工具时,与社区有关,例如,工具的插件/附件的数量和质量。

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

答案 1 :(得分:0)

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

在这里,您可以根据设置的规模和预算进行多种选择:

  • 使用Filebeat等辅助工具对日志进行集中(例如,在ES中)以解析和发送日志。然后,您可以进行查询以导出统计信息
  • 提供统计信息的日志分析:流利的,telegraf,mtail就是很好的例子
  • 将脚本中的数据转储到prom文件中以供节点导出器收集的脚本的定期执行也是一种廉价的解决方案

滚动自己的脚本将是万不得已的方法:如果您需要统计信息,则无法从需要提取上下文的货架工具或统计信息中获取。但这是以处理痛苦的场景为代价的。对于您而言,滚动时跟随文件可能会成为问题。