示例:将独立 Elastic Agent 与 Elasticsearch Service 结合使用以监控 nginx

编辑

示例:将独立 Elastic Agent 与 Elasticsearch Service 结合使用以监控 nginx编辑

本指南将引导您完成一个简单的监控场景,以便您学习设置独立 Elastic Agent、将其与 Elasticsearch Service 和 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 部署编辑

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

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

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

    Start your free Elastic Cloud trial
  3. 在您 登录 后,选择 创建部署 并为您的部署命名。您可以保留默认选项,也可以选择其他云提供商、区域、硬件配置文件或版本。
  4. 选择 创建部署
  5. 在部署设置期间,请记下您的 elastic 超级用户密码并将其保存在安全的地方。
  6. 部署完成后,选择 继续。此时,您可以访问 Kibana 和一系列设置指南。
步骤 3:创建 Elasticsearch API 密钥编辑
  1. 从 Kibana 菜单中,转到 堆栈管理API 密钥
  2. 选择 创建 API 密钥
  3. 为密钥命名,例如 nginx 示例 API 密钥
  4. 保留其他默认选项,然后选择 创建 API 密钥
  5. 创建 API 密钥 确认对话框中,将下拉菜单设置从 已编码 更改为 Beats。这将设置 Elastic Agent(基于 Beats)和 Elasticsearch 之间通信的 API 密钥格式。
  6. 复制生成的 API 密钥并将其保存在安全的地方。您将在后面的步骤中使用它。
步骤 4:创建 Elastic Agent 策略编辑

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

  1. 当您的 Elastic Cloud 部署准备就绪后,打开 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. 在 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。

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

    如果系统提示您 您想将此代理注册到 Fleet 吗?,请回答

  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 菜单,然后转到 分析 → Discover
    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] 代理指标

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

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

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

  1. 查看您的系统日志。

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

下一步是什么?编辑