An Elasticsearch Munin Plugin for monitoring Elasticsearch nodes. Written in Ruby, depends on JSON gem. Compatible with Elasticsearch 5.x–9.x.
- Monitors key Elasticsearch metrics: JVM heap usage, garbage collection stats, cache usage, document counts, operation rates, and store size.
- Supports multiple Elasticsearch nodes.
- Configurable via environment variables.
- Ensure you have Ruby and the JSON gem installed:
gem install json
- Download the plugin script and place it in your Munin plugins directory (e.g.,
/etc/munin/plugins/):wget https://raw.githubusercontent.com/janu-software/munin-elasticsearch/refs/heads/master/elasticsearch_ -O /etc/munin/plugins/elasticsearch_ chmod +x /etc/munin/plugins/elasticsearch_
- Create symlinks for each Elasticsearch node you want to monitor:
ln -s /etc/munin/plugins/elasticsearch_ /etc/munin/plugins/elasticsearch_jvm ln -s /etc/munin/plugins/elasticsearch_ /etc/munin/plugins/elasticsearch_docs ln -s /etc/munin/plugins/elasticsearch_ /etc/munin/plugins/elasticsearch_ops ln -s /etc/munin/plugins/elasticsearch_ /etc/munin/plugins/elasticsearch_cache ln -s /etc/munin/plugins/elasticsearch_ /etc/munin/plugins/elasticsearch_store ln -s /etc/munin/plugins/elasticsearch_ /etc/munin/plugins/elasticsearch_gc ln -s /etc/munin/plugins/elasticsearch_ /etc/munin/plugins/elasticsearch_gc_time
- Restart the Munin node to apply changes:
service munin-node restart
Create configuration files in /etc/munin/plugin-conf.d/ to specify the Elasticsearch nodes to monitor. Example configuration:
[elasticsearch*]
env.host localhost
env.port 9200
env.node es01,es02,es03
env.user munin
env.pass SecurePass123
env.scheme https
env.verify_ssl false