参加 2021 年 DevOps 现状问卷调查,塑造软件运维的未来,让我们了解您的想法。

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

Logging 代理可将日志从虚拟机实例和选定的第三方软件包流式传输到 Cloud Logging。最好在所有虚拟机实例上都运行 Logging 代理。

Compute Engine 和 Amazon Elastic Compute Cloud (EC2) 的虚拟机映像不包含 Logging 代理,因此您必须完成这些步骤才能在这些实例上安装该代理。该代理可在 Linux 和 Windows 上运行。

如果您的虚拟机在 Google Kubernetes EngineApp Engine 中运行,那么该代理已包含在虚拟机映像中,因此您可以跳过此页面。

如果您运行的专业化日志记录工作负载需要比标准 Cloud Logging 代理更高的吞吐量和/或更高的资源效率,请考虑使用 Ops Agent

准备工作

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

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

    • 安装 Logging 代理时,至少需要 250 MiB 的内存,但建议留出 1 GiB 可用内存。

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

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

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

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

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

  • 对于 AWS 用户,请执行以下操作:

    1. 将您的 AWS 帐号关联到 Google Cloud。如需了解此过程,请参阅查看 AWS 帐号的指标

    2. 如需了解详情,请参阅适用于 AWS EC2 虚拟机实例的 Google Cloud 项目部分。

  • 如需查阅价格信息,请参阅 Google Cloud 的运维套件的价格

  • 如果您使用的虚拟机无权访问远程软件包代码库,请参阅没有远程软件包访问权限的虚拟机部分。

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

如需安装代理,请按以下说明操作。

安装最新版代理

如需安装最新版本的代理,请完成以下步骤。

Linux

  1. 使用 SSH 或类似工具建立与虚拟机实例的终端连接,并确保您拥有 sudo 访问权限。

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

  3. 运行:

    curl -sSO https://dl.google.com/cloudagents/add-logging-agent-repo.sh
    sudo bash add-logging-agent-repo.sh --also-install
    

Windows

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

  2. 右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。

  3. 运行以下 PowerShell 命令:

    (New-Object Net.WebClient).DownloadFile("https://dl.google.com/cloudagents/windows/StackdriverLogging-v1-15.exe", "${env:UserProfile}\StackdriverLogging-v1-15.exe")
    & "${env:UserProfile}\StackdriverLogging-v1-15.exe"
    

安装特定版本代理

如需安装特定版本的代理,请完成以下步骤。

Linux

  1. 使用 SSH 或类似工具建立与虚拟机实例的终端连接,并确保您拥有 sudo 访问权限。

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

  3. 下载代理安装脚本:

    curl -sSO https://dl.google.com/cloudagents/add-logging-agent-repo.sh
    

    运行 add-logging-agent-repo.sh 脚本时,您还可以设置以下标志:

    • --verbose:在脚本执行期间启用详细日志记录。
    • --also-install:添加代理软件包代码库后安装代理。
    • --version:设置要安装的脚本的代理版本。
    • --uninstall:卸载代理。
    • --remove-repo:安装或卸载代理后移除相应的代理软件包代码库。
    • --dry-run:仅触发脚本执行的试运行,并输出应执行的命令。
    • --uninstall-standalone-logging-agent:卸载独立的 Logging 代理 (StackdriverLogging)。
    • --uninstall-standalone-monitoring-agent:卸载独立的 Monitoring 代理 (StackdriverMonitoring)。

    如需了解详情并查看示例注释,请参阅脚本注释。

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

    1. 如需列出可用的代理版本以选择要安装的版本,请参阅列出所有代理版本

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

      sudo bash add-logging-agent-repo.sh --also-install \
        --version=MAJOR_VERSION.*.*
      

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

      sudo bash add-logging-agent-repo.sh --also-install \
        --version=1.*.*
      
    3. 如需安装代理的特定版本,请运行以下命令:

      sudo bash add-logging-agent-repo.sh --also-install \
        --version=MAJOR_VERSION.MINOR_VERSION.PATCH_VERSION
      
  5. 重启代理服务

    上述 catch-all 软件包安装的配置需要重启才能生效。

    sudo service google-fluentd restart
    

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

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

    sudo service google-fluentd status
    

    代理的状态应为 OK

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

    tail /var/log/google-fluentd/google-fluentd.log
    

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

Windows

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

  2. 右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。

    1. 运行以下 PowerShell 命令:

      (New-Object Net.WebClient).DownloadFile("https://dl.google.com/cloudagents/windows/StackdriverLogging-v1-15.exe", "${env:UserProfile}\StackdriverLogging-v1-15.exe")
      & "${env:UserProfile}\StackdriverLogging-v1-15.exe"
      

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

    https://dl.google.com/cloudagents/windows/StackdriverLogging-v1-15.exe

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

    & "${env:UserProfile}\StackdriverLogging-v1-15.exe" /S
    

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

    & "${env:UserProfile}\StackdriverLogging-v1-15.exe" /S /D="C:\Stackdriver\Logging\"
    

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

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

在 Compute Engine 虚拟机上安装代理

您可以通过预配置的 Monitoring 虚拟机实例信息中心在单个虚拟机上安装 Logging 代理。

如需访问此信息中心,请执行以下操作:

  1. 在 Cloud Console 中,选择您的 Google Cloud 项目。
    转到 Cloud Console
  2. 在导航窗格中,选择 Monitoring
  3. 在 Monitoring 导航窗格中,选择信息中心
  4. 在信息中心的表格中,找到虚拟机实例条目,然后点击相应名称。

