如何从 Stackdriver 中提取原始纯文本日志?

如何从 Stackdriver 中提取原始纯文本日志?

我们需要以原始格式提取 GKE 托管的反向代理的日志,以便 SEO 日志分析工具能够解析。遗憾的是,这些工具完全拒绝提取 CSV 和 JSON 文件,它们只接受原始文本,就像 Nginx 在物理服务器上生成的 .log 文件中的文本一样。

从 GCP GUI 下载它们不起作用,因为它只允许 JSON 和 CSV 导出。GCP 允许的导出实际上也不起作用 - 我们能够使用云函数脚本将纯文本日志保存在 Google 存储中,但方式不方便(每小时 1 个文件,似乎没有办法改变这一点),并且仅适用于未来的日志,因为日志导出仅适用于传入日志。

我们需要的是提取上个月的纯文本日志,但似乎没有记录和/或支持的方法来做到这一点。

答案1

抱歉,我不得不自己回答这个问题,但我花了很多时间研究这个问题,希望通过在这里发布它可以为其他人省去麻烦。

实现我需要的唯一方法似乎是从命令行使用 google cloud sdk 并将结果转储到本地文本文件中,如下所示:

$ gcloud logging read 'resource.type=container resource.labels.cluster_name=your_cluster logName=the_specific_deployment_you_want_logs_from timestamp>="2015-05-01T00:00:00Z" (whatever text search filters are needed)' --limit 1000000000000 --order asc --format "value(textPayload)" > total.log

相关内容