使用 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. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

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

  5. 启用 Compute Engine, Cloud Monitoring, and Cloud Logging API。

    启用 API

  6. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

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

  8. 启用 Compute Engine, Cloud Monitoring, and Cloud Logging API。

    启用 API

创建虚拟机实例

  1. 在 Google Cloud 控制台的导航面板中,选择 Compute Engine,然后选择虚拟机实例

    前往虚拟机实例

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

  3. 名称字段中,输入一个描述性名称。
  4. 机器类型字段中,选择 e2-small
  5. 启动磁盘部分,保留 Debian GNU/Linux 的默认设置。
  6. 防火墙部分中,选择允许 HTTP 流量允许 HTTPS 流量
  7. 可观测性 - Ops Agent 部分中,选择为监控和日志记录安装 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。如果安装命令失败,请使用 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 控制台的导航面板中,选择 Logging,然后选择 Logs Explorer

    前往 Logs Explorer

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

  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 配置为从 Apache Web 服务器收集日志和指标,并且您已经查看了这些日志。下一步是创建提醒政策,以便在日志中出现特定格式时收到通知。

创建电子邮件通知渠道

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

    进入提醒

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

创建基于日志的提醒

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

  1. 在 Google Cloud 控制台的导航面板中,选择 Logging,然后选择 Logs Explorer

    前往 Logs Explorer

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

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

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

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

      severity>=DEFAULT /help httpRequest.status=404
      

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

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

    1. Time between notifications(通知之间的时间间隔)字段设置为 5 min
    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 控制台的导航面板中,选择 Logging,然后选择 Logs Explorer

      前往 Logs Explorer

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

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

清理

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

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

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

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

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

      转到“虚拟机实例”

    2. 选中要删除的实例。
    3. 如需删除实例,请点击更多操作,点击删除,然后按照说明操作。
  2. 删除您创建的提醒政策:

    1. 在 Google Cloud 控制台的导航面板中,选择 Monitoring,然后选择  提醒

      进入提醒

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

后续步骤