安裝 Monitoring 代理程式

本指南說明如何在 Compute Engine 和 Amazon Elastic Compute Cloud (EC2) 虛擬機器 (VM) 執行個體上,安裝 Monitoring 適用的 Stackdriver Monitoring 代理程式。詳情請參閱支援的 VM 執行個體一文。

使用 Monitoring 代理程式是選擇性操作,但建議您執行此操作。Monitoring 可在沒有代理程式的情況下存取部分指標,其中包括 CPU 使用率、一些磁碟流量指標、網路流量,以及運作時間。

在執行 Microsoft Windows 的執行個體上,代理程式會記錄 CPU 使用率、記憶體、分頁檔與磁碟區使用情形。如果您執行 IIS 或 SQL Server,根據預設,代理程式會從這些服務收集指標。

事前準備

如要安裝代理程式,請確定您具備下列其中一個項目:

  • Google Cloud Platform (GCP) 專案或 Amazon Web Services (AWS) 帳戶中支援的 VM 執行個體
    • 建議至少使用 250 MiB 的常駐 (RSS) 記憶體來執行 Monitoring 代理程式。
  • 監控包含 VM 執行個體的 GCP 專案或 AWS 帳戶的工作區
  • 授權與 Stackdriver 通訊之 VM 執行個體上的憑證。

    • 根據預設,GCP VM 執行個體通常具有正確的憑證。

    • 對於 AWS 執行個體而言,您必須先在 VM 上安裝授權憑證,然後再安裝代理程式。

AWS VM 執行個體適用的 GCP 專案

在 Stackdriver 說明文件中,這通常是指「與 VM 執行個體相關聯的 GCP 專案」。對於 AWS VM 執行個體而言,這是指連結至 AWS 帳戶的 AWS 連接器專案

Stackdriver 會在您將 AWS 帳戶連結至工作區時,一併建立 AWS 連接器專案。這個連接器專案擁有下列屬性:

  • AWS Link 開頭的名稱
  • aws- 開頭的 ID

請使用這個 ID 做為「與 VM 執行個體相關聯的 GCP 專案」的 ID。

詳情請參閱 Stackdriver Monitoring 快速入門導覽課程 (AWS) 一文。

在沒有工作區的情況下安裝

如要在選擇用於監控的工作區之前佈建 GCP VM 執行個體,您可以在沒有關聯工作區的情況下,在支援的 GCP VM 執行個體上安裝代理程式。在這種情況下,代理程式會將監控資料傳送至 VM 執行個體的 GCP 專案。在您將專案與工作區建立關聯之前,無法在 Monitoring 中存取該資料。

在沒有遠端套件存取權的情況下安裝

如要在其安全性政策拒絕存取遠端套件存放區的主機上,安裝或升級代理程式,請執行下列步驟:

  1. 在可以存取的主機上安裝代理程式套件:

    • Google Cloud 套件存放區:packages.cloud.google.com
    • (針對 Kubernetes 環境) Google Container Registry:gcr.io
  2. 將套件複製到指定的主機。

授權代理程式

在安裝 Monitoring 代理程式之前,請先檢查您的 VM 執行個體是否有代理程式需要的憑證。代理程式必須有權限才能將監控資訊傳送至 Monitoring。您可以使用儲存在 VM 執行個體上,並做為代理程式的應用程式預設憑證使用的服務帳戶憑證提供權限。

  • 如果您要在 Compute Engine VM 執行個體上安裝代理程式,則執行個體上的預設服務帳戶應具有代理程式需要的憑證。但是,非常舊的執行個體,或在沒有預設憑證的情況下建立的執行個體會需要私密金鑰憑證。如要驗證您的憑證,請參閱下方的驗證 Compute Engine 憑證一節。

  • 如果您要在 Amazon EC2 VM 執行個體上安裝代理程式,則沒有預設的服務帳戶。您必須從 AWS 連接器專案的服務帳戶,手動取得私密金鑰憑證。如果您認為您的執行個體已經擁有私密金鑰憑證,請參閱驗證私密金鑰憑證。如要新增私密金鑰憑證,請直接跳到新增憑證部分。

新增憑證

