From 1a596d9472905857f9651fbd3db193517605256f Mon Sep 17 00:00:00 2001 From: Taylor Gray <33740195+graytaylor0@users.noreply.github.com> Date: Fri, 29 Oct 2021 17:48:50 -0500 Subject: [PATCH 1/5] Added md for Log Ingestion Demo Guide Signed-off-by: Taylor Gray <33740195+graytaylor0@users.noreply.github.com> --- ...ngestionFluentBit_DataPrepper_OpenSearch.jpg | Bin 0 -> 27674 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/LogIngestionFluentBit_DataPrepper_OpenSearch.jpg diff --git a/docs/images/LogIngestionFluentBit_DataPrepper_OpenSearch.jpg b/docs/images/LogIngestionFluentBit_DataPrepper_OpenSearch.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bf49c8798c6f6197898231ca79848a9900666b20 GIT binary patch literal 27674 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 Kd^&t%@IL?ojJ^N> literal 0 HcmV?d00001 From 88e4417f2c6fb9938172d0d1f111fd955efae5cd Mon Sep 17 00:00:00 2001 From: Taylor Gray <33740195+graytaylor0@users.noreply.github.com> Date: Tue, 2 Nov 2021 16:12:44 -0500 Subject: [PATCH 2/5] More fixes Signed-off-by: Taylor Gray <33740195+graytaylor0@users.noreply.github.com> --- ...ngestionFluentBit_DataPrepper_OpenSearch.jpg | Bin 27674 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/images/LogIngestionFluentBit_DataPrepper_OpenSearch.jpg diff --git a/docs/images/LogIngestionFluentBit_DataPrepper_OpenSearch.jpg b/docs/images/LogIngestionFluentBit_DataPrepper_OpenSearch.jpg deleted file mode 100644 index bf49c8798c6f6197898231ca79848a9900666b20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27674 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 Kd^&t%@IL?ojJ^N> From a48229cae2e4e3936393d7f0c218e51168f89eef Mon Sep 17 00:00:00 2001 From: Taylor Gray <33740195+graytaylor0@users.noreply.github.com> Date: Tue, 9 Nov 2021 11:23:40 -0600 Subject: [PATCH 3/5] Reworking Log Ingestion Demo Guide and Starting Getting Started Guide for Log Analytics Signed-off-by: Taylor Gray <33740195+graytaylor0@users.noreply.github.com> --- docs/getting_started.md | 3 + docs/images/Components.jpg | Bin 47289 -> 0 bytes docs/images/LogAnalyticsComponents.png | Bin 0 -> 43913 bytes docs/images/TraceAnalyticsComponents.png | Bin 0 -> 43092 bytes docs/log_analytics.md | 33 ++++++ docs/trace_analytics.md | 4 +- examples/log-ingestion/docker-compose.yaml | 73 ++++++++++++ examples/log-ingestion/fluent-bit.conf | 13 +++ .../log-ingestion/log_ingestion_demo_guide.md | 108 ++++-------------- examples/log-ingestion/log_pipeline.yaml | 15 +++ examples/log-ingestion/test.log | 14 +++ 11 files changed, 178 insertions(+), 85 deletions(-) delete mode 100644 docs/images/Components.jpg create mode 100644 docs/images/LogAnalyticsComponents.png create mode 100644 docs/images/TraceAnalyticsComponents.png create mode 100644 docs/log_analytics.md create mode 100644 examples/log-ingestion/docker-compose.yaml create mode 100644 examples/log-ingestion/fluent-bit.conf create mode 100644 examples/log-ingestion/log_pipeline.yaml create mode 100644 examples/log-ingestion/test.log diff --git a/docs/getting_started.md b/docs/getting_started.md index 9ae7fe60df..1c2ed4d407 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -35,6 +35,7 @@ You will configure two files: Depending on what you want to do, we have a few different guides to configuring Data Prepper. * [Trace Analytics](trace_analytics.md) - Learn how to setup Data Prepper for trace observability +* [Log Ingestion](log_analytics.md) - Learn how to setup Data Prepper for log observability * [Simple Pipeline](simple_pipelines.md) - Learn the basics of Data Prepper pipelines with some simple configurations. ## Running @@ -67,6 +68,8 @@ how to configure the server. Trace Analytics is an important Data Prepper use case. If you haven't yet configure it, please visit the [Trace Analytics documentation](trace_analytics.md). +Log Ingestion is also an important Data Prepper use case. To learn more, visit the [Log Ingestion Documentation](log_analytics.md). + To monitor Data Prepper, please read the [Monitoring](monitoring.md) page. ## Other Examples diff --git a/docs/images/Components.jpg b/docs/images/Components.jpg deleted file mode 100644 index b243e75f034f8a75b9e139acc66538eac731e51b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47289 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%0AEH3UDZkEEQL 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 diff --git a/docs/images/LogAnalyticsComponents.png b/docs/images/LogAnalyticsComponents.png new file mode 100644 index 0000000000000000000000000000000000000000..f70ab5952153674e4079eee80fbef0e1ed19b3ce GIT binary patch literal 43913 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⁢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 V`iT&fUKcDdI%IONNcZH${|C_3C?@~_ literal 0 HcmV?d00001 diff --git a/docs/log_analytics.md b/docs/log_analytics.md new file mode 100644 index 0000000000..453e3066e0 --- /dev/null +++ b/docs/log_analytics.md @@ -0,0 +1,33 @@ +# Log Analytics + +## Introduction + +Data Prepper is an extendable, configurable, and scalable solution for log ingestion into OpenSearch and Amazon OpenSearch Service. Currently, Data Prepper is focused on receiving logs from [FluentBit](https://fluentbit.io/) via the +[http source](https://github.com/opensearch-project/data-prepper/blob/main/data-prepper-plugins/http-source/README.md), and processing those logs with a [grok prepper](https://github.com/opensearch-project/data-prepper/blob/main/data-prepper-plugins/grok-prepper/README.md) before ingesting them into OpenSearch through the [OpenSearch sink](https://github.com/opensearch-project/data-prepper/blob/main/data-prepper-plugins/opensearch/README.md). + +Here is all of the components for log analytics with FluentBit, Data Prepper, and OpenSearch: +
+
+![Log Analytics Pipeline](images/LogAnalyticsComponents.png) +
+
+ +In your application environment you will have to run FluentBit. +FluentBit can be containerized through Kubernetes, Docker, or Amazon ECS. +It can also be run as an agent on EC2. +You should configure the [FluentBit http output plugin]() to export log data to Data Prepper. +You will then have to deploy Data Prepper as an intermediate component and configure it to send +the enriched log data to your OpenSearch cluster or Amazon OpenSeaarch Service domain. From there, you can +use OpenSearch Dashboards to perform more intensive visualization and analysis. + +## Sources + + +## Next Steps + +Follow the [Log Ingestion Demo Guide]() to get a specific example of apache log ingestion from `FluentBit -> Data Prepper -> OpenSearch` running through Docker. + +In the future, Data Prepper will contain additional sources and preppers which will make more complex log analytic pipelines available. Check out our [Roadmap]() to see what is coming. + +If there is a specifc source, prepper, or sink that you would like to include in your log analytic workflow, and it is not currently on the Roadmap, please bring it to our attention by making a Github issue. Additionally, if you +are interested in contributing, see our [Contribuing Guidelines](). \ No newline at end of file diff --git a/docs/trace_analytics.md b/docs/trace_analytics.md index fb91ff2947..4a0f2baf52 100644 --- a/docs/trace_analytics.md +++ b/docs/trace_analytics.md @@ -10,10 +10,10 @@ The transformed trace data is the visualized using the [Trace Analytics OpenSearch Dashboards plugin](https://opensearch.org/docs/monitoring-plugins/trace/ta-dashboards/), which provides at-a-glance visibility into your application performance, along with the ability to drill down on individual traces. -Here is how all the components work in trace analytics, +Here is how all the components work in trace analytics:

