Module: LogStash::Outputs::ElasticSearch::Ilm

Included in:
LogStash::Outputs::ElasticSearch
Defined in:
lib/logstash/outputs/elasticsearch/ilm.rb

Constant Summary collapse

ILM_POLICY_PATH =
"default-ilm-policy.json"

Instance Method Summary collapse

Instance Method Details

#ilm_in_use?Boolean

Returns:

  • (Boolean)


13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/logstash/outputs/elasticsearch/ilm.rb', line 13

def ilm_in_use?
  return @ilm_actually_enabled if defined?(@ilm_actually_enabled)
  @ilm_actually_enabled =
    begin
      if serverless?
        raise LogStash::ConfigurationError, "Invalid ILM configuration `ilm_enabled => true`. " +
          "Serverless Elasticsearch cluster does not support Index Lifecycle Management." if @ilm_enabled.to_s == 'true'
        @logger.info("ILM auto configuration (`ilm_enabled => auto` or unset) resolved to `false`. "\
          "Serverless Elasticsearch cluster does not support Index Lifecycle Management.") if @ilm_enabled == 'auto'
        false
      elsif @ilm_enabled == 'auto'
        if ilm_on_by_default?
          ilm_alias_set?
        else
          @logger.info("ILM auto configuration (`ilm_enabled => auto` or unset) resolved to `false`."\
            " Elasticsearch cluster is before 7.0.0, which is the minimum version required to automatically run Index Lifecycle Management")
          false
        end
      elsif @ilm_enabled.to_s == 'true'
        ilm_alias_set?
      else
        false
      end
    end
end

#setup_ilmObject



6
7
8
9
10
11
# File 'lib/logstash/outputs/elasticsearch/ilm.rb', line 6

def setup_ilm
  logger.warn("Overwriting supplied index #{@index} with rollover alias #{@ilm_rollover_alias}") unless default_index?(@index)
  @index = @ilm_rollover_alias
  maybe_create_rollover_alias
  maybe_create_ilm_policy
end