示例:使用独立 Elastic Agent 与 Elastic Cloud 无服务器监控 nginx

编辑

示例:使用独立 Elastic Agent 与 Elastic Cloud 无服务器监控 nginx编辑

本指南将引导您完成一个简单的监控场景,以便您学习设置独立 Elastic Agent 的基础知识,以及如何使用它与 Elastic Cloud 无服务器和 Elastic 集成配合使用。

按照以下步骤,您将部署 Elastic Stack,在主机上安装独立 Elastic Agent 以监控 nginx Web 服务器实例,并访问基于收集日志的可视化。

先决条件编辑

要开始,您需要

  1. 互联网连接和用于 Elastic Cloud 试用的电子邮件地址。
  2. 一台 Linux 主机,您将在其上安装 nginx Web 服务器。本指南中的命令使用 Ubuntu 镜像,但任何 Linux 发行版都应该可以。
步骤 1:安装 nginx编辑

首先,我们将设置一个基本的 nginx Web 服务器

  1. 在 Ubuntu Linux 主机上运行以下命令,或参考 nginx 安装文档,获取适合您操作系统的命令。

    sudo apt install nginx
  2. 打开 Web 浏览器,访问您主机外部的 URL,例如 http://192.168.64.17/。您应该看到 nginx 欢迎消息。

    Browser window showing Welcome to nginx!
步骤 2:创建 Elastic Cloud 无服务器项目编辑

如果您已经注册了试用部署,则可以跳过此步骤。

现在您的 Web 服务器正在运行,让我们开始在 Elastic Cloud 中监控它。Elastic Cloud 无服务器项目为您提供 Elastic Stack 的所有功能,作为托管服务。要试用您的第一个部署,请注册免费的 Elastic Cloud 试用版

  1. 访问我们的 Elastic Cloud 试用版 页面。
  2. 输入您的电子邮件地址和密码。

    Start your free Elastic Cloud trial
  3. 完成 登录 后,选择 创建项目
  4. 可观察性 选项卡上,选择 下一步可观察性安全性 项目都包含 Fleet,您可以使用它为 Elastic Agent 创建策略,该策略将监控您的 nginx 安装。
  5. 为您的项目命名。您可以保留默认选项,也可以选择其他云提供商和区域。
  6. 选择 创建项目,然后等待几分钟,让新项目设置完成。
  7. 项目准备就绪后,选择 继续。此时,您可以访问 Kibana 和一系列设置指南。
步骤 3:创建 Elasticsearch API 密钥编辑
  1. 无服务器项目准备就绪后,打开 Kibana 菜单,转到 项目设置管理 → API 密钥
  2. 选择 创建 API 密钥
  3. 为密钥命名,例如 nginx example API key
  4. 保留其他默认选项,然后选择 创建 API 密钥
  5. 创建 API 密钥 确认对话框中,将下拉菜单设置从 Encoded 更改为 Beats。这会将 API 密钥设置为用于 Elastic Agent 和 Elasticsearch 之间通信的格式。
  6. 复制生成的 API 密钥,并将其存储在安全的地方。您将在后面的步骤中使用它。
步骤 4:创建 Elastic Agent 策略编辑

Elastic Agent 是一种统一的方式,用于将日志、指标和其他类型的数据的监控添加到主机。它还可以保护主机免受安全威胁,查询操作系统数据等等。单个代理使在整个基础设施中轻松快速地部署监控变得容易。每个代理都有一个单一策略(输入设置的集合),您可以更新该策略以添加针对新数据源、安全保护等的集成。

  1. 打开 Kibana 菜单,转到 项目设置Fleet → Agent 策略

    Agent policies tab in Fleet
  2. 单击 创建 Agent 策略
  3. 为您的策略命名。在本示例中,我们将它命名为 nginx-policy
  4. 保留 收集系统日志和指标 的选中状态。
  5. 单击 创建 Agent 策略

    Create agent policy UI
步骤 5:添加 Nginx 集成编辑

