Logging 代理可将日志从虚拟机实例和选定的第三方软件包流式传输到 Cloud Logging。最好在所有虚拟机实例上都运行 Logging 代理。
Compute Engine 和 Amazon Elastic Compute Cloud (EC2) 的虚拟机映像不包含 Logging 代理,因此您必须完成这些步骤才能在这些实例上安装该代理。该代理可在 Linux 和 Windows 上运行。
如果您的虚拟机在 Google Kubernetes Engine 或 App Engine 中运行,那么该代理已包含在虚拟机映像中,因此您可以跳过此页面。
准备工作
要安装该代理,请确保您拥有以下必备组件:
Google Cloud 项目或 Amazon Web Services (AWS) 账号中受支持的虚拟机实例。
- 安装 Logging 代理时,至少需要 250 MiB 的内存,但建议留出 1 GiB 可用内存。
此外,请确保您的虚拟机运行的是受支持的操作系统。
虚拟机实例上授权与 Cloud Logging 或 Cloud Monitoring 进行通信的凭据。默认情况下,Compute Engine 虚拟机实例通常具有正确的凭据。如果您属于以下任一种情况,则说明您可能没有正确的凭据,必须完成向 Logging 代理授权过程:
运行 AWS EC2 虚拟机实例时,您必须先在虚拟机上安装授权凭据,然后才能安装代理。
运行非常旧的 Compute Engine 实例或者在未使用默认凭据的情况下创建的 Compute Engine 实例。
如需检查您是否具有正确的凭据,请运行验证 Compute Engine 凭据过程。
如需了解价格信息,请参阅 Google Cloud Observability 价格。
如果您使用的虚拟机无权访问远程软件包代码库,请参阅没有远程软件包访问权限的虚拟机部分。
通过命令行安装代理
如需使用命令行安装代理,请按照以下说明操作。
安装最新版本的代理
如需安装最新版本的代理,请完成以下步骤。
使用 SSH 或类似工具建立与虚拟机实例的终端连接,并确保您拥有
sudo
访问权限。切换到您具有写入权限的目录,例如您的主目录。
使用以下命令下载并运行代理安装脚本:
curl -sSO https://dl.google.com/cloudagents/add-logging-agent-repo.sh sudo bash add-logging-agent-repo.sh --also-install
安装完成后,该代理会自动启动。
使用 RDP 或类似工具连接到您的实例,然后登录到 Windows。
右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。
运行以下 PowerShell 命令:
(New-Object Net.WebClient).DownloadFile("https://dl.google.com/cloudagents/windows/StackdriverLogging-v1-21.exe", "${env:UserProfile}\StackdriverLogging-v1-21.exe") & "${env:UserProfile}\StackdriverLogging-v1-21.exe"
安装特定版本代理
如需安装特定版本的代理,请完成以下步骤。
使用 SSH 或类似工具建立与虚拟机实例的终端连接,并确保您拥有
sudo
访问权限。切换到您具有写入权限的目录,例如您的主目录。
下载代理安装脚本:
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
:仅触发脚本执行的试运行,并输出应执行的命令。
如需了解详情并查看示例注释,请参阅脚本注释。
添加代理的软件包代码库并安装代理:
如需列出可用的代理版本,请参阅列出所有代理版本。
对于生产环境,您可能需要固定到某个主要版本,以避免安装可能包含向后不兼容更改的主要版本。如需固定到某个主要版本,请运行以下命令:
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.*.*
如需安装代理的特定版本,请运行以下命令:
sudo bash add-logging-agent-repo.sh --also-install \ --version=
MAJOR_VERSION.MINOR_VERSION.PATCH_VERSION
重启代理服务
上述 catch-all 软件包安装的配置需要重启才能生效。
sudo service google-fluentd restart
您可以在安装脚本成功运行后将其删除。
如需验证代理是否按预期工作,请运行以下命令:
sudo service google-fluentd status
代理的状态应为 OK。
您还可以检查日志并确保没有错误:
tail /var/log/google-fluentd/google-fluentd.log
如果您在安装时遇到问题,请参阅问题排查页面。
使用 RDP 或类似工具连接到您的实例,然后登录到 Windows。
右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。
运行以下 PowerShell 命令:
(New-Object Net.WebClient).DownloadFile("https://dl.google.com/cloudagents/windows/StackdriverLogging-v1-21.exe", "${env:UserProfile}\StackdriverLogging-v1-21.exe") & "${env:UserProfile}\StackdriverLogging-v1-21.exe"
或者,您可以转到以下网址以下载并运行代理的安装程序:
https://dl.google.com/cloudagents/windows/StackdriverLogging-v1-21.exe
要以静默方式安装代理,请将
/S
选项附加到安装程序的调用命令中:& "${env:UserProfile}\StackdriverLogging-v1-21.exe" /S
在“静默”模式下,请使用
/D
选项指定安装目录,例如:& "${env:UserProfile}\StackdriverLogging-v1-21.exe" /S /D="C:\Stackdriver\Logging\"
您可以在安装程序成功完成安装后将其删除。
如果您在安装时遇到问题,请参阅问题排查页面。
使用 Google Cloud 控制台查看代理信息
您可以在预配置的 Monitoring 虚拟机实例信息中心中找到有关代理的状态信息。如需访问此信息中心,请执行以下操作:
在 Google Cloud 控制台中,进入虚拟机实例信息中心页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
信息中心的清单标签页上的列表视图列出了所有虚拟机,并包含代理的状态列,如以下屏幕截图所示:
代理列会报告以下值:
未检测到:未安装代理或代理未运行。如果您不确定是否已安装代理,则可以查询已安装的版本。如果您已安装代理,则可以重启代理。
Ops Agent:您正在运行 Ops Agent。 如果您在条目旁边没有看到绿色对勾标记,则表示根据检测到的虚拟机操作系统,有可用的代理升级。
将鼠标悬停在表中的 Ops Agent 指示标志上时,您会看到有关 Ops Agent 版本的信息。如果您运行的是较旧版本,则还会看到升级代理的建议。
待处理:正在安装或升级 Ops Agent。
旧版代理:您正在运行旧版 Monitoring 或 Logging 代理。如需了解如何转换到 Ops Agent,请参阅从旧版代理迁移到 Ops Agent。
不适用:此虚拟机不属于运行代理的受支持平台。
未知:虚拟机未运行,因此代理的状态未知。
您可以通过执行以下操作来安装 Ops Agent:
- 选择要在其中安装代理的虚拟机实例。
- 点击实例表中的安装/更新 Ops Agent 选项。
您还可以从特定虚拟机的虚拟机详情页面安装或更新 Ops Agent。
尽可能使用 Ops Agent 操作系统政策安装代理。如需了解详情,请参阅管理 Ops Agent 操作系统政策涵盖的虚拟机。并非所有操作系统的所有版本都支持 Ops Agent 操作系统政策。在这种情况下,点击安装/更新 Ops Agent 可提供一系列在 Cloud Shell 中运行的命令。
Ops Agent 默认会收集指标和日志。您可以通过配置 Ops Agent 来更改此默认行为。
可选任务
本部分介绍如何执行常见的维护任务。
启用结构化日志记录
在 Linux 虚拟机上运行安装脚本时,如果 --also-install
标志存在,脚本会默认安装 google-fluentd-catch-all
软件包。如需切换到结构化日志记录,请完成以下步骤。
将所有本地更改备份到
/etc/google-fluentd/config.d/
。根据您的 Linux 发行版运行以下某个命令:
YUM:
sudo yum remove -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
如需了解结构化日志记录,请参阅结构化日志记录指南。
配置 Logging 代理
代理会进行预先配置,以监控某些已知的日志位置。在 Linux 上,这些位置在由安装脚本自动提取的 google-fluentd-catch-all-config
软件包中进行描述。在 Windows 上,代理默认监控 Windows 事件日志。
如需调整代理配置,请参阅配置 Logging 代理。
配置 HTTP 代理
如果使用 HTTP 代理将请求代理到 Logging API 和 Monitoring API,则请执行以下操作:
修改以下配置文件(如果尚不存在,请创建该文件):
/etc/default/google-fluentd
将以下内容添加到该文件中:
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.通过在虚拟机实例上运行以下命令来重启该代理。
sudo service google-fluentd restart
如果您使用的是 HTTP 代理,请通过管理员命令提示符运行以下命令。这样会设置
http_proxy
和https_proxy
环境变量,以便代理可以使用出站 HTTPS 发送数据: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、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 上运行以下命令:
dpkg-query --show --showformat '${Package} ${Version} ${Architecture} ${Status}\n' google-fluentd google-fluentd-catch-all-config google-fluentd-catch-all-config-structured
在 SUSE 上运行以下命令:
rpm --query --queryformat '%{NAME} %{VERSION} %{RELEASE} %{ARCH}\n' google-fluentd google-fluentd-catch-all-config google-fluentd-catch-all-config-structured
使用 RDP 或类似工具连接到您的实例,然后登录到 Windows。
右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。
运行以下 PowerShell 命令:
reg query HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\GoogleStackdriverLoggingAgent\ /v Version
重启代理
您必须重启 Logging 代理才能才能使配置文件中的更改生效。要重启代理,请按以下说明操作。
在您的实例上运行以下命令:
sudo service google-fluentd restart
重启 Logging 代理后,您可能需要发送测试消息。
使用 RDP 或类似工具连接到您的实例,然后登录到 Windows。
右键点击 PowerShell 图标并选择以管理员身份运行,以管理员权限打开 PowerShell 终端。
运行以下 PowerShell 命令:
Restart-Service -Name StackdriverLogging
升级代理
要将 Logging 代理升级到最新版本,请按以下说明操作:
如需将代理升级到最新版本,请运行以下命令:
sudo bash add-logging-agent-repo.sh --also-install
如需将代理升级到特定主要版本的最新版本,请运行以下命令:
sudo bash add-logging-agent-repo.sh --also-install \
--version=MAJOR_VERSION.*.*
如需升级到最新的代理版本,请按照此页面上在 Windows 上安装部分的说明安装最新代理。安装程序会提示您卸载以前的代理版本。
列出所有代理版本
如需列出代理的可用版本,请运行以下命令:
列出代理的可用版本:
sudo yum list --showduplicates google-fluentd
列出代理的可用版本:
sudo apt-cache madison google-fluentd
列出代理的可用版本:
sudo zypper search -s google-fluentd
不支持在 Windows 上安装代理的较早版本。
卸载代理
要移除 Logging 代理及其配置文件,请按以下说明操作。
卸载代理后,Google Cloud 控制台最多可能需要一小时才能报告此更改。
运行以下命令:
sudo bash add-logging-agent-repo.sh --uninstall
(可选)如需在卸载代理之外移除代码库,请将 --remove-repo
附加到上一个命令中。
在 Windows 控制面板中,选择卸载程序。您应该会在可卸载的程序列表中看到 Logging 代理。您还可以从 Logging 代理的安装目录运行 uninstall.exe
。
没有远程软件包访问权限的虚拟机
安装 Logging 代理时需要访问远程软件包代码库,以获得代理软件包及(在 Linux 上)其依赖项。
如果您使用的是 VPC-SC 或专用网络,则网络配置还可能会影响您能否从上游代码库安装代理依赖项。您可以使用专用 Google 访问通道来访问代理软件包本身。 您可以按照启用专用 Google 访问通道中的说明进行配置。
如果虚拟机主机的安全政策拒绝访问远程软件包代码库,我们建议在预装代理的情况下创建自定义虚拟机映像,并在该映像中停用软件包管理。
后续步骤
如需了解如何查看日志,请参阅使用日志浏览器。