zabbix-agent-extension-elasticsearch - this extension for monitoring Elasticsearch cluster and node health/status.
This extension obtains stats of two types:
https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html
- roles
- attributes
- indices (partly)
- os
- processes
- jvm
- thread_pool
- fs
- transport
- http
- breakers
- script
- discovery
- ingest
https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html
- cluster_name
- status
- timed_out
- number_of_nodes
- number_of_data_nodes
- total indices docs count
- total indices deleted docs count
- primary indices docs count
- primary indices deleted docs count
- total indices store size
- primary indices store size
- active_primary_shards
- active_shards
- relocating_shards
- initializing_shards
- unassigned_shards
- delayed_unassigned_shards
- number_of_pending_tasks
- number_of_in_flight_fetch
- task_max_waiting_in_queue_millis
- active_shards_percent_as_number
Before manual installation you should check Include
option in your zabbix-agent
configuration, it should be uncomment and check that include path are the same with this installation rule - https://github.com/zarplata/zabbix-agent-extension-elasticsearch/blob/master/Makefile#L54 otherwise you should change it to your include path.
After installation you should restart your zabbix-agent
manually for inclusion new UserParameter
from extension configuration.
# Building
git clone https://github.com/zarplata/zabbix-agent-extension-elasticsearch.git
cd zabbix-agent-extension-elasticsearch
make
#Installing
make install
# By default, binary installs into /usr/bin/ and zabbix config in /etc/zabbix/zabbix_agentd.conf.d/ but,
# you may manually copy binary to your executable path and zabbix config to specific include directory
# Building
git clone https://github.com/zarplata/zabbix-agent-extension-elasticsearch.git
git checkout pkgbuild
./build.sh
#Installing
pacman -U *.tar.xz
zabbix-agent-extension-elasticsearch requires zabbix-agent v2.4+ to run.
In order to start getting metrics, it is enough to import template and attach it to monitored node.
WARNING:
You must define macro with name - {$ZABBIX_SERVER_IP}
in global or local (template) scope with IP address of zabbix server.
On one node of cluster set MACRO {$GROUPNAME}
= REAL_ZABBIX_GROUP
. This group must include all nodes of the cluster.
Only this one node will be triggered cluster status (low level discovery added aggregate checks of cluster health).
It may you need if key in template already used.
If you need change key elasticsearch.*
-> YOUR_PREFIX_PART.elasticsearch.*
, run script custom_key_template.sh
whit YOUR_PREFIX_PART
and import updated zabbix template template_elasticsearch_service.xml
.
./custom_key_template.sh YOUR_PREFIX_PART
This extension support basic authentication which provided by X-Pack. For authentication in Elasticsearch you must set valid values in template macros - ${ES_USER}
and ${ES_PASSWORD}
You can customize you Elasticsearch listen address.
Just change{$ES_ADDRESS}
macros in template.
Possible values are - (http|https)://host:port
Be note if you choose https
and have self-signed certificate you also should add path to you CA in marcos {$CA_PATH}