从匹配模式的Stckdriver列出错误日志

时间:2019-05-27 06:00:14

标签: elasticsearch stackdriver

我正在评估需要从Stackdriver获取日志列表的情况下的方法。可以有多个过滤器标准(例如,有效负载包含“警告”类型的日志的单词“重试” ...)

借助gcp sdk帮助,我能够查询stackdriver,但不确定这种方法的效率如何。请提出其他方法,在这些方法中我可以使用弹性搜索客户端查询stackdriver并列出匹配的日志

1 个答案:

答案 0 :(得分:3)

您似乎希望单独使用多组日志,并且可以使用Stackdriver过滤器描述每个日志集。这是一个好的开始,因为针对Stackdriver运行筛选器是对数据进行排序的有效方法。没错,一次又一次地对Stackdriver运行相同的筛选器效率很低。

以下方法使用Stackdriver日志接收器,这就是我们在GCP帐户上管理日志的方式。我们的监控团队对此非常满意,并且易于维护。

您可以阅读日志接收器here和聚合日志接收器here

通常的想法是让Google使用多个日志接收器(每个过滤器一个接收器)为您自动过滤和导出日志。导出目标可以是Google Storage,BigQuery或Pub / Sub。每个接收器都应导出到不同的位置,并且只要接收器存在就可以连续进行。此外,可以在每个项目或在组织级别(它可以继承其下的所有项目)设置日志接收器。

例如,假设您要设置三个日志接收器。每个接收器使用不同的过滤器和不同的导出位置(但全部输出到同一存储桶):

  • 日志接收器1(计算日志)-> gs:// my-example-log-dump-bucket / compute-logs /
  • 日志接收器2(网络日志)-> gs:// my-example-log-dump-bucket / network-logs /
  • 日志接收器3(Linux日志)-> gs:// my-example-log-dump-bucket / linux-logs /

设置完成后,您代码的SDK可以根据当前所需的日志访问每个位置。由于Google已经在后台为您处理了代码,因此您无需进行代码过滤。

需要注意的一件事:日志到BigQuery和Pub / Sub的导出是即时的,但是导出到Google Storage的操作是每小时进行一次。因此,如果您需要快速处理日志,请避免使用Google Storage,并选择BigQuery或Pub / Sub。

希望这会有所帮助!