示例:使用独立 Elastic Agent 与 Elastic Cloud Serverless 监控 nginx
编辑示例:使用独立 Elastic Agent 与 Elastic Cloud Serverless 监控 nginx
编辑本指南将引导您完成一个简单的监控场景,以便您学习设置独立 Elastic Agent 的基础知识,并使用它与 Elastic Cloud Serverless 和 Elastic 集成进行协作。
按照以下步骤,您将部署 Elastic Stack,在主机上安装独立 Elastic Agent 以监控 nginx Web 服务器实例,并访问基于收集日志的可视化。
先决条件
编辑要开始使用,您需要
- 互联网连接和用于 Elastic Cloud 试用的电子邮件地址。
- 一台 Linux 主机,您将在其上安装 nginx Web 服务器。本指南中的命令使用 Ubuntu 镜像,但任何 Linux 发行版都应该可以。
步骤 1:安装 nginx
编辑首先,我们将设置一个基本的 nginx Web 服务器。
-
在 Ubuntu Linux 主机上运行以下命令,或者参考 nginx 安装文档 以获取适合您操作系统的命令。
sudo apt install nginx
-
打开 Web 浏览器并访问主机机的外部 URL,例如
http://192.168.64.17/
。您应该会看到 nginx 欢迎消息。
步骤 2:创建 Elastic Cloud Serverless 项目
编辑如果您已注册试用部署,则可以跳过此步骤。
现在您的 Web 服务器已运行,让我们开始在 Elastic Cloud 中对其进行监控的设置。Elastic Cloud Serverless 项目为您提供 Elastic Stack 的所有功能,作为一个托管服务。要试用您的第一个部署,请注册免费的 Elastic Cloud 试用版
- 访问我们的 Elastic Cloud 试用版 页面。
-
输入您的电子邮件地址和密码。
- 登录后,选择 创建项目。
- 在 可观测性 选项卡上,选择 下一步。可观测性 和 安全 项目都包含 Fleet,您可以使用它为 Elastic Agent 创建策略,该策略将监控您的 nginx 安装。
- 为您的项目命名。您可以保留默认选项,也可以选择不同的云提供商和区域。
- 选择 创建项目,然后等待几分钟以设置新项目。
- 项目准备就绪后,选择 继续。此时,您可以访问 Kibana 和一系列设置指南。
步骤 3:创建 Elasticsearch API 密钥
编辑- 当您的 Serverless 项目准备就绪后,打开 Kibana 菜单并转到 项目设置 → 管理 → API 密钥。
- 选择 创建 API 密钥。
- 为密钥命名,例如
nginx 示例 API 密钥
。 - 保留其他默认选项,然后选择 创建 API 密钥。
- 在 创建 API 密钥 确认对话框中,将下拉菜单设置从
Encoded
更改为Beats
。这会将 API 密钥设置为 Elastic Agent 和 Elasticsearch 之间通信使用的格式。 - 复制生成的 API 密钥并将其存储在安全的地方。您将在后面的步骤中使用它。
步骤 4:创建 Elastic Agent 策略
编辑Elastic Agent 是一种统一的方式,用于将日志、指标和其他类型的数据的监控添加到主机。它还可以保护主机免受安全威胁,查询操作系统数据等等。单个代理使您能够轻松快速地在整个基础架构中部署监控。每个代理都有一个单一策略(输入设置的集合),您可以更新该策略以添加新数据源、安全保护等的集成。
-
打开 Kibana 菜单并转到 项目设置 → Fleet → Agent 策略。
- 点击 创建 Agent 策略。
- 为您的策略命名。在本例中,我们将将其命名为
nginx-policy
。 - 保留选中 收集系统日志和指标。
-
点击 创建 Agent 策略。
步骤 5:添加 Nginx 集成
编辑Elastic 集成是一种简化的方法,可以将您来自流行服务和平台的数据连接到 Elastic Stack,包括 nginx。
-
在 Fleet → Agent 策略 选项卡中,点击您新的
nginx-policy
的链接。 - 请注意,系统集成 (
system-1
) 已包含在内,因为您之前选择了收集系统日志和指标。 - 点击 添加集成。
-
在集成页面上搜索“nginx”。
- 选择 Nginx 卡片。
- 点击 添加 Nginx。
- 点击链接以 仅添加集成(跳过 Agent 安装)。您将在后面的步骤中安装独立 Elastic Agent。
-
在这里,您可以选择选项,例如 nginx 日志存储位置的路径、是否收集指标数据以及其他各种设置。
目前,保留所有默认设置,然后点击 保存并继续 以将 Nginx 集成添加到您的
nginx-policy
策略。 -
在确认对话框中,选择 稍后添加 Elastic Agent。
步骤 6:配置独立 Elastic Agent
编辑您将配置代理以独立模式运行,而不是选择 Fleet 集中式管理 Elastic Agent,因此它将由手动管理。
- 打开 Kibana 菜单并转到 Fleet → Agent,然后点击 添加 Agent。
- 对于 您要添加什么类型的主机? 步骤,如果尚未选择,请从下拉菜单中选择
nginx-policy
。 -
对于 加入 Fleet? 步骤,选择 独立运行。
-
对于 配置 Agent 步骤,选择 下载策略。将
elastic-agent.yml
文件保存到您将在其中安装 nginx 以进行监控的主机上的目录。查看策略文件的内容,并注意它包含 Nginx 和系统集成的所有输入、输出和其他设置。如果您已经在主机上安装了独立 Agent 且具有现有的 Elastic Agent 策略,则可以使用此处描述的方法添加新的集成。只需将 配置 Agent 步骤中的设置添加到您现有的
elastic-agent.yml
文件中即可。 -
对于 在您的主机上安装 Elastic Agent 步骤,选择主机操作系统选项卡并在主机上运行命令。
Elastic Agent 命令应以
root
身份运行。您可以使用sudo
作为每个 Agent 命令的前缀,也可以通过运行sudo su
以root
身份启动新的 shell。如果您需要在没有root
访问权限的情况下运行 Elastic Agent 命令,请参阅 在没有管理权限的情况下运行 Elastic Agent。如果系统提示您
Elastic Agent 将安装在 {安装位置} 并作为服务运行。您要继续吗?
请回答Yes
。如果系统提示您
您要将此 Agent 注册到 Fleet 中吗?
请回答no
。 -
您可以运行
status
命令以确认 Elastic Agent 是否正在运行。elastic-agent status ┌─ fleet │ └─ status: (STOPPED) Not enrolled into Fleet └─ elastic-agent └─ status: (HEALTHY) Running
由于您正在独立模式下运行 Agent,因此
未注册到 Fleet
消息是预期的。 - 打开您保存的
elastic-agent.yml
策略文件。 -
在文件顶部附近,替换
username: '${ES_USERNAME}' password: '${ES_PASSWORD}'
为
api_key: '<your-api-key>'
其中
your-api-key
是您在 步骤 3:创建 Elasticsearch API 密钥 中生成的 API 密钥。 - 找到包含在 Elastic Agent 安装中的默认
elastic-agent.yml
策略文件的位置。安装布局 中描述了每个平台的安装目录。在我们的 Ubuntu 镜像示例中,默认策略文件位于/etc/elastic-agent/elastic-agent.yml
中。 -
将默认策略文件替换为您下载并更新的版本。例如
cp /home/ubuntu/homedir/downloads/elastic-agent.yml /etc/elastic-agent/elastic-agent.yml
您可能需要在
cp
命令前添加sudo
前缀,以获取替换默认文件所需的权限。默认情况下,Elastic Agent 会监视配置文件并在更新
elastic-agent.yml
时自动重新加载配置。 -
再次运行
status
命令,这次使用--output yaml
选项,该选项提供结构化且更详细的输出。有关更多详细信息,请参阅elastic-agent status
命令文档。elastic-agent status --output yaml
结果将显示代理状态以及有关正在运行的组件的详细信息,这些组件对应于已添加到 Elastic Agent 策略的集成(在本例中为系统和 Nginx 集成)定义的输入和输出。
-
在命令输出的顶部,
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 了。
-
检查 Elastic Agent 日志是否正在传输。
- 打开 Kibana 菜单并转到 可观察性 → 发现。
-
在 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 发现中查看。
-
检查 Elastic Agent 指标是否正在传输。
- 打开 Kibana 菜单并转到 可观察性 → 仪表板。
-
在搜索字段中,搜索
Elastic Agent
并从结果中选择[Elastic Agent] Agent metrics
。与代理日志类似,代理指标应传输到 Elasticsearch 并可在 Kibana 仪表板中查看。您可以查看 CPU 使用率、内存使用率、打开句柄、事件速率等指标。
步骤 8:查看您的系统数据
编辑在 创建 Elastic Agent 策略 的步骤中,您选择收集系统日志和指标,因此您现在可以访问它们。
-
查看您的系统日志。
- 打开 Kibana 菜单并转到 项目设置 → 集成 → 已安装的集成。
- 选择 系统 卡并打开 资产 选项卡。这是一种快速访问每个集成附带的所有仪表板、保存的搜索和可视化效果的方法。
- 选择
[Logs System] Syslog dashboard
。 - 选择日历图标并将时间设置更改为
今天
。Kibana 仪表板显示 Syslog 事件、主机名和进程等的可视化效果。
-
查看您的系统指标。
- 返回 项目设置 → 集成 → 已安装的集成。
- 选择 系统 卡并打开 资产 选项卡。
- 这次,选择
[Metrics System] Host overview
。 -
选择日历图标并将时间设置更改为
今天
。Kibana 仪表板显示主机指标的可视化效果,包括 CPU 使用率、内存使用率、正在运行的进程等。
步骤 9:查看您的 nginx 日志数据
编辑现在让我们查看您的 nginx 日志数据。
- 打开 Kibana 菜单并转到 项目设置 → 集成 → 已安装的集成。
- 选择 Nginx 卡并打开 资产 选项卡。
- 选择
[Logs Nginx] Overview
。Kibana 仪表板将打开,其中包含地理日志详细信息、随时间推移的响应代码和错误、热门页面等。 -
刷新您的 nginx 网页几次以更新日志数据。您还可以尝试从不同的 Web 浏览器访问 nginx 页面。大约一分钟后,“
Browsers breakdown
”可视化效果将显示来自不同浏览器类型的请求的相应数量。
恭喜!您已成功使用独立的 Elastic Agent 和 Elastic Cloud 无服务器项目设置了 nginx 的监控。
接下来做什么?
编辑- 详细了解 Fleet 和 Elastic Agent。
- 详细了解 集成。