以往我們在 linux 環境下,在做 log 分析的時候經常會使用到 tail -f 這樣的指令,在 GCP 的 gcloud SDK 底下,我們也可以透過 gcloud alpha logging tail 來達到相同的效果。
這篇文章主要是針對在 gcloud 環境下,任何想要使用 tail 去即時追蹤 Cloud Logging 的使用者作為參考。
條件:
1. Google Cloud SDK version 302.0.0 或以上
2. Python 3 and the grpcio
Python package installed
作法:
- 首先檢查 gcloud 版本,我們可以輸入 gcloud version 來檢查目前的 Google Cloud SDK 版本是否符合:
$gcloud version
可以看到目前範例中的版本為 Google Cloud SDK 319.0.0 ,版本符合條件!
2. 目前 gcloud 針對 logging tail 的功能,由於這個指令仍是屬於 alpha 階段,所以我們需要先針對 gcloud 把 alpha 這個 component 先進行安裝,這樣我們在 gcloud 才能使用 alpha 階段的指令。
$gcloud components install alpha
3. 這時候會出現確認訊息,詢問是否要繼續安裝,輸入Y,按下Enter。
4. 安裝完成,可以看到 Update done!
5. 我們可以再檢查一下,再次輸入 gcloud version 的指令,這時候可以看到output 多了一行 alpha 2020.11.13 的資訊,證實已經安裝 alpha components。
6. 接下來我們要準備進行安裝 grpcio 這個 Python package,我們會直接利用 pip 來安裝。
$sudo pip3 install grpcio
安裝完成後可以看到 Successfully installed grpcio-1.34.0 的訊息,代表安裝 grpcio 成功!
*註:對於沒有 Python3 環境及 pip 的讀者,可以參考 Python 官網Python page以及pip的安裝說明,故這邊就不再多加描述細節。(基本上 Python3.4 以上都已經自帶 pip )
7. 這時候我們還需要做一個動作,我們還需要將CLOUDSDK_PYTHON_SITEPACKAGES這個環境變數設為數字1。
$export CLOUDSDK_PYTHON_SITEPACKAGES=1
這個意思是說:我們需要告訴 Google Cloud SDK 在自己的 google-cloud-sdk/lib 目錄以外的地方尋找 lib 。
8. 都完成之後,我們便可以使用 gcloud alpha logging tail 這個指令來進行 real time Cloud Logging 的追蹤。
$gcloud alpha logging tail
9. 由於在正式環境中, log 會非常的多,我們可以搭配 gcloud alpha logging tail “abcde” 這樣的方式來找出特定字眼的 log 。同時可以搭配 Cloud Logging 的 Logging Query Language 來做處理。
例如:
找出 severity>=ERROR 以上:
$gcloud alpha logging tail “severity>=ERROR”
找出 severity>=ERROR 以上並帶有 vm :
$gcloud alpha logging tail “severity>=ERROR AND vm”
有關更多 gcloud alpha logging tail 的指令,可以參考 GCP 官網:gcloud alpha logging tail。
這篇文章主要是提供 Google Cloud SDK 的使用者利用 gcloud alpha logging tail指令的一個方法,如此一來 gcloud 也能使用 tail 命令來協助追蹤即時 log 訊息。