如果您要在 Compute Engine VM 執行個體上安裝代理程式,且已建立具有預設憑證的執行個體,可以略過這一節,直接前往在 Linux 上安裝在 Windows 上安裝的說明。如果您不確定是否擁有正確的憑證,請參閱驗證 Compute Engine 憑證

如果您的 Compute Engine 執行個體沒有正確的憑證,或您要在 Amazon EC2 執行個體上安裝代理程式,請參閱下列各節的說明內容,瞭解如何執行以下作業:

  1. 建立具有必要權限與私密金鑰憑證的服務帳戶。
  2. 將私密金鑰憑證複製到您的 VM 執行個體,這些憑證可做為應用程式預設憑證,供執行個體上執行的軟體使用。

建立服務帳戶

使用 GCP 主控台的「IAM & admin」(IAM 與管理員) >「Service accounts」(服務帳戶) 頁面,針對與 VM 執行個體相關聯的 GCP 專案,建立服務帳戶與私密金鑰。

開啟「IAM service account」(IAM 服務帳戶) 頁面

  1. 按一下 [Select a project] (選取專案),然後選擇要在其中建立服務帳戶的 GCP 專案:

    • 針對 Compute Engine 執行個體,選擇您已在其中建立執行個體的專案。如果您已在工作區託管專案中建立執行個體,請選擇工作區。

    • 針對 Amazon EC2 執行個體,選擇在您連結 Monitoring 與 AWS 帳戶時建立的 AWS 連接器專案。連接器專案的名稱通常以 AWS Link 開頭。 請勿在工作區專案中建立您的服務帳戶。

    按一下 [Open] (開啟)。如果沒有現有的服務帳戶,系統會顯示一個對話方塊,提示您建立一個服務帳戶。否則,您會看到下列的「Service Accounts」(服務帳戶) 頁面:

    服務帳戶

  2. 在「Service Accounts」(服務帳戶) 頁面中,按一下 [Create service account] (建立服務帳戶)

  3. 在「Service account details」(服務帳戶詳細資料) 窗格中,填入下列資訊:

    1. 輸入服務帳戶名稱。例如 Agent service account
    2. 輸入服務帳戶說明。
    3. 按一下 [Create] (建立)
  4. 在「Service account permissions」(服務帳戶權限) 窗格中,填入下列資訊:

    1. 在「Select a role」(選擇角色) 下拉式選單中,依序選取 [Monitoring] > [Monitoring Metric Writer] (監控指標寫入者)。這樣會授權 Monitoring 代理程式。
    2. 按一下 [Add another role] (新增其他角色)
    3. 在新的 [Select a role] (選擇角色) 下拉式選單中,依序選取 [Logging] > [Logs Writer] (記錄寫入者)。這樣會授權 Stackdriver Logging 代理程式。新增此角色可讓您使用此服務帳戶執行這兩個 Stackdriver 代理程式。
    4. 按一下 [Continue] (繼續)。
  5. 在「Grant users access to this service account」(將這個服務帳戶的存取權授予使用者) 窗格中:

    1. 按一下 [Create key] (建立金鑰)
    2. 選擇 [JSON] 做為金鑰類型
    3. 按一下 [Create] (建立)

    建立金鑰後,GCP 主控台會將私密金鑰檔案寫入工作站的下載目錄,並顯示與下列內容相似的彈出式對話方塊:

    已儲存私密金鑰

  6. 按一下彈出式視窗中的 [Close] (關閉)

  7. 在「Create service account」(建立服務帳戶) 主頁面中,按一下 [Done] (完成)

將私密金鑰複製到您的執行個體

針對要辨識的已新增的服務帳戶憑證,您必須使用您想要使用的任何檔案複製工具,將私密金鑰檔案複製到 VM 執行個體上的下列其中一個位置:

  • 僅限 Linux/etc/google/auth/application_default_credentials.json
  • 僅限 WindowsC:\ProgramData\Google\Auth\application_default_credentials.json
  • 您儲存在變數 GOOGLE_APPLICATION_CREDENTIALS 中的任何位置。代理程式程序必須可以取得這個變數。

為了方便您在下面的操作說明中參考,請將 CREDS 環境變數設定為指向您的憑證檔案。例如:

