使用 Logstash 将 Elastic Agent 数据导入 Elasticsearch
2023-09-01 18:38:06
在当今数据驱动的时代,可观察性对于监测和故障排除至关重要。Elastic Agent 是一种强大且灵活的数据采集工具,可将各种环境中的数据无缝传输到 Elastic Stack。通过将 Elastic Agent 数据导入 Elasticsearch,我们可以对其进行集中式存储、分析和可视化,从而深入了解系统和应用程序的运行状况。
本文将逐步指导您如何使用 Logstash 将 Elastic Agent 收集的数据输入到 Logstash,并最终写入 Elasticsearch 中。我们将探讨配置 Elastic Agent、Logstash 和 Elasticsearch 的具体步骤,以及一些最佳实践以优化数据流。
1. 配置 Elastic Agent
首先,我们需要配置 Elastic Agent 以将数据发送到 Logstash。
- 安装 Elastic Agent: 请按照 Elastic 官方文档中的说明在您的系统上安装 Elastic Agent。
- 创建配置文件: 使用您喜欢的文本编辑器创建一个名为
elastic-agent.yml
的文件。 - 配置数据输出: 在该文件中,添加以下部分以将数据发送到 Logstash:
output.logstash:
hosts: ["logstash-host:5044"]
flush_interval: 10s
其中:
logstash-host
是运行 Logstash 的主机地址。5044
是 Logstash 监听的默认端口。flush_interval
指定数据刷新到 Logstash 的频率。
2. 配置 Logstash
接下来,我们配置 Logstash 以接收来自 Elastic Agent 的数据。
- 安装 Logstash: 请按照 Logstash 官方文档中的说明在您的系统上安装 Logstash。
- 创建 Logstash 配置文件: 使用文本编辑器创建一个名为
logstash-config.conf
的文件。 - 定义输入: 在该文件中,添加以下输入部分以接收来自 Elastic Agent 的数据:
input {
tcp {
port => 5044
codec => json_lines
}
}
其中:
port
是 Logstash 监听来自 Elastic Agent 的数据的端口(与 Elastic Agent 配置中指定的一致)。codec
指定 Elastic Agent 数据的编码格式(在我们的情况下为 JSON 行)。
3. 配置 Elasticsearch
最后,我们配置 Elasticsearch 以接收来自 Logstash 的数据。
- 安装 Elasticsearch: 请按照 Elasticsearch 官方文档中的说明在您的系统上安装 Elasticsearch。
- 创建 Elasticsearch 输出: 在 Logstash 配置文件中 (
logstash-config.conf
),添加以下输出部分以将数据写入 Elasticsearch:
output {
elasticsearch {
hosts => ["elasticsearch-host:9200"]
index => "elastic-agent-%{+YYYY.MM.dd}"
}
}
其中:
elasticsearch-host
是运行 Elasticsearch 的主机地址。9200
是 Elasticsearch 监听的默认端口。index
指定 Elasticsearch 中用于存储数据的索引名称。
4. 运行 Logstash 和 Elasticsearch
配置好所有组件后,我们可以运行 Logstash 和 Elasticsearch:
- 启动 Logstash: 在终端中,运行
bin/logstash -f logstash-config.conf
。 - 启动 Elasticsearch: 在终端中,运行
bin/elasticsearch
。
5. 测试数据流
现在,Elastic Agent 应该会将数据发送到 Logstash,Logstash 应该会将数据写入 Elasticsearch。要测试数据流,请使用 Elastic Agent 采集一些数据,然后检查 Elasticsearch 中是否已正确存储数据。
最佳实践
以下是一些优化数据流的最佳实践:
- 使用 TLS 加密: 在 Logstash 和 Elasticsearch 之间启用 TLS 加密以保护数据传输。
- 调整缓存设置: 调整 Logstash 的缓存设置以优化性能,例如
queue_size
和flush_interval
。 - 使用日志级别: 配置 Logstash 和 Elasticsearch 的日志级别以获取有关数据流的详细信息。
- 监控数据流: 使用 Elastic Stack 中的监控功能监视数据流并识别任何潜在问题。
结论
通过使用 Logstash 将 Elastic Agent 数据导入 Elasticsearch,我们创建了一个强大的可观察性管道。这使我们能够集中存储、分析和可视化系统和应用程序的数据,从而增强故障排除能力并深入了解系统运行状况。通过遵循本文中概述的步骤,您可以轻松设置数据流并利用 Elastic Stack 的强大功能来改善可观察性。