2016-12-15 153 views
5

我需要监控非常不同的日志文件以查找错误,成功状态等。我需要使用Prometheus抓取相应的指标,并在Grafana中显示并设置一些警报。普罗米修斯+格拉法纳是好的我已经用它们很多像不同的出口商,如node_exporter或mysql_exporter等。此外在新的格拉法纳4.x警报工作得很好。使用一些指标监控日志文件exporter + Prometheus + Grafana

但我有一个相当大的问题找到合适的出口商/程序,可以分析日志文件“实时”并从中提取指标。

到目前为止,我尝试:

  • mtail(https://github.com/google/mtail) - 的作品,但现有的版本不能轻松地监控多个文件 - 一般它可以具体mtail程序(收据分析)不能结合一些具体的日志文件+ I不能轻易地将日志文件名添加到标记中
  • grok_exporter(https://github.com/fstab/grok_exporter) - 有效,但我只能提取有限的信息+一个实例只能监视一个日志文件,这意味着我必须启动更多实例导出更多端口并配置全部关闭他们在普罗米修斯 - 这使得太多新的失败点
  • fluentd普罗米修斯出口国(https://github.com/kazegusuri/fluent-plugin-prometheus) - 的作品,但看起来我只能提取非常简单的指标,我不能让从日志文件中的行(或多个)的任何先进的正则表达式分析

请问这里的任何一个有一个真正运行解决方案,使用“一些出口商”从日志文件监控高级指标+ Prometheus + Grafana?或者,我可以使用Prometheus推送网关,而不是出口商的某个程序来获取结果。谢谢。

+0

日志是否在某处运送/处理?以某种方式可能更容易进入该过程。 –

+0

日志是由fluentd抓住的,所以我尝试了这一点,但我可以使用fluentd prometheus exporter的指标似乎非常简单和有限。我尝试在fluentd的bash脚本中加入外部处理,但我不知道为什么在fluentd里它很慢,而且很长时间。外面流利的脚本是好的 – JosMac

回答

1

看看Telegraf。它确实使用输入插件logparsertail支持拖尾日志。要将度量标准导出为prometheus端点,请使用prometheus_client输出插件。你也可以申请在飞行聚合。我发现配置多个日志文件比grok_exporter或mtail更简单

+0

是的你是对的 - 我实施了telegraf,它满足了我所需要的 – JosMac

1

这些是目前获取日志数据到普罗米修斯的3个答案。

您也可以考虑获取任何正在生成日志以直接公开Prometheus指标。

+0

问题是过程是非常不同的(bash脚本,去程序),但主要问题是很多都是传统的东西,没有人想摆弄。所以最安全的方法是处理日志文件。 – JosMac

+0

问题还在于我对每个实例/服务器和15个以上的实例至少有5个以上不同的日志文件 – JosMac

+1

@JosMac:然后,您需要集中式日志记录(例如使用Graylog)并从中导出度量标准。 –