`CREDS="~/Downloads/{project_name}-{key_id}.json"`

以下檔案複製操作說明假設您在工作站與執行個體上都擁有 Linux 環境。如果您使用其他設定,請參閱雲端服務供應商的說明文件,瞭解如何複製私密金鑰檔案。在上一步建立服務帳戶中,您的私密金鑰憑證應已儲存在工作站上由 CREDS 變數保存的位置:

Compute Engine

在工作站上,使用 gcloud 指令列工具:

REMOTE_USER="$USER"
INSTANCE="{your-instance-id}"
ZONE="{your-instance-zone}"
gcloud compute scp "$CREDS" "$REMOTE_USER@$INSTANCE:~/temp.json" --zone "$ZONE"

在 Compute Engine 執行個體上,執行下列指令:

APPLICATION_DEFAULT_CREDS="/etc/google/auth/application_default_credentials.json"
sudo mkdir -p /etc/google/auth
sudo mv "$HOME/temp.json" "$APPLICATION_DEFAULT_CREDS"
sudo chown root:root "$APPLICATION_DEFAULT_CREDS"
sudo chmod 0400 "$APPLICATION_DEFAULT_CREDS"

Amazon EC2

在工作站上,使用 scp

KEY="{your-ssh-key-pair-file}"
INSTANCE="ec2-{your-instance's-public-ip}.{your-zone}.compute.amazonaws.com"
# The remote user depends on the installed OS: ec2-user, ubuntu, root, etc.
REMOTE_USER="ec2-user"
scp -i "$KEY" "$CREDS" "$REMOTE_USER@$INSTANCE:~/temp.json"

在 EC2 執行個體上,執行下列指令:

APPLICATION_DEFAULT_CREDS="/etc/google/auth/application_default_credentials.json"
sudo mkdir -p /etc/google/auth
sudo mv "$HOME/temp.json" "$APPLICATION_DEFAULT_CREDS"
sudo chown root:root "$APPLICATION_DEFAULT_CREDS"
sudo chmod 0400 "$APPLICATION_DEFAULT_CREDS"

後續步驟

您的 VM 執行個體現在已經具有代理程式需要的憑證了。

  • 如果您要再次確認憑證,請參閱本頁面的驗證私密金鑰憑證一節。

  • 如果您尚未安裝 Monitoring 代理程式,請前往在 Linux 上安裝在 Windows 上安裝各節。

  • 如果您已經安裝代理程式,請重新啟動代理程式以使用新憑證。例如,在您的 VM 執行個體上使用下列 Linux 指令:

    sudo service stackdriver-agent restart
    

在 Linux 上安裝

這個步驟假設您的 VM 執行個體執行由工作區監控的 Linux,且您的執行個體擁有代理程式適用的正確憑證。詳情請參閱新增憑證。下面的操作說明適用於 Compute Engine 執行個體與 Amazon EC2 執行個體:

  1. 在您的 VM 執行個體上執行下列指令,安裝 Monitoring 代理程式:

    curl -sSO https://dl.google.com/cloudagents/install-monitoring-agent.sh
    sudo bash install-monitoring-agent.sh
    

    在安裝結束時,您應該會看到類似下列的訊息。

    Restarting services
    [ ok ] Restarting stackdriver-agent (via systemctl): stackdriver-agent.service.
    
  2. 如果您使用 HTTP Proxy,請執行下列操作:

    1. 編輯 Monitoring 代理程式的系統預設檔案,將 PROXY_URL 設定為您 HTTP Proxy 的網址。這個網址來自您的設定,而不是來自 Google 提供的值。設定檔的名稱取決於您的 Linux 版本:

      • 針對 Debian 與 Ubuntu,請編輯 /etc/default/stackdriver-agent
      • 針對 Amazon Linux、Red Hat、CentOS 與 SUSE,請編輯 /etc/sysconfig/stackdriver
    2. 在您的 VM 執行個體上執行下列指令,重新啟動 Monitoring 代理程式。

      sudo service stackdriver-agent restart
      

您已完成代理程式安裝作業。如有問題,請參閱疑難排解一文。

在 Windows 上安裝

