示例:使用独立的 Elastic Agent 和 Elastic Cloud Serverless 监控 nginx

编辑

示例:使用独立的 Elastic Agent 和 Elastic Cloud Serverless 监控 nginx

编辑

本指南将引导您完成一个简单的监控场景,以便您可以学习设置独立的 Elastic Agent、使用它与 Elastic Cloud Serverless 和 Elastic 集成工作的基本知识。

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

先决条件
编辑

要开始,您需要

  1. 用于您的 Elastic Cloud 试用版的互联网连接和电子邮件地址。
  2. 您将在其上安装 nginx Web 服务器的 Linux 主机。本指南中的命令使用 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 Serverless 项目
编辑

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

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

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

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

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

  1. 打开 Kibana 菜单并转到 项目设置Fleet → 代理策略

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

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

Elastic 集成是将来自流行服务和平台(包括 nginx)的数据连接到 Elastic Stack 的简化方式。

  1. Fleet → 代理策略 选项卡中,单击您的新 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. 单击 仅添加集成(跳过代理安装) 的链接。您将在后续步骤中安装独立的 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 → 代理,然后单击 添加代理
  2. 对于 您要添加哪种类型的主机? 步骤,如果尚未选择,请从下拉菜单中选择 nginx-policy
  3. 对于 注册到 Fleet? 步骤,选择 以独立方式运行

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

    查看策略文件内部,并注意它包含 Nginx 和系统集成的所有输入、输出和其他设置。如果您已经在主机上安装了带有现有 Elastic 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。如果您需要以非 root 访问权限运行 Elastic Agent 命令,请参考 在没有管理权限的情况下运行 Elastic Agent

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

    如果提示 您是否要将此代理注册到 Fleet?,则回答 no

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

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

    由于您以独立模式运行代理,因此预期会出现 Not enrolled into 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 Discover 中可见。

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

    1. 打开 Kibana 菜单,转到 可观测性 → 仪表板
    2. 在搜索字段中,搜索 Elastic Agent 并在结果中选择 [Elastic Agent] Agent metrics

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

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

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

  1. 查看您的系统日志。

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

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

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

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

  1. 打开 Kibana 菜单,转到 项目设置 → 集成 → 已安装的集成
  2. 选择 Nginx 卡片并打开 资产 选项卡。
  3. 选择 [Logs Nginx] Overview。Kibana 仪表板打开,其中包含地理日志详细信息、随时间变化的响应代码和错误、热门页面等。
  4. 多次刷新您的 nginx 网页以更新日志数据。您也可以尝试从不同的 Web 浏览器访问 nginx 页面。大约一分钟后,浏览器细分 可视化将显示来自不同浏览器类型的相应请求量。

    Kibana Dashboard shows agent metrics are flowing into Elasticsearch.

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

下一步是什么?
编辑