使用 Ops Agent 从 Apache 收集日志

了解如何使用 Ops Agent 收集和查看从安装在 Compute Engine 虚拟机 (VM) 实例上的 Apache Web 服务器收集的 syslog 日志。您可以使用与本快速入门中类似的流程来监控其他第三方应用

在本快速入门中,您会执行以下操作:

  1. 创建 Compute Engine 虚拟机实例并安装 Ops Agent
  2. 安装 Apache Web 服务器。
  3. 为 Apache Web 服务器配置 Ops Agent。
  4. 在日志浏览器中查看日志。
  5. 创建基于日志的提醒。
  6. 测试您的提醒。
  7. 清理。

如需在 Google Cloud 控制台中直接遵循有关此任务的分步指导,请点击操作演示

操作演示


准备工作

  1. 您的组织定义的安全限制条件可能会导致您无法完成以下步骤。如需了解相关问题排查信息,请参阅在受限的 Google Cloud 环境中开发应用

  2. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  3. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  4. 确保您的 Google Cloud 项目已启用结算功能

  5. Enable the Compute Engine, Cloud Monitoring, and Cloud Logging APIs.

    Enable the APIs

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. 确保您的 Google Cloud 项目已启用结算功能

  8. Enable the Compute Engine, Cloud Monitoring, and Cloud Logging APIs.

    Enable the APIs

创建虚拟机实例

  1. 在 Google Cloud 控制台中,转到虚拟机实例页面:

    前往虚拟机实例

    如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。

  2. 通过点击创建实例创建一个虚拟机。

  3. 名称字段中,输入一个描述性名称。
  4. 机器类型字段中,选择 e2-small
  5. 启动磁盘部分,保留 Debian GNU/Linux 的默认设置。
  6. 防火墙部分,同时选择允许 HTTP 流量允许 HTTPS 流量
  7. 可观测性 - Ops Agent 部分,选择安装适用于 Monitoring 和 Logging 的 Ops Agent
  8. 点击创建

安装 Apache Web 服务器

如需在 Compute Engine 虚拟机实例上安装 Apache Web 服务器,请执行以下操作:

  1. 虚拟机实例页面上,找到新虚拟机,转到连接列,然后点击 SSH

    连接时遇到了问题?请参阅排查 SSH 问题

  2. 如需更新软件包列表,请将以下命令复制到剪贴板,将该命令粘贴到 SSH 终端,然后按 Enter 键:

    sudo apt-get update
    
  3. 看到消息“正在读取软件包列表...完成”后,在 SSH 终端中运行以下命令来安装 Apache2 Web 服务器:

    sudo apt-get install apache2 php7.0
    

    如果系统要求您继续安装,请输入 Y。如果 install 命令失败,那么请使用 sudo apt-get install apache2 php

  4. 命令提示符返回时,转到虚拟机实例页面,然后将虚拟机的外部 IP 地址复制到以下网址:

    http://EXTERNAL_IP
    
  5. 如需连接到 Apache Web 服务器,请打开新的浏览器标签页,然后输入上一步中的网址。

    Web 服务器安装成功后,浏览器标签页将显示 Apache2 Debian 默认页面。

    显示 Apache2 默认页面。

收集 Apache Web 服务器日志和指标

在这些步骤中,您将配置 Ops Agent 从您的 Apache Web 服务器收集日志和指标:
  1. 转到虚拟机实例的 SSH 终端。如果您没有打开终端,请执行以下操作:

    1. 在 Google Cloud 控制台中,转到虚拟机实例页面:

      前往虚拟机实例

      如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。

    2. 找到新的虚拟机,然后点击 SSH

  2. 将以下命令复制并粘贴到您的实例的终端,然后按 Enter 键:

    # Configures Ops Agent to collect telemetry from the app and restart Ops Agent.
    
    set -e
    
    # Create a back up of the existing file so existing configurations are not lost.
    sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak
    
    # Configure the Ops Agent.
    sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
    metrics:
      receivers:
        apache:
          type: apache
      service:
        pipelines:
          apache:
            receivers:
              - apache
    logging:
      receivers:
        apache_access:
          type: apache_access
        apache_error:
          type: apache_error
      service:
        pipelines:
          apache:
            receivers:
              - apache_access
              - apache_error
    EOF
    
    sudo service google-cloud-ops-agent restart
    sleep 60
    

    上一条命令会创建用于从 Apache Web 服务器收集和提取日志和指标的配置。如需了解详情,请参阅为 Apache Web 服务器配置 Ops Agent

  3. 等待命令提示符显示,这至少需要 60 秒。

查看 Apache Web 服务器日志

