我目前正在弄清楚我们是否可以使用Logstash从我们使用API调用的外部服务中收集特定数据 . 最终用于警报触发器 .

我会先尝试解释一下这个案子 .

我们的客户可以与我们的API进行交互,而API又从外部公司调用适当的(SOAP / REST)Web服务 . 根据需要,我们的API会从同一个Web服务调用不同的方法 . 见下图 . 我们的API是一个使用spring框架的基于java的系统 . 目前,我们的日志文件是使用log4j框架记录的 .

enter image description here

最终,我希望能够为每个外部Web服务执行以下操作 .

  • 测量来自外部Web服务的响应时间,如果响应时间超过x时间,则应触发警报(即电子邮件,松弛) . 测量应基于要调用的特定操作 .

  • 检测外部Web服务是否返回了太多失败响应 . 这可能是带有错误消息的错误500,或者是某个soap响应 .

所以我们已经在使用Elasticsearch来搜索应用程序了 . 并且正处于使用logstash与kibana结合使用其他日志文件的实验阶段 . 我现在的主要调查点是看是否有正确的标准/弹性是适当的方法 .

所以对于第1点,我认为我可以使用beats框架,即PacketBeat?使用此功能可以测量来自外部Web服务的特定操作的响应时间 . 但我不确定PacketBeats是否能够开箱即用?

对于第2点,我考虑将错误响应记录到日志文件,每个特定操作的日志文件 . 然后可以将这些日志文件发送到logstash,然后转换特定数据以过滤诸如http错误代码之类的内容,可能是特定于应用程序的错误 . 无论哪种方式,还是REST或SOAP

对于实际警报部分,我'm thinking I'能够使用Alerting来指定规则 .

如果有人有类似的情况,我也很好奇 . 以及你是如何解决它的 .