如何讓 Cloud Logging 在 gcloud 指令下也能執行Tail?

如何讓 Cloud Logging 在 gcloud 指令下也能執行Tail?

以往我們在 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

作法:

  1. 首先檢查 gcloud 版本,我們可以輸入 gcloud version 來檢查目前的 Google Cloud SDK 版本是否符合:

$gcloud version

Figure 01. 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。

Figure 02. 確認安裝 alpha components

4. 安裝完成,可以看到 Update done!

Figure 03. Update done

5. 我們可以再檢查一下,再次輸入 gcloud version 的指令,這時候可以看到output 多了一行 alpha 2020.11.13 的資訊,證實已經安裝 alpha components。

Figure 04. alpha components已被成功安裝

6. 接下來我們要準備進行安裝 grpcio 這個 Python package,我們會直接利用 pip 來安裝。

$sudo pip3 install grpcio

Figure 05. 安裝 grpcio Python package

安裝完成後可以看到 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

Figure 06. 設定 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

Figure 07. gcloud alpha loggin 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 訊息。

Solution Architect

Cloud Ace 解決方案架構師,負責協助各大企業上雲