示例:使用独立 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. 一台 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 Serverless 项目
编辑

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

现在您的 Web 服务器已运行,让我们开始在 Elastic Cloud 中对其进行监控的设置。Elastic Cloud Serverless 项目为您提供 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. 当您的 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 策略

    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 和系统集成的所有输入、输出和其他设置。如果您已经在主机上安装了独立 Agent 且具有现有的 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 作为每个 Agent 命令的前缀,也可以通过运行 sudo suroot 身份启动新的 shell。如果您需要在没有 root 访问权限的情况下运行 Elastic Agent 命令,请参阅 在没有管理权限的情况下运行 Elastic Agent

    如果系统提示您 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

    由于您正在独立模式下运行 Agent,因此 未注册到 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] 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 页面。大约一分钟后,“Browsers breakdown”可视化效果将显示来自不同浏览器类型的请求的相应数量。

    Kibana Dashboard shows agent metrics are flowing into Elasticsearch.

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

接下来做什么?
编辑