使用 Ops Agent 从 Apache 收集日志
了解如何使用 Ops Agent 收集和查看从安装在 Compute Engine 虚拟机 (VM) 实例上的 Apache Web 服务器收集的 syslog
日志。您可以使用与本快速入门类似的流程来监控其他第三方应用。
在本快速入门中,您会执行以下操作:
- 创建 Compute Engine 虚拟机实例并安装 Ops Agent。
- 安装 Apache Web 服务器。
- 为 Apache Web 服务器配置 Ops Agent。
- 在日志浏览器中查看日志。
- 创建基于日志的提醒。
- 测试您的提醒。
- 清理。
如需在 Google Cloud 控制台中直接遵循有关此任务的分步指导,请点击操作演示:
准备工作
-
您的组织定义的安全限制条件可能会导致您无法完成以下步骤。如需了解相关问题排查信息,请参阅在受限的 Google Cloud 环境中开发应用。
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
启用 Compute Engine, Cloud Monitoring, and Cloud Logging API。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
启用 Compute Engine, Cloud Monitoring, and Cloud Logging API。
创建虚拟机实例
-
在 Google Cloud 控制台的导航面板中,选择 Compute Engine,然后选择虚拟机实例:
点击创建实例,创建一个虚拟机。
- 在
名称 字段中,输入一个描述性名称。 - 在
机器类型 字段中,选择 e2-small。 - 在
启动磁盘 部分,保留 Debian GNU/Linux 的默认设置。 - 在
防火墙 部分中,选择允许 HTTP 流量和允许 HTTPS 流量。 - 在可观测性 - Ops Agent 部分中,选择为监控和日志记录安装 Ops Agent。
- 点击
创建 。
安装 Apache Web 服务器
如需在 Compute Engine 虚拟机实例上安装 Apache Web 服务器,请执行以下操作:
在虚拟机实例页面上,找到新虚拟机,转到连接列,然后点击 SSH。
连接时遇到了问题?请参阅排查 SSH 问题。
如需更新软件包列表,请将以下命令复制到剪贴板,将该命令粘贴到 SSH 终端,然后按 Enter 键:
sudo apt-get update
当您看到“正在读取软件包列表...”消息后完成”后,在 SSH 终端中运行以下命令以安装 Apache2 Web 服务器:
sudo apt-get install apache2 php7.0
当系统要求您继续安装时,请输入
Y
。如果安装命令失败,请使用sudo apt-get install apache2 php
。命令提示符返回时,转到虚拟机实例页面,然后将虚拟机的外部 IP 地址复制到以下网址:
http://EXTERNAL_IP
如需连接到 Apache Web 服务器,请打开新的浏览器标签页,然后输入上一步中的网址。
Web 服务器安装成功后,浏览器标签页将显示 Apache2 Debian 默认页面。
收集 Apache Web 服务器日志和指标
在以下步骤中,您将配置 Ops Agent 以从 Apache Web 服务器收集日志和指标:转到虚拟机实例的 SSH 终端。如果您没有打开终端,请执行以下操作:
-
在 Google Cloud 控制台的导航面板中,选择 Compute Engine,然后选择虚拟机实例:
- 找到新的虚拟机,然后点击 SSH。
-
复制以下命令,并将其粘贴到您的实例的终端,然后按 Enter 键:
上述命令会创建用于从 Apache Web 服务器收集和注入日志和指标的配置。如需了解详情,请参阅为 Apache Web 服务器配置 Ops Agent。
- 等待命令提示符显示,这至少需要 60 秒。
查看 Apache Web 服务器日志
如需在 Google Cloud 控制台中查看日志,请使用日志浏览器:
-
在 Google Cloud 控制台的导航面板中,选择 Logging,然后选择 Logs Explorer:
最近的日志会显示在查询结果窗格中。
在工具栏中,确保已启用显示查询。
如需查看 Apache Web 服务器日志,请创建并运行查询:
在 Google Cloud 项目选择器中展开 Google Cloud 项目列表,然后将 Google Cloud 项目 ID 复制到剪贴板。
在以下表达式中,将复制的 ID 粘贴到 PROJECT_ID 字段中,然后将表达式复制到查询编辑器中:
resource.type="gce_instance" logName=("projects/PROJECT_ID/logs/apache_access" OR "projects/PROJECT_ID/logs/apache_error")
运行上面的查询时,系统只会显示
apache_access
和apache_error
日志条目。点击
运行查询 。查询结果会显示在查询结果窗格中。
您已将 Ops Agent 配置为从 Apache Web 服务器收集日志和指标,并且您已经查看了这些日志。下一步是创建提醒政策,以便在日志中出现特定格式时收到通知。
创建电子邮件通知渠道
在创建提醒政策之前,请配置您希望提醒政策使用的通知渠道。Cloud Monitoring 支持许多不同类型的通知渠道,包括电子邮件、Slack、PagerDuty 和 Pub/Sub。如需了解详情,请参阅创建和管理通知渠道。 若要通过电子邮件接收通知,请执行以下操作:-
在 Google Cloud 控制台的导航面板中,选择 Monitoring,然后选择 notifications 提醒:
- 在工具栏中,点击 Edit Notification Channel。
- 在通知渠道页面,滚动到
电子邮件 ,然后点击新增。 - 输入您的电子邮件地址和显示名称(例如
My email
),然后点击 Save。
创建基于日志的提醒
如需在日志条目中出现特定消息时收到通知,请创建基于日志的提醒。在本部分中,您将创建基于日志的提醒,以便在日志条目中出现 404 Not Found
消息时收到通知。
-
在 Google Cloud 控制台的导航面板中,选择 Logging,然后选择 Logs Explorer:
在查询结果工具栏中,点击 add_alert 创建提醒。此时会打开基于日志的提醒政策窗格。
在提醒详情的提醒政策名称字段中,输入
404 Not Found
。在选择要纳入此提醒中的日志中,执行以下操作:
- 移除日志过滤条件文本框中的所有内容。
复制以下查询并将其粘贴到日志过滤条件文本框中:
severity>=DEFAULT /help httpRequest.status=404
上述日志过滤条件会搜索
severity
级别至少为DEFAULT
、包含文本/help
且httpRequest
状态为404
的日志条目。
在设置通知频率和自动关闭时长部分中,执行以下操作:
- 将 Time between notifications(通知之间的时间间隔)字段设置为 5 min。
- 将突发事件自动关闭时长字段设置为 30 分钟。
在应该通知谁?中,从通知渠道菜单中选择您的电子邮件地址,然后点击保存。
测试提醒政策
如需测试提醒政策,请执行以下操作:
转到虚拟机实例的 SSH 终端。如果您没有打开终端,请执行以下操作:
-
在 Google Cloud 控制台的导航面板中,选择 Compute Engine,然后选择虚拟机实例:
- 找到新的虚拟机,然后点击 SSH。
-
如需在服务器上搜索虚构页面
localhost/help
,请运行以下命令:curl localhost/help
如果您在终端中看到
404 Not Found
消息,系统就会发送电子邮件通知。此过程需要几分钟才能完成。您收到的电子邮件通知与以下内容类似:
如需查看新的日志条目,请执行以下操作:
-
在 Google Cloud 控制台的导航面板中,选择 Logging,然后选择 Logs Explorer:
- 在工具栏中,点击跳至现在。
-
您已将 Ops Agent 配置为从 Apache Web 服务器收集日志和指标,但您只查看了日志。如需了解如何查看 Apache Web 服务器指标,请参阅使用 Ops Agent 收集 Apache Web 服务器指标:生成流量。
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
如果您创建了一个新项目,但不再需要该项目,请删除项目。
如果您使用了现有项目,请执行以下操作:
后续步骤
如需了解 Ops Agent 和支持的集成,请参阅:
如需了解如何在日志浏览器中查看日志,请参阅使用日志浏览器查看日志。
如需了解如何在日志浏览器中进行查询,请参阅在日志浏览器中构建查询。
如需了解如何收集和查看 Apache Web 服务器指标,请参阅快速入门:使用 Ops Agent 收集 Apache Web 服务器指标。
如需详细了解 Monitoring 及其与 Cloud Logging 的关系,请参阅 Monitoring。