-![Trace Analytics Pipeline](images/Components.jpg) +![Trace Analytics Pipeline](images/TraceAnalyticsComponents.png)

diff --git a/examples/log-ingestion/docker-compose.yaml b/examples/log-ingestion/docker-compose.yaml new file mode 100644 index 0000000000..a7fef69990 --- /dev/null +++ b/examples/log-ingestion/docker-compose.yaml @@ -0,0 +1,73 @@ +version: '3' +services: + fluent-bit: + container_name: fluent-bit + image: fluent/fluent-bit + volumes: + - ./fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf + - ./test.log:/var/log/test.log + networks: + - opensearch-net + opensearch-node1: + image: opensearchproject/opensearch:latest + container_name: opensearch-node1 + environment: + - cluster.name=opensearch-cluster + - node.name=opensearch-node1 + - discovery.seed_hosts=opensearch-node1,opensearch-node2 + - cluster.initial_master_nodes=opensearch-node1,opensearch-node2 + - bootstrap.memory_lock=true # along with the memlock settings below, disables swapping + - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 # maximum number of open files for the OpenSearch user, set to at least 65536 on modern systems + hard: 65536 + volumes: + - opensearch-data1:/usr/share/opensearch/data + ports: + - 9200:9200 + - 9600:9600 # required for Performance Analyzer + networks: + - opensearch-net + opensearch-node2: + image: opensearchproject/opensearch:latest + container_name: opensearch-node2 + environment: + - cluster.name=opensearch-cluster + - node.name=opensearch-node2 + - discovery.seed_hosts=opensearch-node1,opensearch-node2 + - cluster.initial_master_nodes=opensearch-node1,opensearch-node2 + - bootstrap.memory_lock=true + - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + volumes: + - opensearch-data2:/usr/share/opensearch/data + networks: + - opensearch-net + opensearch-dashboards: + image: opensearchproject/opensearch-dashboards:latest + container_name: opensearch-dashboards + ports: + - 5601:5601 + expose: + - "5601" + environment: + OPENSEARCH_HOSTS: '["https://opensearch-node1:9200","https://opensearch-node2:9200"]' + networks: + - opensearch-net + +volumes: + opensearch-data1: + opensearch-data2: + +networks: + opensearch-net: \ No newline at end of file diff --git a/examples/log-ingestion/fluent-bit.conf b/examples/log-ingestion/fluent-bit.conf new file mode 100644 index 0000000000..b7a1a6c5dc --- /dev/null +++ b/examples/log-ingestion/fluent-bit.conf @@ -0,0 +1,13 @@ +[INPUT] + name tail + refresh_interval 5 + path /var/log/test.log + read_from_head true + +[OUTPUT] + Name http + Match * + Host data-prepper + Port 2021 + URI /log/ingest + Format json \ No newline at end of file diff --git a/examples/log-ingestion/log_ingestion_demo_guide.md b/examples/log-ingestion/log_ingestion_demo_guide.md index 0a7ee9529e..5d6637e88d 100644 --- a/examples/log-ingestion/log_ingestion_demo_guide.md +++ b/examples/log-ingestion/log_ingestion_demo_guide.md @@ -8,114 +8,56 @@ Fluent Bit → Data Prepper → OpenSearch. This log ingestion flow is shown in ## List of Components -- An OpenSearch domain running locally. The steps to get started with OpenSearch can be found [here](https://opensearch.org/downloads.html). -- Data Prepper, which includes a `pipeline.yaml` and a `data-prepper-config.yaml` +- An OpenSearch domain running through Docker - A FluentBit agent running through Docker +- Data Prepper, which includes a `log_pipeline.yaml` - An Apache Log Generator in the form of a python script -### Data Prepper Setup +### FluentBit And OpenSearch Setup -1. Pull down the Data Prepper repository +1. Take a look at the [docker-compose.yaml](docker-compose.yaml). This `docker-compose.yaml` will pull the FluentBit and OpenSearch Docker images and run them in the `log-ingestion_opensearch-net` Docker network. -``` -git clone https://github.com/opensearch-project/data-prepper.git -``` -2. Build the Data Prepper jar. You must have JDK 14 or 15 in order to build successfully. For more info on building from source, see the -[Data Prepper Developer Guide](../../docs/developer_guide.md) - -``` -./gradlew build` -``` - -3. Create the following pipeline.yaml. This configuration will take logs sent to the [http source](../../data-prepper-plugins/http-source), -process them with the [Grok Prepper](../../data-prepper-plugins/grok-prepper) by matching against the `COMMONAPACHELOG` pattern, -and send the processed logs to a local [OpenSearch sink](../../data-prepper-plugins/opensearch) to an index named `grok-prepper`. - -```yaml -grok-pipeline: - source: - http: - prepper: - - grok: - match: - log: [ "%{COMMONAPACHELOG}" ] - sink: - - opensearch: - hosts: [ "https://localhost:9200" ] - username: admin - password: admin - index: grok-prepper -``` - -4. Create the following `data-prepper-config.yaml` +2. Now take a look at the [fluent-bit.conf](fluent-bit.conf). This config will tell FluentBit to tail the `/var/log/test.log` file for logs, and uses the FluentBit http output plugin to forward these logs to the http source of Data Prepper, which runs by default on port 2021. The `fluent-bit.conf` file +is mounted as a Docker volume through the `docker-compose.yaml`. -```yaml -ssl: false -``` -5. From the root of the data prepper repo, - run the Data Prepper jar with the `pipeline.yaml` and `data-prepper-config.yaml` as command line arguments. - -``` -java -jar data-prepper-core/build/libs/data-prepper-core-1.2.0-SNAPSHOT.jar /full/path/to/pipeline.yaml /full/path/to/data-prepper-config.yaml -``` +3. Create an empty file named `test.log`. This file can be named whatever you like, but the `docker-compose.yaml` will need to be updated accordingly. -If you see an error that looks like this: `Caused by: java.lang.RuntimeException: Connection refused`, then that probably means you don't have OpenSearch running locally. -Go [here](https://opensearch.org/downloads.html) to do so before moving on to the next step of this guide. -If Data Prepper is running correctly, you should see something similar to the following line as the latest output in your terminal. +4. Now that you understand a bit more about how FluentBit and OpenSearch are set up, run them with: ``` -INFO com.amazon.dataprepper.pipeline.ProcessWorker - grok-pipeline Worker: No records received from buffer +docker-compose up ``` -### FluentBit Setup - -The FluentBit setup includes a `docker-compose.yaml`, a `fluent-bit.conf`, and a log file which corresponds to where FluentBit will look for logs. - -1. Create the following `docker-compose.yaml`. This `docker-compose.yaml` will pull the FluentBit Docker image, and will mount your `fluent-bit.conf` and log file to this Docker image. In this case, the log file is named `test.log`. +### Data Prepper Setup -```yaml -version: "3.7" +1. Pull down the Data Prepper Docker image -services: - fluent-bit: - image: fluent/fluent-bit - volumes: - - ./fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf - - ./test.log:/var/log/test.log ``` +docker pull opensearchproject/data-prepper:latest +``` + +2. Take a look at [log_pipeline.yaml](log_pipeline.yaml). This configuration will take logs sent to the [http source](../../data-prepper-plugins/http-source), +process them with the [Grok Prepper](../../data-prepper-plugins/grok-prepper) by matching against the `COMMONAPACHELOG` pattern, +and send the processed logs to a local [OpenSearch sink](../../data-prepper-plugins/opensearch) to an index named `apache_logs`. -2. Create the following `fluent-bit.conf`. This config will tell FluentBit to tail the `/var/log/test.log` file for logs, and uses the FluentBit http output plugin to forward these logs to the http source of Data Prepper, which runs by default on port 2021. +3. Run the Data Prepper docker image with `log_pipeline.yaml` from step 2 passed in. ``` -[INPUT] - name tail - refresh_interval 5 - path /var/log/test.log - read_from_head true - -[OUTPUT] - Name http - Match * - Host host.docker.internal - Port 2021 - URI /log/ingest - Format json +docker run --name data-prepper -v /full/path/to/log_pipeline.yaml:/usr/share/data-prepper/pipelines.yaml --network "log-ingestion_opensearch-net" opensearch-data-prepper:1.2.0-SNAPSHOT ``` -3. Create an empty file named `test.log`. This file can be named whatever you like, but the `docker-compose.yaml` will need to be updated accordingly. - - -4. Now that you have the `docker-compose.yaml`, `fluent-bit.conf`, and the `test.log` files, FluentBit is ready for log ingestion. Start FluentBit with +If Data Prepper is running correctly, you should see something similar to the following line as the latest output in your terminal. ``` -docker-compose up +INFO com.amazon.dataprepper.pipeline.ProcessWorker - log-pipeline Worker: No records received from buffer ``` ### Apache Log Generator +Note that if you just want to see the log ingestion workflow in action, you can simply copy and paste some logs into the `test.log` file yourself. In order to simulate an application generating logs, a simple python script will be used. This script only runs with python 2. You can download this script by running ``` @@ -140,17 +82,17 @@ You should now be able to check your terminal output for FluentBit and Data Prep The following FluentBit ouptut means that FluentBit was able to forward logs to the Data Prepper http source ``` -fluent-bit_1 | [2021/10/30 17:16:39] [ info] [output:http:http.0] host.docker.internal:2021, HTTP status=200 +fluent-bit | [2021/10/30 17:16:39] [ info] [output:http:http.0] host.docker.internal:2021, HTTP status=200 ``` The following Data Prepper output indicates that Data Prepper is successfully processing logs from FluentBit ``` -2021-10-30T12:17:17,474 [grok-pipeline-prepper-worker-1-thread-1] INFO com.amazon.dataprepper.pipeline.ProcessWorker - grok-pipeline Worker: Processing 2 records from buffer +2021-10-30T12:17:17,474 [log-pipeline-prepper-worker-1-thread-1] INFO com.amazon.dataprepper.pipeline.ProcessWorker - log-pipeline Worker: Processing 2 records from buffer ``` Finally, head into OpenSearch Dashboards ([http://localhost:5601](http://localhost:5601)) to view your processed logs. You will need to create an index pattern for the index provided in your `pipeline.yaml` in order to see them. You can do this by going to -`Stack Management -> Index Pattterns`. Now start typing in the name of the index you sent logs to (in this guide it was `grok-prepper`), +`Stack Management -> Index Pattterns`. Now start typing in the name of the index you sent logs to (in this guide it was `apache_logs`), and you should see that the index pattern matches 1 source. Click `Create Index Pattern`, and you should then be able to go back to the `Discover` tab to see your processed logs. diff --git a/examples/log-ingestion/log_pipeline.yaml b/examples/log-ingestion/log_pipeline.yaml new file mode 100644 index 0000000000..9ea8d5323a --- /dev/null +++ b/examples/log-ingestion/log_pipeline.yaml @@ -0,0 +1,15 @@ +log-pipeline: + source: + http: + ssl: false + prepper: + - grok: + match: + log: [ "%{COMMONAPACHELOG}" ] + sink: + - opensearch: + hosts: [ "https://opensearch-node1:9200" ] + insecure: true + username: admin + password: admin + index: apache_logs \ No newline at end of file diff --git a/examples/log-ingestion/test.log b/examples/log-ingestion/test.log new file mode 100644 index 0000000000..c9bce851ad --- /dev/null +++ b/examples/log-ingestion/test.log @@ -0,0 +1,14 @@ +63.173.168.120 - - [04/Nov/2021:15:07:25 -0500] "GET /search/tag/list HTTP/1.0" 200 5003 +71.52.186.114 - - [04/Nov/2021:15:07:27 -0500] "GET /search/tag/list HTTP/1.0" 200 5015 +223.195.133.151 - - [04/Nov/2021:15:07:29 -0500] "GET /posts/posts/explore HTTP/1.0" 200 5049 +249.189.38.1 - - [04/Nov/2021:15:07:31 -0500] "GET /app/main/posts HTTP/1.0" 200 5005 +36.155.45.2 - - [04/Nov/2021:15:07:33 -0500] "GET /search/tag/list HTTP/1.0" 200 5001 +4.54.90.166 - - [04/Nov/2021:15:07:35 -0500] "DELETE /wp-content HTTP/1.0" 200 4965 +214.246.93.195 - - [04/Nov/2021:15:07:37 -0500] "GET /apps/cart.jsp?appID=4401 HTTP/1.0" 200 5008 +72.108.181.108 - - [04/Nov/2021:15:07:39 -0500] "GET /wp-content HTTP/1.0" 200 5020 +194.43.128.202 - - [04/Nov/2021:15:07:41 -0500] "GET /app/main/posts HTTP/1.0" 404 4943 +14.169.135.206 - - [04/Nov/2021:15:07:43 -0500] "DELETE /wp-content HTTP/1.0" 200 4985 +208.0.179.237 - - [04/Nov/2021:15:07:45 -0500] "GET /explore HTTP/1.0" 200 4953 +134.29.61.53 - - [04/Nov/2021:15:07:47 -0500] "GET /explore HTTP/1.0" 200 4937 +213.229.161.38 - - [04/Nov/2021:15:07:49 -0500] "PUT /posts/posts/explore HTTP/1.0" 200 5092 +82.41.77.121 - - [04/Nov/2021:15:07:51 -0500] "GET /app/main/posts HTTP/1.0" 200 5016 From 9aac01a8e9e4f309077057da3ac5c49be897440e Mon Sep 17 00:00:00 2001 From: Taylor Gray <33740195+graytaylor0@users.noreply.github.com> Date: Thu, 11 Nov 2021 22:22:57 -0600 Subject: [PATCH 4/5] Updated demo guide for running Data Prepper through Docker, and FluentBit and OpenSearch through the same docker-compose, first draft for Getting Started Guide with Log Analytics Signed-off-by: Taylor Gray <33740195+graytaylor0@users.noreply.github.com> --- docs/images/LogAnalyticsComponents.png | Bin 43913 -> 41576 bytes ...stion_FluentBit_DataPrepper_OpenSearch.jpg | Bin 27674 -> 35883 bytes docs/log_analytics.md | 113 ++++++++++++++++-- .../log-ingestion/log_ingestion_demo_guide.md | 39 ++++-- examples/log-ingestion/test.log | 15 +-- 5 files changed, 134 insertions(+), 33 deletions(-) diff --git a/docs/images/LogAnalyticsComponents.png b/docs/images/LogAnalyticsComponents.png index f70ab5952153674e4079eee80fbef0e1ed19b3ce..fc31fe33cf9d13330cae95aba208714ce13c2e01 100644 GIT binary patch literal 41576 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 literal 43913 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 Kd^&t%@IL?ojJ^N> diff --git a/docs/log_analytics.md b/docs/log_analytics.md index 453e3066e0..04e7945256 100644 --- a/docs/log_analytics.md +++ b/docs/log_analytics.md @@ -2,32 +2,127 @@ ## Introduction -Data Prepper is an extendable, configurable, and scalable solution for log ingestion into OpenSearch and Amazon OpenSearch Service. Currently, Data Prepper is focused on receiving logs from [FluentBit](https://fluentbit.io/) via the -[http source](https://github.com/opensearch-project/data-prepper/blob/main/data-prepper-plugins/http-source/README.md), and processing those logs with a [grok prepper](https://github.com/opensearch-project/data-prepper/blob/main/data-prepper-plugins/grok-prepper/README.md) before ingesting them into OpenSearch through the [OpenSearch sink](https://github.com/opensearch-project/data-prepper/blob/main/data-prepper-plugins/opensearch/README.md). +Data Prepper is an extendable, configurable, and scalable solution for log ingestion into OpenSearch and Amazon OpenSearch Service. +Currently, Data Prepper is focused on receiving logs from [FluentBit](https://fluentbit.io/) via the +[Http Source](https://github.com/opensearch-project/data-prepper/blob/main/data-prepper-plugins/http-source/README.md), and processing those logs with a [Grok Prepper](https://github.com/opensearch-project/data-prepper/blob/main/data-prepper-plugins/grok-prepper/README.md) before ingesting them into OpenSearch through the [OpenSearch sink](https://github.com/opensearch-project/data-prepper/blob/main/data-prepper-plugins/opensearch/README.md). Here is all of the components for log analytics with FluentBit, Data Prepper, and OpenSearch:

