Parse data using an ingest pipeline
Elastic Cloud Serverless projects are autoscaled environments, fully managed by Elastic and available on Elastic Cloud. Availability This functionality is generally available and ready for production usage. Serverless interfaces and procedures might differ from classic Elastic Stack deployments. The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats. Availability This functionality is generally available and ready for production usage. Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.
Serverless
Generally available
Stack
Generally available
When you use Elasticsearch for output, you can configure Metricbeat to use an ingest pipeline to pre-process documents before the actual indexing takes place in Elasticsearch. An ingest pipeline is a convenient processing option when you want to do some extra processing on your data, but you do not require the full power of Logstash. For example, you can create an ingest pipeline in Elasticsearch that consists of one processor that removes a field in a document followed by another processor that renames a field.
After defining the pipeline in Elasticsearch, you simply configure Metricbeat to use the pipeline. To configure Metricbeat, you specify the pipeline ID in the parameters option under elasticsearch in the metricbeat.yml file:
output.elasticsearch:
hosts: ["localhost:9200"]
pipeline: my_pipeline_id
For example, let’s say that you’ve defined the following pipeline in a file named pipeline.json:
{
"description": "Test pipeline",
"processors": [
{
"lowercase": {
"field": "agent.name"
}
}
]
}
To add the pipeline in Elasticsearch, you would run:
curl -H 'Content-Type: application/json' -XPUT 'http://localhost:9200/_ingest/pipeline/test-pipeline' -d@pipeline.json
Then in the metricbeat.yml file, you would specify:
output.elasticsearch:
hosts: ["localhost:9200"]
pipeline: "test-pipeline"
When you run Metricbeat, the value of agent.name is converted to lowercase before indexing.
For more information about defining a pre-processing pipeline, see the ingest pipeline documentation.