-Import "elasticsearch_cluster"
+Import "collectd_elasticsearch_cluster"
-<Module "elasticsearch_cluster">
+<Module "collectd_elasticsearch_cluster">
Address "{{ plugin.address }}"
Port "{{ plugin.port }}"
</Module>
--- /dev/null
+Import "collectd_elasticsearch_node"
+
+<Module "collectd_elasticsearch_node">
+ Address "{{ plugin.address }}"
+ Port "{{ plugin.port }}"
+</Module>
-{%- if pillar.elasticsearch.server is defined %}
+{%- if pillar.elasticsearch.server is defined or pillar.elasticsearch.client is defined %}
{%- from "elasticsearch/map.jinja" import server with context %}
+{%- from "elasticsearch/map.jinja" import client with context %}
{%- if server.get('enabled', False) %}
local_plugin:
- elasticsearch_cluster:
+ elasticsearch_node:
plugin: python
- template: elasticsearch/files/collectd_elasticsearch_cluster.conf
- address: {{ server.get('bind', {}).get('address', '127.0.0.1') }}
+ template: elasticsearch/files/collectd_elasticsearch_node.conf
+ address: {{ server.get('bind', {}).get('address', '127.0.0.1')|replace('0.0.0.0', '127.0.0.1') }}
port: {{ server.get('bind', {}).get('port', 9200) }}
collectd_processes:
process:
elasticsearch:
match: 'java.*elasticsearch'
{%- endif %}
+{%- if client.get('enabled', False) %}
+remote_plugin:
+ elasticsearch_cluster:
+ plugin: python
+ template: elasticsearch/files/collectd_elasticsearch_cluster.conf
+ address: {{ client.server.host }}
+ port: {{ client.server.get('port', 9200) }}
+{%- endif %}
{%- endif %}
window: 60
periods: 0
function: last
+ alarm:
+ elasticsearch_check:
+ alerting: enabled
+ triggers:
+ - elasticsearch_check
+ dimension:
+ service: elasticsearch-node
+remote_collector:
+ trigger:
+ elasticsearch_cluster_check:
+ description: 'Elasticsearch cluster cannot be checked'
+ severity: down
+ rules:
+ - metric: elasticsearch_cluster_check
+ relational_operator: '=='
+ threshold: 0
+ window: 60
+ periods: 0
+ function: last
elasticsearch_health_critical:
description: 'Elasticsearch cluster health is critical'
severity: critical
window: 60
function: min
alarm:
- elasticsearch_check:
- alerting: enabled
- triggers:
- - elasticsearch_check
- dimension:
- service: elasticsearch
- elasticsearch_health:
+ elasticsearch_cluster_health:
alerting: enabled
triggers:
+ - elasticsearch_cluster_check
- elasticsearch_health_critical
- elasticsearch_health_warning
dimension:
- cluster: elasticsearch
+ service: elasticsearch-cluster
aggregator:
alarm_cluster:
elasticsearch_service:
alerting: enabled
group_by: hostname
match:
- service: elasticsearch
+ service: elasticsearch-node
members:
- elasticsearch_check
dimension:
- service: elasticsearch-cluster
+ service: elasticsearch
nagios_host: 01-service-clusters
elasticsearch_cluster:
policy: highest_severity
alerting: enabled
match:
- cluster: elasticsearch
+ service: elasticsearch-cluster
members:
- - elasticsearch_health
+ - elasticsearch_cluster_health
dimension:
- service: elasticsearch-cluster
+ service: elasticsearch
nagios_host: 01-service-clusters
elasticsearch:
policy: highest_severity
alerting: enabled_with_notification
match:
- service: elasticsearch-cluster
+ service: elasticsearch
members:
- elasticsearch_service
- elasticsearch_cluster