Elastic 集成是一种简化的方式,可以将您的数据从流行的服务和平台连接到 Elastic Stack,包括 nginx。

  1. Fleet → Agent 策略 选项卡中,单击您新创建的 nginx-policy 的链接。

    The nginx-policy UI with integrations tab selected
  2. 请注意,系统集成 (system-1) 已包含在内,因为您之前选择了收集系统日志和指标。
  3. 单击 添加集成
  4. 在集成页面上搜索“nginx”。

    Integrations page with nginx in the search bar
  5. 选择 Nginx 卡片。
  6. 单击 添加 Nginx
  7. 单击链接以 仅添加集成(跳过 Agent 安装)。您将在后面的步骤中安装独立 Elastic Agent。
  8. 在这里,您可以选择选项,例如 nginx 日志存储的位置、是否收集指标数据以及其他各种设置。

    现在,保留所有默认设置,然后单击 保存并继续,将 Nginx 集成添加到您的 nginx-policy 策略。

    Add Nginx Integration UI
  9. 在确认对话框中,选择 稍后添加 Elastic Agent

    Nginx Integration added confirmation UI with Add Elastic Agent later selected.
步骤 6:配置独立 Elastic Agent编辑

您将配置一个代理以独立模式运行,因此将手动管理它,而不是选择 Fleet 来集中管理 Elastic Agent。

  1. 打开 Kibana 菜单,转到 Fleet → Agent,然后单击 添加 Agent
  2. 对于 您要添加哪种类型的主机? 步骤,如果尚未选择,请从下拉菜单中选择 nginx-policy
  3. 对于 注册到 Fleet? 步骤,选择 独立运行

    Add agent UI with nginx-policy and Run-standalone selected.
  4. 对于 配置 Agent 步骤,选择 下载策略。将 elastic-agent.yml 文件保存到您将在其上安装 nginx 以进行监控的主机上的目录。

    查看策略文件的内容,您会注意到它包含 Nginx 和系统集成的所有输入、输出和其他设置。如果您已经在主机上安装了独立代理,并且该主机具有现有的 Elastic Agent 策略,则可以使用此处描述的方法添加新的集成。只需将 配置 Agent 步骤中的设置添加到您现有的 elastic-agent.yml 文件中即可。

  5. 对于 在您的主机上安装 Elastic Agent 步骤,选择主机操作系统的选项卡,并在主机上运行命令。

    Install Elastic Agent on your host step, showing tabs with the commands for different operating systems.

    Elastic Agent 命令需要以 root 身份运行。您可以为每个代理命令添加前缀 sudo,也可以通过运行 sudo suroot 身份启动新的 shell。

    如果您收到提示 Elastic Agent 将安装在 {安装位置} 并作为服务运行。您要继续吗?,请回答 Yes

    如果您收到提示 您要将此 Agent 注册到 Fleet 吗?,请回答 no

  6. 您可以运行 status 命令以确认 Elastic Agent 是否正在运行。

    elastic-agent status
    
    ┌─ fleet
    │  └─ status: (STOPPED) Not enrolled into Fleet
    └─ elastic-agent
       └─ status: (HEALTHY) Running

    由于您正在独立模式下运行代理,因此 未注册到 Fleet 消息是预期的。

  7. 打开您保存的 elastic-agent.yml 策略文件。
  8. 在文件顶部附近,将

        username: '${ES_USERNAME}'
        password: '${ES_PASSWORD}'

    替换为

        api_key: '<your-api-key>'

    其中 your-api-key 是您在 步骤 3:创建 Elasticsearch API 密钥 中生成的 API 密钥。

  9. 找到 Elastic Agent 安装中包含的默认 elastic-agent.yml 策略文件的位置。每个平台的安装目录在 安装布局 中进行了描述。在我们的示例 Ubuntu 镜像中,默认策略文件位于 /etc/elastic-agent/elastic-agent.yml 中。
  10. 将默认策略文件替换为您下载并更新的版本。例如

    cp /home/ubuntu/homedir/downloads/elastic-agent.yml /etc/elastic-agent/elastic-agent.yml

    您可能需要在 cp 命令前加上 sudo,以获得替换默认文件的权限。

    默认情况下,Elastic Agent 会监控配置文件,并在 elastic-agent.yml 更新时自动重新加载配置。

  11. 再次运行 status 命令,这次使用 --output yaml 选项,它提供结构化且更详细的输出。有关更多详细信息,请参阅 elastic-agent status 命令文档。

    elastic-agent status --output yaml

    结果将显示代理状态以及有关正在运行组件的详细信息,这些组件对应于已添加到 Elastic Agent 策略的集成(在本例中为系统和 Nginx 集成)的输入和输出。

  12. 在命令输出的顶部,info 部分包含有关代理实例的详细信息。请记下代理 ID。在本例中,ID 为 4779b439-1130-4841-a878-e3d7d1a457d0。您将在下一部分中使用该 ID。

    elastic-agent status --output yaml
    
    info:
      id: 4779b439-1130-4841-a878-e3d7d1a457d0
      version: 8.9.1
      commit: 5640f50143410fe33b292c9f8b584117c7c8f188
      build_time: 2023-08-10 17:04:04 +0000 UTC
      snapshot: false
    state: 2
    message: Running
