Security index does not exist. Creating with alias – How to solve related issues

Opster Team

Feb-20, Version: 1.7-8.0

Before you begin reading this guide, we recommend you run Elasticsearch Error Check-Up which analyzes 2 JSON files to detect many errors.

Briefly, this error message indicates that the security index does not exist and needs to be created with an alias. The security index stores information about users and roles for Elasticsearch. To resolve the issue, the security index should be created with the required alias or Elasticsearch should be restarted.

To easily locate the root cause and resolve this issue try AutoOps for Elasticsearch & OpenSearch. It diagnoses problems by analyzing hundreds of metrics collected by a lightweight agent and offers guidance for resolving them. Take a self-guided product tour to see for yourself (no registration required).

This guide will help you check for common problems that cause the log ” Security index does not exist. Creating with alias ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: index and plugin.

Log Context

Log “security index does not exist. Creating [{}] with alias [{}]” classname is SecurityIndexManager.java.
We extracted the following from Elasticsearch source code for those seeking an in-depth context :

             } else if (indexState.indexExists() && indexState.isIndexUpToDate == false) {
                throw new IllegalStateException("Index [" + indexState.concreteIndexName + "] is not on the current version."
                        + "Security features relying on the index will not be available until the upgrade API is run on the index");
            } else if (indexState.indexExists() == false) {
                assert indexState.concreteIndexName != null;
                logger.info("security index does not exist. Creating [{}] with alias [{}]"; indexState.concreteIndexName; this.aliasName);
                final byte[] mappingSource = mappingSourceSupplier.get();
                final Tuple mappingAndSettings = parseMappingAndSettingsFromTemplateBytes(mappingSource);
                CreateIndexRequest request = new CreateIndexRequest(indexState.concreteIndexName)
                        .alias(new Alias(this.aliasName))
                        .mapping(MapperService.SINGLE_MAPPING_NAME; mappingAndSettings.v1(); XContentType.JSON)




 

Watch product tour

Try AutoOps to find & fix Elasticsearch problems

Analyze Your Cluster
Skip to content