将 Cloud Monitoring 代理安装在单个虚拟机上

Cloud Monitoring 代理从虚拟机实例收集系统和应用指标,并将其发送到 Monitoring。您还可以配置 Monitoring 代理以监控第三方应用。

本指南介绍如何在 Compute Engine 和 Amazon Elastic Compute Cloud (EC2) 虚拟机上安装用于 Monitoring 的 Cloud Monitoring 代理。代理不是强制使用的,但我们建议您对 Compute Engine 虚拟机实例使用。对于这些虚拟机,Monitoring 无需代理即可从虚拟机的 Hypervisor 访问某些指标,包括 CPU 利用率、某些磁盘流量指标、网络流量和正常运行时间。Amazon Elastic Compute Cloud (EC2) 虚拟机需要使用代理。

在运行 Microsoft Windows 系统的实例上,代理可记录 CPU 使用率和内存、页面文件和卷使用情况。如果您运行的是 IIS 或 SQL Server,则默认情况下,代理会从这些服务中收集指标。

准备工作

要安装该代理,请确保您拥有以下必备组件:

  • Google Cloud 项目或 Amazon Web Services (AWS) 帐号中受支持的虚拟机实例

    • 运行 Monitoring 代理建议至少使用 250 MiB 的常驻 (RSS) 内存。

    此外,请确保您的虚拟机运行的是受支持的操作系统

  • 工作区,用于监控此虚拟机实例所在的 AWS 帐号。如需查阅价格信息,请转到 Google Cloud 运维套件的价格

  • 虚拟机实例上授权与 Cloud Logging 或 Cloud Monitoring 进行通信的凭据。默认情况下,Compute Engine 虚拟机实例通常具有正确的凭据。如果您属于以下任一种情况,则说明您可能没有正确的凭据,必须完成为代理授权过程:

    • 运行 AWS EC2 虚拟机实例时,您必须先在虚拟机上安装授权凭据,然后才能安装代理。

    • 运行非常旧的 Compute Engine 实例或者在未使用默认凭据的情况下创建的 Compute Engine 实例。

    要检查您是否具有正确的凭据,请运行验证 Compute Engine 凭据过程。

适用于 AWS EC2 虚拟机实例的 Google Cloud 项目

文档中提及与您的虚拟机实例相关联的 Google Cloud 项目时,对于 EC2 虚拟机实例,该短语指的是与您的 AWS 帐号相关联的 AWS 连接器项目

在您将 AWS 帐号连接到工作区时,就会创建一个 AWS 连接器项目。如需识别 AWS 连接器项目,请转到工作区的设置标签页。连接器项目列在 AWS 帐号标题下。项目 ID 列显示了与您的工作区关联的 Google Cloud 项目。

如需详细了解 AWS 连接器项目,请参阅工作区页面

没有远程软件包访问权限的虚拟机

安装 Monitoring 代理时需要访问远程软件包代码库以获得代理软件包及其依赖项(在 Linux 上)。如果虚拟机主机的安全政策拒绝访问远程软件包代码库,我们建议在预装代理的情况下创建自定义虚拟机映像,并在该映像中停用软件包管理。

将代理安装在单个虚拟机上

如需在运行 Linux 或 Microsoft Windows 的虚拟机实例上安装代理,请使用以下说明。

AMAZON LINUX AMI/CENTOS/RHEL

  1. 使用 SSH 或类似工具打开连到虚拟机实例的终端连接。

  2. 确保您拥有 sudo 访问权限。

  3. 切换到您具有写入权限的目录,例如您的主目录。

  4. 添加代理的软件包代码库:

    curl -sSO https://dl.google.com/cloudagents/add-monitoring-agent-repo.sh
    sudo bash add-monitoring-agent-repo.sh
    
  5. 安装代理:

    1. 列出代理的可用版本,以选择要安装的版本:

      sudo yum list --showduplicates stackdriver-agent
      
    2. 对于生产环境,您可能需要固定到某个主要版本,以避免拉取可能包含向后不兼容更改的主要版本。如需固定到主要版本,请运行以下命令:

      sudo yum install -y stackdriver-agent-major-versio.*
      

      例如,如需固定到代理的 6.x.x 版本,请运行以下命令:

      sudo yum install -y stackdriver-agent-6.*
      
    3. 如果您不想固定到某个主要版本,可以选择其他某个安装选项:

      1. 如需安装代理的特定版本,请运行以下命令:

          sudo yum install -y stackdriver-agent-version-number
        
      2. 要安装最新版本的代理,请运行以下命令:

          sudo yum install -y stackdriver-agent
        
  6. 启动代理服务

    sudo service stackdriver-agent start
    