步骤 7:确认您的 Elastic Agent 数据是否正在流动编辑

现在 Elastic Agent 正在运行,是时候确认代理数据是否正在流入 Elasticsearch 了。

  1. 检查 Elastic Agent 日志是否正在流动。

    1. 打开 Kibana 菜单,然后转到 可观察性 → 发现
    2. 在 KQL 查询栏中,输入查询 agent.id : "{agent-id}",其中 {agent-id} 是您从 elastic-agent status --output yaml 命令中检索到的 ID。例如:agent.id : "4779b439-1130-4841-a878-e3d7d1a457d0"

      如果 Elastic Agent 已成功连接到您的 Elastic Cloud 部署,则代理日志应流入 Elasticsearch 并显示在 Kibana 发现中。

      Kibana Discover shows agent logs are flowing into Elasticsearch.
  2. 检查 Elastic Agent 指标是否正在流动。

    1. 打开 Kibana 菜单,然后转到 可观察性 → 仪表板
    2. 在搜索字段中,搜索 Elastic Agent,并在结果中选择 [Elastic Agent] 代理指标

      与代理日志一样,代理指标应流入 Elasticsearch 并显示在 Kibana 仪表板中。您可以查看有关 CPU 使用率、内存使用率、打开句柄、事件速率等的指标。

      Kibana Dashboard shows agent metrics are flowing into Elasticsearch.
步骤 8:查看您的系统数据编辑

创建 Elastic Agent 策略 的步骤中,您选择收集系统日志和指标,因此您现在可以访问它们。

  1. 查看您的系统日志。

    1. 打开 Kibana 菜单,然后转到 项目设置 → 集成 → 已安装的集成
    2. 选择 系统 卡,然后打开 资产 选项卡。这是一种快速访问每个集成附带的所有仪表板、已保存搜索和可视化的方式。
    3. 选择 [日志系统] Syslog 仪表板
    4. 选择日历图标,并将时间设置更改为 今天。Kibana 仪表板显示了 Syslog 事件、主机名和进程等的可视化。
  2. 查看您的系统指标。

    1. 返回 项目设置 → 集成 → 已安装的集成
    2. 选择 系统 卡,然后打开 资产 选项卡。
    3. 这次,选择 [指标系统] 主机概述
    4. 选择日历图标,并将时间设置更改为 今天。Kibana 仪表板显示了主机指标的可视化,包括 CPU 使用率、内存使用率、正在运行的进程等。

      The System metrics host overview showing CPU usage, memory usage, and other visualizations
步骤 9:查看您的 nginx 日志记录数据编辑

现在让我们查看您的 nginx 日志记录数据。

  1. 打开 Kibana 菜单,然后转到 项目设置 → 集成 → 已安装的集成
  2. 选择 Nginx 卡,然后打开 资产 选项卡。
  3. 选择 [日志 Nginx] 概述。Kibana 仪表板将打开,其中包含地理日志详细信息、响应代码和错误随时间的变化、热门页面等。

    The nginx logs dashboard shows various visualizations on the nginx logs.
  4. 刷新您的 nginx 网页几次以更新日志记录数据。您也可以尝试从不同的 Web 浏览器访问 nginx 页面。大约一分钟后,浏览器细分 可视化将显示来自不同浏览器类型的请求的相应数量。

    Kibana Dashboard shows agent metrics are flowing into Elasticsearch.

恭喜!您已成功使用独立的 Elastic Agent 和 Elastic Cloud 无服务器项目设置了对 nginx 的监控。

下一步是什么?编辑