返回

使用 Logstash 将 Elastic Agent 数据导入 Elasticsearch

后端

在当今数据驱动的时代,可观察性对于监测和故障排除至关重要。Elastic Agent 是一种强大且灵活的数据采集工具,可将各种环境中的数据无缝传输到 Elastic Stack。通过将 Elastic Agent 数据导入 Elasticsearch,我们可以对其进行集中式存储、分析和可视化,从而深入了解系统和应用程序的运行状况。

本文将逐步指导您如何使用 Logstash 将 Elastic Agent 收集的数据输入到 Logstash,并最终写入 Elasticsearch 中。我们将探讨配置 Elastic Agent、Logstash 和 Elasticsearch 的具体步骤,以及一些最佳实践以优化数据流。

1. 配置 Elastic Agent

首先,我们需要配置 Elastic Agent 以将数据发送到 Logstash。

  1. 安装 Elastic Agent: 请按照 Elastic 官方文档中的说明在您的系统上安装 Elastic Agent。
  2. 创建配置文件: 使用您喜欢的文本编辑器创建一个名为 elastic-agent.yml 的文件。
  3. 配置数据输出: 在该文件中,添加以下部分以将数据发送到 Logstash:
output.logstash:
  hosts: ["logstash-host:5044"]
  flush_interval: 10s

其中:

  • logstash-host 是运行 Logstash 的主机地址。
  • 5044 是 Logstash 监听的默认端口。
  • flush_interval 指定数据刷新到 Logstash 的频率。

2. 配置 Logstash

接下来,我们配置 Logstash 以接收来自 Elastic Agent 的数据。

  1. 安装 Logstash: 请按照 Logstash 官方文档中的说明在您的系统上安装 Logstash。
  2. 创建 Logstash 配置文件: 使用文本编辑器创建一个名为 logstash-config.conf 的文件。
  3. 定义输入: 在该文件中,添加以下输入部分以接收来自 Elastic Agent 的数据:
input {
  tcp {
    port => 5044
    codec => json_lines
  }
}

其中:

  • port 是 Logstash 监听来自 Elastic Agent 的数据的端口(与 Elastic Agent 配置中指定的一致)。
  • codec 指定 Elastic Agent 数据的编码格式(在我们的情况下为 JSON 行)。

3. 配置 Elasticsearch

最后,我们配置 Elasticsearch 以接收来自 Logstash 的数据。

  1. 安装 Elasticsearch: 请按照 Elasticsearch 官方文档中的说明在您的系统上安装 Elasticsearch。
  2. 创建 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:

  1. 启动 Logstash: 在终端中,运行 bin/logstash -f logstash-config.conf
  2. 启动 Elasticsearch: 在终端中,运行 bin/elasticsearch

5. 测试数据流

现在,Elastic Agent 应该会将数据发送到 Logstash,Logstash 应该会将数据写入 Elasticsearch。要测试数据流,请使用 Elastic Agent 采集一些数据,然后检查 Elasticsearch 中是否已正确存储数据。

最佳实践

以下是一些优化数据流的最佳实践:

  • 使用 TLS 加密: 在 Logstash 和 Elasticsearch 之间启用 TLS 加密以保护数据传输。
  • 调整缓存设置: 调整 Logstash 的缓存设置以优化性能,例如 queue_sizeflush_interval
  • 使用日志级别: 配置 Logstash 和 Elasticsearch 的日志级别以获取有关数据流的详细信息。
  • 监控数据流: 使用 Elastic Stack 中的监控功能监视数据流并识别任何潜在问题。

结论

通过使用 Logstash 将 Elastic Agent 数据导入 Elasticsearch,我们创建了一个强大的可观察性管道。这使我们能够集中存储、分析和可视化系统和应用程序的数据,从而增强故障排除能力并深入了解系统运行状况。通过遵循本文中概述的步骤,您可以轻松设置数据流并利用 Elastic Stack 的强大功能来改善可观察性。