概述
本篇實作將告訴你如何利用Stackdriver來監看Google Compute Engine virtual machine instance,你也將安裝監看以及紀錄的服務在你的VM上,他們可以從你的instance上收集更多的資訊
前言
本篇主要是利用Google的Qwiklab平台學習的同時,做的一份學習筆記, 一些專有名詞將不會被翻譯
設定及要求
在你按下 Start Lab 按鈕之前
詳讀所有的教學。 Labs 是有時間限制的, 而且你不可以停止時間倒數。 倒數計時器在你按下 Start Lab 按鈕後開始倒數, 上面顯示的時間為你還能使用 Cloud 資源的時間。
Qwiklabs 的手把手環境, 讓你可以在真實環境中來操作進行 Qwiklabs 上提供的課程, 而不是在一個模擬或是展示的環境。 我們透過提供你一個全新的、暫時的帳號密碼, 在計時器歸零之前, 你可以用來登入並存取 Google Cloud Platform。
你需要什麼?
要完成這個 lab, 你需要:
- 一個一般的網路瀏覽器(推薦 Chrome)
- 完成這個 lab 的時間
備註: 如果你已經有你自己的個人 GCP 帳號或專案,請不要使用在這一個 lab
現在你已經開始你的 lab
, 你將會登入 Google Cloud Shell
主控台, 然後開啟命令列工具
如何開始你的 lab, 然後登入 Console?
- 按下 Start Lab 按鈕。 如果你需要付費, 會有一個彈出視窗來讓你選擇付費的方式。 在左方你會看到一個面板, 上面有暫時的帳號密碼, 你必須使用這些帳號密碼在此次 lab
- 複製
username
, 然後點擊Open Google Console
。 Lab 會開啟另外一個視窗, 顯示選擇帳號
的頁面
tip: 開啟一個全新的視窗,然後跟原本的頁面並排
- 在
選擇帳號
頁面, 點擊Use Another Account
- 登入頁面開啟, 貼上之前複製的
username
以及password
, 然後貼上
重要: 必須使用之前於 Connection Details 面板
取得的帳號密碼,不要使用你自己的 Qwiklabs 帳號密碼。 如果你有自己的 GCP 帳號, 請不要用在這裡(避免產生費用)
- 點擊並通過接下來的頁面:
- 接受
terms
以及conditions
- 不要增加
recovery optoins
或two factor authentication
(因為這只是一個臨時帳號) - 不要註冊免費體驗
- 接受
稍待一些時候, GCP 控制台將會在這個視窗開啟。
注意: 按下左上方位於 Google Cloud Platform
隔壁的 Navigation menu
, 你可以瀏覽選單, 裡面有一系列的 GCP 產品以及服務
啟動 Google Cloud Shell
Google Cloud Shell
是載有開發工具的虛擬機器。 它提供了5GB的 home 資料夾, 並且運行在 Google Cloud
上。 Google Cloud Shell
讓你可以利用 command-line 存取 GCP
資源
- 在
GCP 控制台
, 右上的工具列,點擊Open Cloud Shell
按鈕
- 在打開的對話框裡, 按下
START CLOUD SHELL
:
你可以立即按下 START CLOUD SHELL
當對話視窗打開。
連結並提供環境會需要一點時間。 當你連結成功, 這代表你已成功獲得授權, 且此專案已被設為你的專案ID, 例如:
gcloud 是 Google Cloud Platform
的 command-line 工具, 他已事先被安裝在 Cloud Shell
並且支援自動補齊
使用這個 command, 你可以列出有效帳戶名稱:
gcloud auth list |
輸出:
Credentialed accounts: |
範例輸出:
Credentialed accounts: |
你可以使用以下 command 來列出專案 ID
gcloud config list project |
輸出:
[core] |
範例輸出:
[core] |
gcloud
的完整文件可以參閱 Google Cloud gcloud Overview
建立一個Compute Engine Instance
在GCP主控台的控制面板, Navigation menu > Compute Engine > VM instance,然後點擊 Create
照下面的資訊填入相對應的空格,無提到的空格內請保持預設值
- Name:
lamp-1-vm
- Region: `us-central1 (Iowa)``
- Zone:
us-central1-a
- Machine type:
small (1 shared vCPU)
- Firewall:
Select Allow HTTP traffic
- Name:
點擊Create
安裝Apache2 Server
在主控台,點擊SSH來開啟一個連接此instance的terminal
在SSH視窗中,執行下面的指令來設定Apache2
sudo apt-get update
sudo apt-get install apache2 php7.0
當詢問是否繼續
y
如果你無法安裝php7.0,裝php5
sudo service apache2 restart
回到主控台,在VM instance的頁面,點選External IP處以連接到Apache2預設頁面
建立 Stackdriver 帳號
要使用 Stackdriver ,你的專案必須要在一個 Stackdriver 帳號內,接下的步驟將建立一個有試用期的 Stackdriver 帳號
(1) 在GCP主控台,點擊 Navigation menu > Monitoring
- 這將在一個新視窗開啟 Stackdriver,並顯示你的 Qwiklabs 專案。 點擊 Create workspace ![](https://i.imgur.com/0wwazU5.png)
(2) 在接下來的頁面:
- 加入 GCP 專案到 monitor ,你將看到你的專案顯示已勾選 ![](https://i.imgur.com/97vi3ch.png) - 點擊 Continue - 監看 AWS 帳號 - 略過設定 - 安裝 Stackdriver 監看代理
curl -sSO https://dl.google.com/cloudagents/install-monitoring-agent.sh |
sudo bash install-monitoring-agent.sh |
安裝 Stachdriver 記錄代理
curl -sSO https://dl.google.com/cloudagents/install-logging-agent.sh
sudo bash install-logging-agent.sh
點擊 Continue
點擊 Launch monitoring
建立運行時間確認
Uptime check 用以確認資源總是可以被存取,在此範例中,我們將建立一個 uptime check 來確認 Google 網頁正常運行中
- 在 Stackdriver console 主控台,在控制面板上,點擊 Create an Uptime Check 按鈕。你也可以從左邊到 menu 中,找到 Uptime Checks > Uptime Checks Overview ,然後點擊 Create an Uptime Check編輯 New Uptime Check ,加入以下資訊
- Title:
Lamp Uptime Check
- Check type:
HTTP
- Resource Type:
Instacne
- Applies to:
Single, lamp-1-vm
- Path:
leave at default
- Check every:
1 min
如果 instance 沒有自動載入在我們寫則 "single" 之後,取消這次的 uptime check ,重新整理 Stackdriver 頁面,然後重新試一遍
- Title:
點擊 Test 來確認我們的 uptime check 可以連結到資源
點擊 save ,當顯示所有的資源都已經可以連接
點擊 No thanks 來為這個 uptime check 建立一個警告政策
Uptime Check 的設置將會需要一些時間生效,我們繼續我們的進度,等等我們再來確認結果。讓我們先來建立一個警告政策。
建立一個警告政策
利用 Stackdriver 來建立一個或多個的 alerting policies. 從左邊的選單,點擊 Alerting > Create a Policy ,然後設置 Conditions, Notifications, and Documentation
- 條件: 點擊 Add Condition
- 依照下面的資訊來設置空格處,如果沒有提到,請保留為默認值
- Target:
Resource Type: GCE VM Instance (gce_instance) |
- Configuration
Condition: is above
Threshold: 500 bytes
For: 1 minute
- 點擊 Save
- Notifications:
- 選擇 Email Address ,然後輸入你的個人信箱地址
- Documentation:
- 點擊 Add Documentation 然後新增一個訊息,這個訊息將會被包含在郵件警告中
- Name this policy:
Inbound Traffic Alert
- 點擊 save
我們已經建立一個警告了! 在等待系統觸發警告的同時,建立一個控制面板和圖表,然後看一下紀錄
建立控制面板和圖表
左邊選單, Dashboards > Create Dashboard
螢幕右上方,點擊 Add Chart
在
Find resource type and metric
區域,輸入CPU
,然後選擇 CPU Load(1m).GCE VM instance 根據資源類型自動被選擇,圖表名稱自動命名,但如果你想要的話,你可以自訂命名
點擊 save
現在建立第二個圖表
- 在新的控制面板右上方的選單,選擇 Add Chart
Find resource type and metric
欄位內輸入 Network
,選擇 Received Packets
,其餘欄位保持預設值,你可以在預覽區域看到圖表資料
- 點擊 save
- 重新命名新的控制面板,從
Untitled Dashboard
改成Stackdriver LAMP Qwik Start Dashboard
檢視紀錄
Stackdriver Monitoring 和 Stackdriver Logging 緊密地互相整合著
在Stackdriver 左手邊選單,點擊 Logging 來檢視紀錄
選擇 GCE VM instance > lamp-1-vm 在第一個下拉選單
從第二個下拉選單選擇 syslog,然後點擊OK
其餘欄位保留預設
選擇
Start streaming logs
圖案可以看到這個 VM instance 的 logs
現在來看看,當我們開始跟結束時,會發生什麼事
- 點擊並拖曳 Logs Viewer brower 視窗,所以 Compute Engine console 和 Stackdriver Logging console 會並排
在主控台內,VM instance 視窗,點擊 lamp-1-vm instance
在 VM instance details 視窗,於螢幕上方點擊 Stop,然後確認停止 instance ,這會需要幾分鐘,我們來看 log messages
我們可以看著 Logs View 視窗,然後看VM什麼時候被結束
在 VM instance detail 視窗,在螢幕最上方點擊 Start,然後確認。這會需要幾分鐘的時間,我們可以檢視 log 訊息
確認 uptime check 結果以及警告觸發
在 Stackdriver 左邊區域,點擊
Uptime Checks > Lamp Uptime Check
。這將顯示 uptime check 的細節,包含等待時間, uptime 百分比,區域結果以及設定檢查。如果你看到的 Location result 是 “No checks have run yet” ,那請等待幾分鐘,然後重新整理頁面左方區域點擊 Uptime Checks > Uptime Checks Overview ,這將提供所有運行中的 uptime checks ,包含網站在不同區域的狀態
確認警報是否有觸發
- 在 StackDriver 主控台,左方頁面點擊 Alerting > Incidents ,如果你沒有看到開啟的事件,請確定一下你在看的是 RESOLVED 頁面
- 依然在 Stackdriver 主控台,點擊 Alerting > Events ,你應該會看到一個事件列表
- 確認一下我們的 email 帳號,應該會收到警報
測試你的理解
下面有多重選擇的問題來鞏固你對本教程概念的理解,盡你所能的回答吧:
- Stackdriver supports which of the following cloud platforms / Stackdriver 支援以下哪種雲端平台?
- Google Cloud Platform
- Azure
- Amazon Web Services
留言