如要在執行 Windows 的 VM 執行個體上安裝代理程式,請先建立遠端桌面協定或與執行個體建立類似連結,並在登入 Windows 後執行下列步驟:

  1. 如果您使用 HTTP Proxy,請從管理員命令提示字元執行下列指令,以設定 https_proxy 環境變數,使代理程式能夠使用傳出 HTTPS 將資料傳送至 Monitoring:

    setx https_proxy https://[YOUR_PROXY_SERVER_URI] /m
    

    重新啟動殼層以使此設定生效。

  2. 瀏覽至下列網址。下載並執行代理程式的安裝程式:

    https://repo.stackdriver.com/windows/StackdriverMonitoring-GCM-46.exe

    您也可以透過下列 PowerShell 指令執行此操作:

    cd $env:UserProfile;
    Invoke-WebRequest https://repo.stackdriver.com/windows/StackdriverMonitoring-GCM-46.exe -OutFile StackdriverMonitoring-GCM-46.exe;
    .\StackdriverMonitoring-GCM-46.exe
    

代理程式安裝作業現在已完成。

如要以無訊息的方式安裝代理程式,請在叫用安裝程式時附加 /S 選項:

.\StackdriverMonitoring-GCM-46.exe /S

在「無訊息」模式下,使用 /D 選項指定安裝目錄,例如:

.\StackdriverMonitoring-GCM-46.exe /S /D="C:\Stackdriver\Monitoring\"

自動化安裝

熱門設定管理員 (包括 Ansible、Chef 與 Puppet) 的安裝指令碼是由廠商及其他社群成員提供。有新的指令碼出現時,我們會發佈其連結。

判斷代理程式版本

如要判斷系統中 Monitoring 代理程式的版本,請在您的 VM 執行個體上執行下列指令:

Debian 與 Ubuntu

dpkg-query --show --showformat \
    '${Package} ${Version} ${Architecture} ${Status}\n' \
    stackdriver-agent

Amazon Linux

rpm --query --queryformat '%{NAME} %{VERSION} %{RELEASE} %{ARCH}\n' \
    stackdriver-agent

Red Hat 與 CentOS

rpm --query --queryformat '%{NAME} %{VERSION} %{RELEASE} %{ARCH}\n' \
    stackdriver-agent

SUSE

rpm --query --queryformat '%{NAME} %{VERSION} %{RELEASE} %{ARCH}\n' \
    stackdriver-agent

Microsoft Windows

目前,無法判斷在 Windows 上執行的 Monitoring 代理程式版本。

更新代理程式

請使用下表中的指令,升級您的代理程式:

Debian 與 Ubuntu

在 Debian 或 Ubuntu Linux 上執行下列指令:

sudo apt-get update
sudo apt-get install stackdriver-agent

Amazon Linux

在 Amazon Linux 上執行下列指令:

sudo yum update stackdriver-agent

Red Hat 與 CentOS

在 Red Hat 或 CentOS Linux 上執行下列指令:

sudo yum update stackdriver-agent

SUSE

在 SUSE Linux 上執行下列指令:

sudo zypper update stackdriver-agent

Microsoft Windows

如要升級 Microsoft Windows 代理程式,請按照在 Microsoft Windows 上安裝中所述安裝新的代理程式版本。這樣會移除任何已安裝的舊版代理程式。

移除代理程式

請使用下表中的指令,移除您的代理程式:

Debian 與 Ubuntu

在 Debian 或 Ubuntu Linux 上執行下列指令:

sudo apt-get purge stackdriver-agent

Amazon Linux

在 Amazon Linux 上執行下列指令:

sudo yum remove stackdriver-agent

Red Hat 與 CentOS

在 Red Hat 或 CentOS Linux 上執行下列指令:

sudo yum remove stackdriver-agent

SUSE

在 SUSE Linux 上執行下列指令:

sudo zypper remove stackdriver-agent

Microsoft Windows

在 Windows 控制台中,選擇 [解除安裝程式]。您應該會在您可以解除安裝的程式清單中看到 Monitoring 代理程式

疑難排解

請參閱疑難排解頁面。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Stackdriver Monitoring
需要協助嗎?請前往我們的支援網頁