Logging

如何從 Stackdriver 中提取原始純文字日誌?

  • February 14, 2020

我們需要以原始格式提取 GKE 託管的反向代理的日誌,以供 SEO 日誌分析工具解析。不幸的是,這些工具完全拒絕攝取 CSV 和 JSON 文件,它們只接受原始文本,就像 Nginx 在物理伺服器上生成的 .log 文件一樣。

從 GCP GUI 下載它們不起作用,因為它只允許 JSON 和 CSV 導出。GCP 允許的導出也不起作用——我們已經能夠使用雲函式腳本將純文字日誌保存在Google儲存中,但只是以一種不方便的方式(每小時 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

引用自:https://serverfault.com/questions/970369