虚拟机实例信息中心中的库存标签页列出了所有虚拟机并包含代理的状态列,如以下屏幕截图所示:

Monitoring 中的“虚拟机实例”信息中心显示代理的状态。

如果在 Compute Engine 实例上未检测到代理,您可以点击安装代理链接以在信息中心内显示安装工作流。

可选任务

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

启用结构化日志记录

在 Linux 虚拟机上运行安装脚本时,如果 --also-install 标志存在,脚本会默认安装 google-fluentd-catch-all 软件包。如需切换到结构化日志记录,请完成以下步骤。

  1. 将所有本地更改备份到 /etc/google-fluentd/config.d/

  2. 根据您的 Linux 发行版运行以下某个命令:

    • YUM sudo yum uninstall -y google-fluentd-catch-all-config sudo yum install -y google-fluentd-catch-all-config-structured sudo service google-fluentd restart

    • APT sudo apt-get remove -y google-fluentd-catch-all-config sudo apt-get install -y google-fluentd-catch-all-config-structured sudo service google-fluentd restart

如需了解结构化日志记录,请参阅结构化日志记录指南。

配置代理

代理会进行预先配置,以监控某些已知的日志位置。在 Linux 上,这些位置在由安装脚本自动提取的 google-fluentd-catch-all-config 软件包中进行描述。在 Windows 上,代理默认监控 Windows 事件日志。

如需调整代理配置,请参阅配置代理

配置 HTTP 代理

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

Linux

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

     /etc/default/google-fluentd
    
  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. 通过在虚拟机实例上运行以下命令来重启该代理。

     sudo service google-fluentd restart
    

Windows

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

    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
    

确定代理版本

如需确定系统中 Logging 代理的版本,请在虚拟机实例上运行以下命令:

AMAZON LINUX AMI/CENTOS/RHEL

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

rpm --query --queryformat '%{NAME} %{VERSION} %{RELEASE} %{ARCH}\n' \
     google-fluentd ∖
     google-fluentd-catch-all-config ∖
     google-fluentd-catch-all-config-structured

DEBIAN/UBUNTU

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

dpkg-query --show --showformat \
    '${Package} ${Version} ${Architecture} ${Status}\n' \
     google-fluentd ∖
     google-fluentd-catch-all-config ∖
     google-fluentd-catch-all-config-structured

SLES/SUSE

在 SUSE 上运行以下命令:

rpm --query --queryformat '%{NAME} %{VERSION} %{RELEASE} %{ARCH}\n' \
     google-fluentd ∖
     google-fluentd-catch-all-config ∖
     google-fluentd-catch-all-config-structured

WINDOWS

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

  2. 右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。

  3. 运行以下 PowerShell 命令:

     reg query HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\GoogleStackdriverLoggingAgent\ /v Version
    

重启代理

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

LINUX

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

 sudo service google-fluentd restart

重启 Logging 代理后,您可能需要发送测试消息

Windows

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

  2. 右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。

  3. 运行以下 PowerShell 命令:

Restart-Service -Name StackdriverLogging

升级代理

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

Linux

如需将代理升级到最新版本,请运行以下命令:

sudo bash add-google-cloud-ops-agent-repo.sh --also-install

如需将代理升级到特定主要版本的最新版本,请运行以下命令:

sudo bash add-google-cloud-ops-agent-repo.sh --also-install \
  --version=MAJOR_VERSION.*.*

Windows

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

列出所有代理版本

如需列出代理的可用版本,请运行以下命令:

AMAZON LINUX AMI/CENTOS/RHEL

列出代理的可用版本:

sudo yum list --showduplicates google-fluentd

DEBIAN/UBUNTU

列出代理的可用版本:

sudo apt-cache madison google-fluentd

SLES/SUSE

列出代理的可用版本:

sudo zypper search -s google-fluentd

WINDOWS

不支持在 Windows 上安装代理的较早版本。

卸载代理

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

Linux

运行以下命令:

sudo bash add-logging-agent-repo.sh --uninstall

Windows

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

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

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

将 AWS 帐号连接到 Google Cloud 时,您需要创建一个 AWS 连接器项目。如需了解此过程,请参阅查看 AWS 帐号的指标

如需访问 AWS 帐号的 AWS 连接器项目,请执行以下操作之一:

  • 使用 Google Cloud Console 项目选择器来识别与您的 AWS 连接器项目命名惯例匹配的项目,然后为您的 AWS 帐号选择特定项目。

  • 确定指标范围包含 AWS 帐号指标的 Google Cloud 项目,并在 Google Cloud Console 项目选择器中选择该项目。对于此 Google Cloud 项目,转到 Monitoring 页面,然后选择设置页面。设置页面列出了 AWS 连接器项目。您可以使用 Google Cloud Console 项目选择器访问 AWS 连接器项目。

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

安装 Logging 代理时需要访问远程软件包代码库,以获得代理软件包及其依赖项(在 Linux 上)。

如果您使用的是 VPC-SC 或专用网络,则网络配置还可能会影响您能否从上游代码库安装代理依赖项。您可以使用专用 Google 访问通道来访问代理软件包本身。

如果虚拟机主机的安全政策拒绝访问远程软件包代码库,我们建议在预装代理的情况下创建自定义虚拟机映像,并在该映像中停用软件包管理。

后续步骤