如需在 Google Cloud 控制台中查看日志,请使用日志浏览器:

  1. 在 Google Cloud 控制台中,转到 Logs Explorer 页面。

    前往 Logs Explorer

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

    最近的日志会显示在查询结果窗格中。

  2. 在工具栏中,确保已启用显示查询

  3. 如需查看 Apache Web 服务器日志,请创建并运行查询:

    1. 在 Google Cloud 项目选择器中展开 Google Cloud 项目列表,然后将 Google Cloud 项目 ID 复制到剪贴板。

    2. 在以下表达式中,将复制的 ID 粘贴到 PROJECT_ID 字段中,然后将表达式复制到查询编辑器中:

      resource.type="gce_instance"
      logName=("projects/PROJECT_ID/logs/apache_access" OR "projects/PROJECT_ID/logs/apache_error")
      

      运行上面的查询时,系统只会显示 apache_accessapache_error 日志条目。

    3. 点击运行查询

      查询结果会显示在查询结果窗格中。

您已将 Ops Agent 配置为从 还查看了这些日志下一步是 创建提醒政策,以便在出现特定格式时 会显示在日志中。

创建电子邮件通知渠道

在创建提醒政策之前,请先配置要让提醒政策使用的通知渠道。Cloud Monitoring 支持许多不同类型的通知 包括电子邮件、Slack、PagerDuty 和 Pub/Sub。如需了解详情,请参阅 创建和管理通知渠道。 如需通过电子邮件接收通知,请执行以下操作:
  1. 在 Google Cloud 控制台中,转到 提醒页面:

    进入提醒

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 在工具栏中,点击编辑通知渠道
  3. 通知渠道页面中,滚动到电子邮件,然后点击新增
  4. 输入您的电子邮件地址和显示名称(如 My email),然后点击保存

创建基于日志的提醒

如需在日志条目中出现特定消息时收到通知,请创建基于日志的提醒。在本部分中,您将创建一个基于日志的提醒, 当日志条目中出现 404 Not Found 消息时通知我。

  1. 在 Google Cloud 控制台中,转到 Logs Explorer 页面。

    前往 Logs Explorer

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 查询结果工具栏中,点击 创建提醒。系统会打开基于日志的提醒政策窗格。

  3. 提醒详细信息提醒政策名称字段中,输入 404 Not Found

  4. 选择要包含在此提醒中的日志中,执行以下操作:

    1. 移除日志过滤条件文本框中的所有内容。
    2. 将以下查询复制并粘贴到日志过滤条件文本框中:

      severity>=DEFAULT /help httpRequest.status=404
      

      上一个日志过滤条件会搜索 severity 级别至少为 DEFAULT、包含文本 /helphttpRequest 状态为 404 的日志条目。

  5. 设置通知频率和自动关闭时长部分,执行以下操作:

    1. 通知之间的时间间隔字段设置为 5 分钟
    2. 突发事件自动关闭时长字段设置为 30 分钟
  6. 应该收到通知的用户中,从通知渠道菜单中选择您的电子邮件地址,然后点击保存

测试提醒政策

如需测试提醒政策,请执行以下操作:

  1. 转到虚拟机实例的 SSH 终端。如果您没有打开终端,请执行以下操作:

    1. 在 Google Cloud 控制台中,转到虚拟机实例页面:

      前往虚拟机实例

      如果您使用搜索栏查找此页面,请选择子标题为 Compute Engine 的结果。

    2. 找到新的虚拟机,然后点击 SSH
  2. 如需在服务器上搜索虚构页面 localhost/help,请运行以下命令:

    curl localhost/help
    

    在终端显示 404 Not Found 消息后,系统将会发送电子邮件通知。此过程需要几分钟才能完成。

    您收到的电子邮件通知类似于以下内容:

    基于日志的提醒示例会生成电子邮件通知。

  3. 如需查看新的日志条目,请执行以下操作:

    1. 在 Google Cloud 控制台中,转到 Logs Explorer 页面。

      前往 Logs Explorer

      如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

    2. 在工具栏中,点击跳至现在

您已将 Ops Agent 配置为从 Apache Web 服务器收集日志和指标,但您只查看了日志。如需了解如何查看 Apache Web 服务器指标,请参阅使用 Ops Agent 收集 Apache Web 服务器指标:生成流量

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

如果您创建了一个新项目,但不再需要该项目,请删除该项目

如果您使用的是现有项目,请执行以下操作:

  1. 如果您创建了虚拟机,请将其删除:

    1. In the Google Cloud console, go to the VM instances page.

      Go to VM instances

    2. Select the checkbox for the instance that you want to delete.
    3. To delete the instance, click More actions, click Delete, and then follow the instructions.
  2. 删除您创建的提醒政策:

    1. 在 Google Cloud 控制台中,转到 提醒页面:

      进入提醒

      如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

    2. 选择您创建的提醒政策,然后点击删除

后续步骤