-![Log Analytics Pipeline](images/LogAnalyticsComponents.png) +![Log Analytics Components](images/LogAnalyticsComponents.png)

In your application environment you will have to run FluentBit. FluentBit can be containerized through Kubernetes, Docker, or Amazon ECS. It can also be run as an agent on EC2. -You should configure the [FluentBit http output plugin]() to export log data to Data Prepper. +You should configure the [FluentBit http output plugin](https://docs.fluentbit.io/manual/pipeline/outputs/http) to export log data to Data Prepper. You will then have to deploy Data Prepper as an intermediate component and configure it to send -the enriched log data to your OpenSearch cluster or Amazon OpenSeaarch Service domain. From there, you can +the enriched log data to your OpenSearch cluster or Amazon OpenSearch Service domain. From there, you can use OpenSearch Dashboards to perform more intensive visualization and analysis. -## Sources +## Log Analytics Pipeline +Log analytic pipelines in Data Prepper are extremely customizable. A simple pipeline is shown below. + +![](images/Log_Ingestion_FluentBit_DataPrepper_OpenSearch.jpg) + +## Http Source + +The [Http Source](https://github.com/opensearch-project/data-prepper/blob/main/data-prepper-plugins/http-source/README.md) accepts log data from FluentBit. +More specifically, this source accepts log data in a JSON array format. +This source supports industry-standard encryption in the form of TLS/HTTPS and HTTP basic authentication. + +## Preppers + +The Data Prepper 1.2 release will come with a [Grok Prepper](https://github.com/opensearch-project/data-prepper/blob/main/data-prepper-plugins/grok-prepper/README.md). +The Grok Prepper can be an invaluable tool to structure and extract important fields from your logs in order to make them more queryable. + +The Grok Prepper comes with a wide variety of [default patterns](https://github.com/thekrakken/java-grok/blob/master/src/main/resources/patterns/patterns) that match against common log formats like apcahe logs or syslogs, +but can easily accept any custom patterns that cater to your specific log format. + +There are a lot of complex Grok features that will not be discussed here, so please read the documentation if you are interested. + +## OpenSearch sink + +We have a generic sink that writes the data to OpenSearch as the destination. The [opensearch sink](https://github.com/opensearch-project/data-prepper/blob/main/data-prepper-plugins/opensearch/README.md) has configuration options related to an OpenSearch cluster like endpoint, SSL/Username, index name, index template, index state management, etc. + +## Pipeline Configuration + +Create a file, `pipeline.yaml`. Paste the following example pipeline in there. + +```yaml +log-pipeline: + source: + http: + # This is a simple http source with SSL disabled. + # However, you can easily enable SSL and http basic authentication for this source + ssl: false + # The default port that will listen for incoming logs + port: 2021 + prepper: + - grok: + match: + # This will match logs with a "log" key against the COMMONAPACHELOG pattern (ex: { "log": "actual apache log..." } ) + # You should change this to match what your logs look like. See the grok documenation to get started. + log: [ "%{COMMONAPACHELOG}" ] + sink: + - opensearch: + hosts: [ "https://localhost:9200" ] + # Change to your credentials + username: "admin" + password: "admin" + # Add a certificate file if you are accessing an OpenSearch cluster with a self-signed certificate + #cert: /path/to/cert + # If you are connecting to an Amazon OpenSearch Service domain without + # Fine-Grained Access Control, enable these settings. Comment out the + # username and password above. + #aws_sigv4: true + #aws_region: us-east-1 + # Since we are grok matching for apache logs, it makes sense to send them to an OpenSearch index named apache_logs. + # You should change this to correspond with how your OpenSearch indices are set up. + index: apache_logs +``` + +This pipeline configuration is an example of apache log ingestion. Don't forget that you can easily configure the Grok Prepper for your own custom logs. + +You will need to modify the configuration above for your OpenSearch cluster. + +The main changes you will need to make are: + +* `hosts` - Set to your hosts +* `index` - Change this to the OpenSearch index you want to send logs to +* `username`- Provide the OpenSearch username +* `password` - Provide your OpenSearch password +* `aws_sigv4` - If you use Amazon OpenSearch Service with AWS signing, set this to true. It will sign requests with the default AWS credentials provider. +* `aws_region` - If you use Amazon OpenSearch Service with AWS signing, set this value to your region. +## FluentBit + +You will have to run FluentBit in your service environment. You can find the installation guide of FluentBit [here](https://docs.fluentbit.io/manual/installation/getting-started-with-fluent-bit). +Please ensure that you can configure the [FluentBit http output plugin](https://docs.fluentbit.io/manual/pipeline/outputs/http) to your Data Prepper Http Source. Below is an example `fluent-bit.conf` that tails a log file named `test.log` and forwards it to a locally running Data Prepper's http source, which runs +by default on port 2021. Note that you should adjust the file `path`, output `Host` and `Port` according to how and where you have FluentBit and Data Prepper running. + +``` +[INPUT] + name tail + refresh_interval 5 + path test.log + read_from_head true + +[OUTPUT] + Name http + Match * + Host localhost + Port 2021 + URI /log/ingest + Format json +``` ## Next Steps -Follow the [Log Ingestion Demo Guide]() to get a specific example of apache log ingestion from `FluentBit -> Data Prepper -> OpenSearch` running through Docker. +Follow the [Log Ingestion Demo Guide](../examples/log-ingestion/log_ingestion_demo_guide.md) to get a specific example of apache log ingestion from `FluentBit -> Data Prepper -> OpenSearch` running through Docker. -In the future, Data Prepper will contain additional sources and preppers which will make more complex log analytic pipelines available. Check out our [Roadmap]() to see what is coming. +In the future, Data Prepper will contain additional sources and preppers which will make more complex log analytic pipelines available. Check out our [Roadmap](https://github.com/opensearch-project/data-prepper/projects/1) to see what is coming. If there is a specifc source, prepper, or sink that you would like to include in your log analytic workflow, and it is not currently on the Roadmap, please bring it to our attention by making a Github issue. Additionally, if you -are interested in contributing, see our [Contribuing Guidelines](). \ No newline at end of file +are interested in contributing, see our [Contribuing Guidelines](../CONTRIBUTING.md) as well as our [Developer Guide](developer_guide.md) and [Plugin Development Guide](plugin_development.md). \ No newline at end of file diff --git a/examples/log-ingestion/log_ingestion_demo_guide.md b/examples/log-ingestion/log_ingestion_demo_guide.md index 5d6637e88d..495c7c9123 100644 --- a/examples/log-ingestion/log_ingestion_demo_guide.md +++ b/examples/log-ingestion/log_ingestion_demo_guide.md @@ -1,6 +1,6 @@ # Data Prepper Log Ingestion Demo Guide -This is a guide that will walk users through setting up a sample Data Prepper for log ingestion. +This is a guide that will walk users through setting up a sample Data Prepper pipeline for log ingestion. This guide will go through the steps required to create a simple log ingestion pipeline from \ Fluent Bit → Data Prepper → OpenSearch. This log ingestion flow is shown in the diagram below. @@ -22,8 +22,9 @@ Fluent Bit → Data Prepper → OpenSearch. This log ingestion flow is shown in is mounted as a Docker volume through the `docker-compose.yaml`. -3. Create an empty file named `test.log`. This file can be named whatever you like, but the `docker-compose.yaml` will need to be updated accordingly. - +3. An empty file named `test.log` has been created. This file is also mounted through the `docker-compose.yaml`, and will be the file +FluentBit is tailing to collect logs from. + 4. Now that you understand a bit more about how FluentBit and OpenSearch are set up, run them with: @@ -33,17 +34,16 @@ docker-compose up ### Data Prepper Setup -1. Pull down the Data Prepper Docker image +1. Build the Data Prepper 1.2 SNAPSHOT Docker image by following the instructions found [here](../../release/docker/README.md). -``` -docker pull opensearchproject/data-prepper:latest -``` - + 2. Take a look at [log_pipeline.yaml](log_pipeline.yaml). This configuration will take logs sent to the [http source](../../data-prepper-plugins/http-source), process them with the [Grok Prepper](../../data-prepper-plugins/grok-prepper) by matching against the `COMMONAPACHELOG` pattern, and send the processed logs to a local [OpenSearch sink](../../data-prepper-plugins/opensearch) to an index named `apache_logs`. -3. Run the Data Prepper docker image with `log_pipeline.yaml` from step 2 passed in. + +3. Run the Data Prepper docker image with the `log_pipeline.yaml` from step 2 passed in. This command attaches the Data Prepper Docker image to the Docker network `log-ingestion_opensearch_net` so that +FluentBit is able to send logs to the http source of Data Prepper. ``` docker run --name data-prepper -v /full/path/to/log_pipeline.yaml:/usr/share/data-prepper/pipelines.yaml --network "log-ingestion_opensearch-net" opensearch-data-prepper:1.2.0-SNAPSHOT @@ -57,7 +57,26 @@ INFO com.amazon.dataprepper.pipeline.ProcessWorker - log-pipeline Worker: No re ### Apache Log Generator -Note that if you just want to see the log ingestion workflow in action, you can simply copy and paste some logs into the `test.log` file yourself. +Note that if you just want to see the log ingestion workflow in action, you can simply copy and paste some logs into the `test.log` file yourself without using the Python [Fake Apache Log Generator](https://github.com/graytaylor0/Fake-Apache-Log-Generator). +Here is a sample batch of randomly generated Apache Logs if you choose to take this route. + +``` +63.173.168.120 - - [04/Nov/2021:15:07:25 -0500] "GET /search/tag/list HTTP/1.0" 200 5003 +71.52.186.114 - - [04/Nov/2021:15:07:27 -0500] "GET /search/tag/list HTTP/1.0" 200 5015 +223.195.133.151 - - [04/Nov/2021:15:07:29 -0500] "GET /posts/posts/explore HTTP/1.0" 200 5049 +249.189.38.1 - - [04/Nov/2021:15:07:31 -0500] "GET /app/main/posts HTTP/1.0" 200 5005 +36.155.45.2 - - [04/Nov/2021:15:07:33 -0500] "GET /search/tag/list HTTP/1.0" 200 5001 +4.54.90.166 - - [04/Nov/2021:15:07:35 -0500] "DELETE /wp-content HTTP/1.0" 200 4965 +214.246.93.195 - - [04/Nov/2021:15:07:37 -0500] "GET /apps/cart.jsp?appID=4401 HTTP/1.0" 200 5008 +72.108.181.108 - - [04/Nov/2021:15:07:39 -0500] "GET /wp-content HTTP/1.0" 200 5020 +194.43.128.202 - - [04/Nov/2021:15:07:41 -0500] "GET /app/main/posts HTTP/1.0" 404 4943 +14.169.135.206 - - [04/Nov/2021:15:07:43 -0500] "DELETE /wp-content HTTP/1.0" 200 4985 +208.0.179.237 - - [04/Nov/2021:15:07:45 -0500] "GET /explore HTTP/1.0" 200 4953 +134.29.61.53 - - [04/Nov/2021:15:07:47 -0500] "GET /explore HTTP/1.0" 200 4937 +213.229.161.38 - - [04/Nov/2021:15:07:49 -0500] "PUT /posts/posts/explore HTTP/1.0" 200 5092 +82.41.77.121 - - [04/Nov/2021:15:07:51 -0500] "GET /app/main/posts HTTP/1.0" 200 5016 +``` + In order to simulate an application generating logs, a simple python script will be used. This script only runs with python 2. You can download this script by running ``` diff --git a/examples/log-ingestion/test.log b/examples/log-ingestion/test.log index c9bce851ad..8b13789179 100644 --- a/examples/log-ingestion/test.log +++ b/examples/log-ingestion/test.log @@ -1,14 +1 @@ -63.173.168.120 - - [04/Nov/2021:15:07:25 -0500] "GET /search/tag/list HTTP/1.0" 200 5003 -71.52.186.114 - - [04/Nov/2021:15:07:27 -0500] "GET /search/tag/list HTTP/1.0" 200 5015 -223.195.133.151 - - [04/Nov/2021:15:07:29 -0500] "GET /posts/posts/explore HTTP/1.0" 200 5049 -249.189.38.1 - - [04/Nov/2021:15:07:31 -0500] "GET /app/main/posts HTTP/1.0" 200 5005 -36.155.45.2 - - [04/Nov/2021:15:07:33 -0500] "GET /search/tag/list HTTP/1.0" 200 5001 -4.54.90.166 - - [04/Nov/2021:15:07:35 -0500] "DELETE /wp-content HTTP/1.0" 200 4965 -214.246.93.195 - - [04/Nov/2021:15:07:37 -0500] "GET /apps/cart.jsp?appID=4401 HTTP/1.0" 200 5008 -72.108.181.108 - - [04/Nov/2021:15:07:39 -0500] "GET /wp-content HTTP/1.0" 200 5020 -194.43.128.202 - - [04/Nov/2021:15:07:41 -0500] "GET /app/main/posts HTTP/1.0" 404 4943 -14.169.135.206 - - [04/Nov/2021:15:07:43 -0500] "DELETE /wp-content HTTP/1.0" 200 4985 -208.0.179.237 - - [04/Nov/2021:15:07:45 -0500] "GET /explore HTTP/1.0" 200 4953 -134.29.61.53 - - [04/Nov/2021:15:07:47 -0500] "GET /explore HTTP/1.0" 200 4937 -213.229.161.38 - - [04/Nov/2021:15:07:49 -0500] "PUT /posts/posts/explore HTTP/1.0" 200 5092 -82.41.77.121 - - [04/Nov/2021:15:07:51 -0500] "GET /app/main/posts HTTP/1.0" 200 5016 + From 21b427853e5a2f1c6fb3f817493eaa4f35a34fcf Mon Sep 17 00:00:00 2001 From: Taylor Gray <33740195+graytaylor0@users.noreply.github.com> Date: Fri, 12 Nov 2021 12:55:24 -0600 Subject: [PATCH 5/5] Added echo example to send a test log Signed-off-by: Taylor Gray <33740195+graytaylor0@users.noreply.github.com> --- examples/log-ingestion/log_ingestion_demo_guide.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/examples/log-ingestion/log_ingestion_demo_guide.md b/examples/log-ingestion/log_ingestion_demo_guide.md index 495c7c9123..e06f21af2b 100644 --- a/examples/log-ingestion/log_ingestion_demo_guide.md +++ b/examples/log-ingestion/log_ingestion_demo_guide.md @@ -77,6 +77,12 @@ Here is a sample batch of randomly generated Apache Logs if you choose to take t 82.41.77.121 - - [04/Nov/2021:15:07:51 -0500] "GET /app/main/posts HTTP/1.0" 200 5016 ``` +Additionally, if you just want to test a single log, you can send it to `test.log` directly with: + +``` +echo '63.173.168.120 - - [04/Nov/2021:15:07:25 -0500] "GET /search/tag/list HTTP/1.0" 200 5003' >> test.log +``` + In order to simulate an application generating logs, a simple python script will be used. This script only runs with python 2. You can download this script by running ```