Change-Id: I25a9e33497d5cc6205c269ba8cc0db427827486f
Related-Bug: PROD-26666
--- /dev/null
+#!/bin/bash
+{%- from "elasticsearch/map.jinja" import server with context %}
+{%- set bind = server.get('bind', {}) %}
+val=$(curl --silent -XGET {{ bind.address|default('127.0.0.1') }}:{{ bind.port|default(9200) }}/_all/_settings?pretty=true|grep -c -e "\"read_only_allow_delete\" : \"true\"")
+echo "{ \"elasticsearch_indices_read_only_allow_delete\": ${val} }"
summary: "Elasticsearch cluster status is RED"
description: "The Elasticsearch cluster status is RED for 2 minutes."
{%- endraw %}
summary: "Elasticsearch cluster status is RED"
description: "The Elasticsearch cluster status is RED for 2 minutes."
{%- endraw %}
+ ElasticsearchIndicesInReadOnlyMode:
+ if: >-
+ exec_elasticsearch_indices_read_only_allow_delete > 0
+ {%- raw %}
+ for: 2m
+ labels:
+ severity: critical
+ service: elasticsearch
+ annotations:
+ summary: "Elasticsearch indices are read-only"
+ description: "The Elasticsearch service has indices in read-only mode for 2 minutes."
+ {%- endraw %}
{%- endif %}
{%- if server.get('enabled', False) %}
ElasticsearchServiceDown:
{%- endif %}
{%- if server.get('enabled', False) %}
ElasticsearchServiceDown:
cluster_health: false
cluster_stats: true
local: true
cluster_health: false
cluster_stats: true
local: true
+ exec:
+ commands:
+ - "/usr/local/bin/elasticsearch_check_read_only.sh"
+ interval: "30s"
+ timeout: "15s"
+ data_format: "json"
{%- endif %}
{%- if client.get('enabled', False) %}
{%- endif %}
{%- if client.get('enabled', False) %}
- pkg: elasticsearch_packages
{%- endif %}
- pkg: elasticsearch_packages
{%- endif %}
+{%- if server.version == 6 %}
+elasticsearch_telegraf_exec_plugin_script:
+ file.managed:
+ - name: /usr/local/bin/elasticsearch_check_read_only.sh
+ - source: salt://elasticsearch/files/v{{ server.version }}/es_check_read_only.sh
+ - template: jinja
+ - mode: 755
+{%- endif %}
+
{%- if server.version in [5, 6] %}
elasticsearch_logging:
file.managed:
{%- if server.version in [5, 6] %}
elasticsearch_logging:
file.managed: