Added check for read-only indices in ESv6

Change-Id: I25a9e33497d5cc6205c269ba8cc0db427827486f
Related-Bug: PROD-26666
diff --git a/elasticsearch/files/v6/es_check_read_only.sh b/elasticsearch/files/v6/es_check_read_only.sh
new file mode 100755
index 0000000..55098f3
--- /dev/null
+++ b/elasticsearch/files/v6/es_check_read_only.sh
@@ -0,0 +1,5 @@
+#!/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} }"
diff --git a/elasticsearch/meta/prometheus.yml b/elasticsearch/meta/prometheus.yml
index 46ab505..6d0445f 100644
--- a/elasticsearch/meta/prometheus.yml
+++ b/elasticsearch/meta/prometheus.yml
@@ -28,6 +28,18 @@
         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:
diff --git a/elasticsearch/meta/telegraf.yml b/elasticsearch/meta/telegraf.yml
index 6ccac3f..2fc3166 100644
--- a/elasticsearch/meta/telegraf.yml
+++ b/elasticsearch/meta/telegraf.yml
@@ -13,6 +13,12 @@
       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) %}
diff --git a/elasticsearch/server/init.sls b/elasticsearch/server/init.sls
index e8ae754..273e214 100644
--- a/elasticsearch/server/init.sls
+++ b/elasticsearch/server/init.sls
@@ -42,6 +42,15 @@
     - 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: