Connection Issues Without Compatibility Mode
By default, Easysearch does not enable Elasticsearch compatibility features. If you attempt to connect Filebeat directly, the connection will fail with the error: "could not connect to a compatible version of Elasticsearch." This indicates that Filebeat cannot recognize the Easysearch version as a compatible Elasticsearch cluster.
Enabling Basic API Compatibility
Easysearch 1.9.0 offers specific parameters to handle Elasticsearch compatibility. First, enable the primary compatibility flag in your Easysearch configuration.
elasticsearch.api_compatibility: true
# elasticsearch.api_compatibility_version: "8.9.0"
After restarting the service, Filebeat will detect the server version as 7.10.2. While it successfully imports the Index Lifecycle Management (ILM) policy, the process eventually fails because Filebeat cannot import the requried index templates.
Disablinng Template Import in Filebeat
To bypass the template import failure, modify the Filebeat configuraton file filebeat.yml to disable automatic template setup.
setup.template.enabled: false
With this change, Filebeat establishes a successful connection to Easysearch and begins writing data correctly.
Configuring Specific Compatibility Version
Easysearch allows you to simulate a specific Elasticsearch version by enabling both compatibility parameters.
elasticsearch.api_compatibility: true
elasticsearch.api_compatibility_version: "8.9.0"
After clearing previous test data, start Filebeat again. The client will now detect the cluster version as 8.9.0. Similar to the previous configuration, template import must remain disabled for the connection to succeed. Once connected, data ingestion functions as expected.
It is mandatory to enable elasticsearch.api_compatibility; otherwise, Easysearch reports its native version (1.9.0), leading to connection rejection. For Easysearch versions prior to 1.9.0, using a gateway proxy is recommended to handle the compatibility layer.