您可以在安装脚本成功运行后将其删除。

  • 如需验证代理是否按预期工作,请运行以下命令:

    sudo service stackdriver-agent status
    

    代理的状态应为 OK

  • 您还可以检查日志并确保没有错误:

    sudo grep collectd /var/log/{syslog,messages} | tail
    

如果您在安装时遇到问题,请参阅问题排查页面。

DEBIAN/UBUNTU

  1. 使用 SSH 或类似工具打开连到虚拟机实例的终端连接。

  2. 确保您拥有 sudo 访问权限。

  3. 切换到您具有写入权限的目录,例如您的主目录。

  4. 添加代理的软件包代码库:

    curl -sSO https://dl.google.com/cloudagents/add-monitoring-agent-repo.sh
    sudo bash add-monitoring-agent-repo.sh
    sudo apt-get update
    
  5. 安装代理:

    1. 列出代理的可用版本,以选择要安装的版本:

      sudo apt-cache madison stackdriver-agent
      
    2. 对于生产环境,您可能需要固定到某个主要版本,以避免拉取可能包含向后不兼容更改的主要版本。如需固定到主要版本,请运行以下命令:

      sudo apt-get install -y 'stackdriver-agent=major-version.*'
      

      例如,如需固定到代理的 6.x.x 版本,请运行以下命令:

      sudo apt-get install -y 'stackdriver-agent=6.*'
      
    3. 如果您不想固定到某个主要版本,可以选择其他某个安装选项:

      1. 如需安装代理的特定版本,请运行以下命令:

          sudo apt-get install -y stackdriver-agent=version-number
        
      2. 要安装最新版本的代理,请运行以下命令:

          sudo apt-get install stackdriver-agent
        
  6. 启动代理服务

    sudo service stackdriver-agent start
    

您可以在安装脚本成功运行后将其删除。

  • 如需验证代理是否按预期工作,请运行以下命令:

    sudo service stackdriver-agent status
    

    代理的状态应为 OK

  • 您还可以检查日志并确保没有错误:

    sudo grep collectd /var/log/{syslog,messages} | tail
    

如果您在安装时遇到问题,请参阅问题排查页面。

SLES/SUSE

  1. 使用 SSH 或类似工具打开连到虚拟机实例的终端连接。

  2. 确保您拥有 sudo 访问权限。

  3. 切换到您具有写入权限的目录,例如您的主目录。

  4. 添加代理的软件包代码库:

    curl -sSO https://dl.google.com/cloudagents/add-monitoring-agent-repo.sh
    sudo bash add-monitoring-agent-repo.sh
    
  5. 安装代理:

    1. 列出代理的可用版本,以选择要安装的版本:

      sudo zypper search -s stackdriver-agent
      
    2. 对于生产环境,您可能需要固定到某个主要版本,以避免拉取可能包含向后不兼容更改的主要版本。如需固定到主要版本,请运行以下命令:

      sudo zypper install -y 'stackdriver-agent<major-version.0.0'
      

      例如,如需固定到代理的 6.x.x 版本,请运行以下命令:

      sudo zypper install -y 'stackdriver-agent<6+1.0.0'
      
    3. 如果您不想固定到某个主要版本,可以选择其他某个安装选项:

      1. 如需安装代理的特定版本,请运行以下命令:

          sudo zypper install -y stackdriver-agent=version-number
        
      2. 要安装最新版本的代理,请运行以下命令:

          sudo zypper install stackdriver-agent
        
  6. 启动代理服务

    sudo service stackdriver-agent start
    

您可以在安装脚本成功运行后将其删除。

  • 如需验证代理是否按预期工作,请运行以下命令:

    sudo service stackdriver-agent status
    

    代理的状态应为 OK

  • 您还可以检查日志并确保没有错误:

    sudo grep collectd /var/log/{syslog,messages} | tail
    

如果您在安装时遇到问题,请参阅问题排查页面。

WINDOWS

