This repository includes Aiven's OpenSearch Apache Kafka® Connector for Apache Kafka®.
The project originates from Aiven's elasticsearch-connector-for-apache-kafka. The code was forked and all classes were renamed.
- Install and Run Kafka (https://kafka.apache.org/quickstart)
- Install and Run Kafka Connect (https://kafka.apache.org/documentation/#connect_running)
- Install and Run OpenSearch (https://opensearch.org/docs/latest/install-and-configure/install-opensearch/index/)
- If OpenSearch is running on SSL, make sure to copy the credentials and copy them to woker properties as mentioned in Quickstart guide below
- Install Aiven's OpenSearch® Sink Connector (see below)
- Connector plugins are packaged in zip/tar format to be released
- Users download plugins from GitHub releases or build binaries from source
- Users place connector plugins on Connect worker instances and add them via configuration
- Start creating connectors using installed plugins
Binaries are included on every release as zip/tar files: https://github.com/aiven/opensearch-connector-for-apache-kafka/releases/latest
Execute gradle task to build binaries:
./gradlew installDist
# or ./gradlew assembleDist to package binaries
This produces an output on build/install
directory with the plugin binaries to add into Connect cluster.
Place unpacked binaries into a directory on each Connect worker node, e.g. /kafka-connect-plugins
.
In this case, place opensearch-connector-for-kafka
into /kafka-connect-plugins
:
/kafka-connect-plugins
└── opensearch-connector-for-apache-kafka
Then, on each connect worker configuration make sure to add /kafka-connect-plugins
to the plugin.path
configuration:
plugin.path=/kafka-connect-plugins
Once placed on each worker node, start the workers and check the plugins installed and check the plugin (with the correct version) is included:
# Go to connector rest api
curl http://localhost:8083/connector-plugins | jq .
[
...
{
"class": "io.aiven.kafka.connect.opensearch.OpensearchSinkConnector",
"type": "sink",
"version": "3.3.0"
},
...
]
OpenSearch® Sink Connector Configuration Options
- Ensure that the required software is installed and running
- Add OpenSearch Sink connector to Kafka Connect: Follow the 'How to install' instructions to add the OpenSearch sink connector to Kafka Connect. Example worker config is located here https://github.com/Aiven-Open/opensearch-connector-for-apache-kafka/blob/main/config/quickstart-opensearch.properties
- Verify plugin installation : Visit http://localhost:8083/connectors to confirm that the OpenSearch sink connector is listed
- Check ACLs (If Enabled): If ACLs are enabled on Kafka, ensure there are no authorization exceptions for the topic and group resources. Example of adding acls : https://kafka.apache.org/documentation/#security_authz_examples
- Produce Events: Produce JSON-formatted events to the Kafka topic specified in the worker properties.
- Index Creation: An index will be created in OpenSearch with the same name as the Kafka topic.
- Create Index Pattern: Create an index pattern in OpenSearch.
- Discover Events: Events produced to the Kafka topic can now be discovered in OpenSearch.
- Trouble shooting: If there are any deserialization errors in the connector logs, try setting schema.ignore to true.
The project is licensed under the Apache 2 license. See LICENSE.
Apache Kafka, Apache Kafka Connect are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
OpenSearch is a trademark and property of its respective owners. All product and service names used in this website are for identification purposes only and do not imply endorsement.