Link Search Menu Expand Document Documentation Menu

日志采集

日志采集提供了一种将非结构化日志数据转换为结构化数据并摄取到 OpenSearch 中的方法。结构化日志数据允许在搜索事件日志时,根据数据格式进行更优化的查询和过滤。

日志采集入门

OpenSearch 日志采集由三个组件组成——Data PrepperOpenSearchOpenSearch Dashboards。Data Prepper 仓库包含一些您可以用于入门的示例应用程序

基本数据流

Log data flow diagram from a distributed application to OpenSearch

  1. 日志采集依赖于您在应用程序环境中添加日志收集功能,以收集和发送日志数据。

    (在下面的示例中,FluentBit 用作日志收集器,从文件中收集日志数据并将其发送到 Data Prepper)。

  2. Data Prepper 接收日志数据,将其转换为结构化格式,并在 OpenSearch 集群上进行索引。

  3. 然后可以通过 OpenSearch 搜索查询或 OpenSearch Dashboards 中的“Discover”页面来探索数据。

示例

此示例模拟将日志条目写入日志文件,然后由 Data Prepper 处理并存储在 OpenSearch 中。

下载或克隆 Data Prepper 仓库。然后导航到 examples/log-ingestion/,并在文本编辑器中打开 docker-compose.yml。此文件包含以下容器:

  • Fluent Bit (fluent-bit)
  • Data Prepper (data-prepper)
  • 单节点 OpenSearch 集群 (opensearch)
  • OpenSearch Dashboards (opensearch-dashboards)。

关闭文件并运行 docker compose up --build 以启动容器。

容器启动后,您的摄取管道已设置完毕,可以摄取日志数据。fluent-bit 容器配置为从 test.log 读取日志数据。运行以下命令生成要发送到日志摄取管道的日志数据。

echo '63.173.168.120 - - [04/Nov/2021:15:07:25 -0500] "GET /search/tag/list HTTP/1.0" 200 5003' >> test.log

Fluent-Bit 将收集日志数据并将其发送到 Data Prepper

[2021/12/02 15:35:41] [ info] [output:http:http.0] data-prepper:2021, HTTP status=200
200 OK

Data Prepper 将处理日志并为其建立索引

2021-12-02T15:35:44,499 [log-pipeline-processor-worker-1-thread-1] INFO  com.amazon.dataprepper.pipeline.ProcessWorker -  log-pipeline Worker: Processing 1 records from buffer

这将导致单个文档写入 OpenSearch 集群的 apache-logs 索引中,如 log_pipeline.yaml 文件中所定义。

运行以下命令查看 OpenSearch 集群中的一个原始文档

curl -X GET -u 'admin:<custom-admin-password>' -k 'https://:9200/apache_logs/_search?pretty&size=1'

响应应显示已解析的日志数据

    "hits" : [
      {
        "_index" : "apache_logs",
        "_type" : "_doc",
        "_id" : "yGrJe30BgI2EWNKtDZ1g",
        "_score" : 1.0,
        "_source" : {
          "date" : 1.638459307042312E9,
          "log" : "63.173.168.120 - - [04/Nov/2021:15:07:25 -0500] \"GET /search/tag/list HTTP/1.0\" 200 5003",
          "request" : "/search/tag/list",
          "auth" : "-",
          "ident" : "-",
          "response" : "200",
          "bytes" : "5003",
          "clientip" : "63.173.168.120",
          "verb" : "GET",
          "httpversion" : "1.0",
          "timestamp" : "04/Nov/2021:15:07:25 -0500"
        }
      }
    ]

相同的数据可以在 OpenSearch Dashboards 中通过访问“Discover”页面并搜索 apache_logs 索引来查看。请记住,如果您是第一次搜索该索引,则必须在 OpenSearch Dashboards 中创建该索引。

剩余 350 字符

有问题?

想贡献?