OpenSearch - ArchWiki

Jump to content

# OpenSearch

From ArchWiki

From Wikipedia:OpenSearch (software):

  OpenSearch is a family of software consisting of a search engine (also named OpenSearch), and OpenSearch Dashboards, a data visualization dashboard for that search engine. The software started in 2021 as a fork of Elasticsearch and Kibana, with development led by Amazon Web Services.

## Installation

Install the opensearch package.

Various plugins are listed as optional dependencies which can be installed according to your needs. If you are using opensearch-dashboards remember to install the corresponding Dashboards plugins.

## Running

If you do not have a keystore at `/etc/opensearch/opensearch.keystore`, you need to create one before starting OpenSearch:

    # opensearch-keystore create

Afterwards, you can start/enable `opensearch.service`.

Ensure OpenSearch is running and accessible by using curl, `curl '<protocol>://<host>:<port>'`:

    curl http://127.0.0.1:9200

    {
      "name" : "opensearch.example.net",
      "cluster_name" : "opensearch",
      "cluster_uuid" : "TRylpzbsQB-Nk2KgktTQtA",
      "version" : {
        "number" : "7.10.2",
        "build_type" : "tar",
        "build_hash" : "unknown",
        "build_date" : "2022-01-07T15:57:30.358290Z",
        "build_snapshot" : false,
        "lucene_version" : "8.10.1",
        "minimum_wire_compatibility_version" : "6.8.0",
        "minimum_index_compatibility_version" : "6.0.0-beta1"
      },
      "tagline" : "The OpenSearch Project: https://opensearch.org/"
    }

## Configuration

The main OpenSearch configuration file is well-documented and located at `/etc/opensearch/opensearch.yml`. The official documentation should prove helpful as well.

- By default OpenSearch is public accessible, it may be preferred to allow only access on the host instead:

    network.host: 127.0.0.1

- It is possible to use a custom port instead of the default `9200`:

    http.port: 9200

## Usage

The OpenSearch server management (document maintenance, performing search, etc.) is usually done by clients that should provide a seamless integration with the preferred programming language.

Useful tools to manage OpenSearch instances and clusters like opensearch-dashboards and opensearch-cli are also available to simplify management.

## Upgrading from Elasticsearch OSS

To upgrade multi-node clusters of Elasticsearch OSS to OpenSearch one should consult the official guide.

For standalone nodes it might suffice to copy any configuration changes and move the index data to its new location:

Stop `elasticsearch.service`

    # cp -r /var/lib/elasticsearch/nodes /var/lib/opensearch/
    # chown opensearch:opensearch -R /var/lib/opensearch

Start `opensearch.service`

## Compatibility with Beats OSS

Beats agents like filebeat are not compatible with OpenSearch in newer versions, the official documentation provides compatibility tables. Versions `7.13.X` and above will not work and all `7.X` versions need a workaround in the configuration:

    /etc/opensearch/opensearch.yml

    [...]
    compatibility.override_main_response_version: true
    [...]

This will make OpenSearch return `7.10.2` as its version number.

Agent versions compatible with the above workaround are provided in the AUR:

- metricbeat-ossAUR
- filebeat-ossAUR
- packetbeat-ossAUR
- heartbeat-ossAUR
- auditbeat-ossAUR
- journalbeat-ossAUR

Category:

- Database management systems