如需在运行 Windows 的虚拟机实例上安装代理,请执行以下步骤:

  1. 使用 RDP 或类似工具连接到您的实例,然后登录到 Windows。

  2. 打开 PowerShell 终端,然后运行以下 PowerShell 命令。您不需要具备管理员权限。

    cd $env:UserProfile;
    (New-Object Net.WebClient).DownloadFile("https://repo.stackdriver.com/windows/StackdriverMonitoring-GCM-46.exe", ".\StackdriverMonitoring-GCM-46.exe")
    .\StackdriverMonitoring-GCM-46.exe
    

    或者,您可以转到以下网址以下载并运行代理的安装程序:

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

    要以静默方式安装代理,请将 /S 选项附加到安装程序的调用命令中:

    .\StackdriverMonitoring-GCM-46.exe /S
    

    在“静默”模式下,请使用 /D 选项指定安装目录,例如:

    .\StackdriverMonitoring-GCM-46.exe /S /D="C:\Google Cloud's operations suite\Monitoring\"
    

    您可以在安装程序成功完成安装后将其删除。

    如果您在安装时遇到问题,请参阅问题排查页面。

可选任务

本部分介绍如何执行常见的维护任务。

配置 HTTP 代理

如果使用 HTTP 代理将请求代理到 Logging API 和 Monitoring API,则请执行以下操作:

LINUX

  1. 修改以下配置文件(如果该文件不存在,则应创建):

    • 对于代理版本 6.0.0 及更高版本,请修改:

      /etc/default/stackdriver-agent
      
    • 对于 6.0.0 以下版本的代理,请修改您的操作系统对应的文件:

      对于 Debian 和 Ubuntu,请修改:

      /etc/default/stackdriver-agent
      

      对于 CentOS 和 SLES,请修改:

      /etc/default/stackdriver-collectd
      
  2. 添加以下几行内容:

     export http_proxy="http://proxy-ip:proxy-port"
     export https_proxy="http://proxy-ip:proxy-port"
     export no_proxy=169.254.169.254  # Skip proxy for the local Metadata Server.
    
  3. 通过在您的虚拟机实例上运行以下命令来重启 Monitoring 代理。

     sudo service stackdriver-agent restart
    

WINDOWS

  1. 如果您使用的是 HTTP 代理,请通过管理员命令提示符运行以下命令。这样做可设置 HTTP_PROXYHTTPS_PROXY 环境变量,以便代理可以使用出站 HTTPS 将数据发送到 Monitoring:

    setx HTTP_PROXY http://proxy-ip:proxy-port /m
    setx HTTPS_PROXY http://proxy-ip:proxy-port /m
    setx no_proxy 169.254.169.254 /m
    

确定代理版本

要确定系统上 Monitoring 代理的版本,请在您的虚拟机实例上运行以下命令:

AMAZON LINUX AMI / CENTOS / RHEL

在 Amazon Linux、Red Hat 或 CentOS Linux 上运行以下命令:

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

DEBIAN/UBUNTU

在 Debian 或 Ubuntu 上运行以下命令:

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

SLES/SUSE

在 SUSE 上运行以下命令:

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

WINDOWS

目前无法确定在 Windows 系统上运行的 Monitoring 代理的版本。

重启代理

您必须重启 Monitoring 代理才能才能使配置文件中的更改生效。要重启代理,请按以下说明操作。

LINUX

在您的实例上运行以下命令:

 sudo service stackdriver-agent restart

WINDOWS

需要管理员权限:要重启代理,请在 PowerShell 终端中运行以下命令:

Restart-Service -Name StackdriverMonitoring

升级代理

要将 Monitoring 代理升级到最新版本,请按以下说明操作:

AMAZON LINUX AMI/CENTOS/RHEL

在 Amazon Linux、Red Hat 或 CentOS Linux 上运行以下命令:

sudo yum update stackdriver-agent

DEBIAN / UBUNTU

在 Debian 或 Ubuntu 上运行以下命令:

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

SLES / SUSE

在 SUSE 上运行以下命令:

sudo zypper update stackdriver-agent

WINDOWS

要升级到最新的代理版本,请按照此页面上在 Windows 上安装部分的说明安装最新代理。安装程序会提示您卸载以前的代理版本。

卸载代理

要移除 Monitoring 代理及其配置文件,请按以下说明操作。

AMAZON LINUX AMI / CENTOS / RHEL

在 Amazon Linux、Red Hat 或 CentOS Linux 上运行以下命令:

sudo yum remove stackdriver-agent

DEBIAN/UBUNTU

在 Debian 或 Ubuntu 上运行以下命令:

sudo apt-get purge stackdriver-agent

SLES/SUSE

在 SUSE Linux 上运行以下命令:

sudo zypper remove stackdriver-agent

WINDOWS

在 Windows 控制面板中,选择卸载程序。您应该会在可以卸载的程序列表中看到 Monitoring 代理