示例:使用独立的 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. 一台 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 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 策略

    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. 在 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 将安装在 {安装位置} 并将作为服务运行。您要继续吗? 回答

    如果系统提示 您要将此代理注册到 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 菜单并转到 分析 → 发现
    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. 选择 [日志系统] 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 仪表盘打开,显示地理日志详细信息、随时间推移的响应代码和错误、热门页面等。
  4. 多次刷新您的 nginx 网页以更新日志数据。您还可以尝试从不同的 Web 浏览器访问 nginx 页面。大约一分钟后,浏览器细分可视化将显示来自不同浏览器类型的相应请求量。

    Kibana Dashboard shows agent metrics are flowing into Elasticsearch.

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

下一步是什么?
编辑