我正在评估需要从Stackdriver获取日志列表的情况下的方法。可以有多个过滤器标准(例如,有效负载包含“警告”类型的日志的单词“重试” ...)
借助gcp sdk帮助,我能够查询stackdriver,但不确定这种方法的效率如何。请提出其他方法,在这些方法中我可以使用弹性搜索客户端查询stackdriver并列出匹配的日志
答案 0 :(得分:3)
您似乎希望单独使用多组日志,并且可以使用Stackdriver过滤器描述每个日志集。这是一个好的开始,因为针对Stackdriver运行筛选器是对数据进行排序的有效方法。没错,一次又一次地对Stackdriver运行相同的筛选器效率很低。
以下方法使用Stackdriver日志接收器,这就是我们在GCP帐户上管理日志的方式。我们的监控团队对此非常满意,并且易于维护。
通常的想法是让Google使用多个日志接收器(每个过滤器一个接收器)为您自动过滤和导出日志。导出目标可以是Google Storage,BigQuery或Pub / Sub。每个接收器都应导出到不同的位置,并且只要接收器存在就可以连续进行。此外,可以在每个项目或在组织级别(它可以继承其下的所有项目)设置日志接收器。
例如,假设您要设置三个日志接收器。每个接收器使用不同的过滤器和不同的导出位置(但全部输出到同一存储桶):
设置完成后,您代码的SDK可以根据当前所需的日志访问每个位置。由于Google已经在后台为您处理了代码,因此您无需进行代码过滤。
需要注意的一件事:日志到BigQuery和Pub / Sub的导出是即时的,但是导出到Google Storage的操作是每小时进行一次。因此,如果您需要快速处理日志,请避免使用Google Storage,并选择BigQuery或Pub / Sub。
希望这会有所帮助!