Beta-release of pending 1.0 version
- Basically a complete rewrite. This version is not yet ready for mass
consumption. Still pending are:- Zabbix 3.x template for 5.x ES versions.
- Installation scripts/config files
- Init scripts for the backend (SysV, Upstart)
- More documentation
- Make different templates for different Zabbix versions, if necessary.
- Testing this pre-release version requires a
git clone
and
python setup.py install
orpip install .
from the source directory.
New
- Flask-based backend listener that enables cached reads of the cluster
stats. This prevents repeated calls from completely hammering the cluster
with repeated stats calls. Currently intended to listen on localhost port
7600, so that the Zabbix UserParameter script can simply read localhost.
Cache timeout defaults to 60 seconds, and is configurable. - Use YAML based configuration.
- Elasticsearch configuration block
- Logging configuration block
- Backend configuration block
do_not_discover
block
- Uses update
es_stats
and newes_client
modules.es_client
allows monitoring of X-Pack secured Elasticsearch clusters
- Discovery based on value (
bool
for true/false,unsigned
for
Zabbix'sunsigned
integer values,float
, andcharacter
). This
allows Zabbix to automatically discover items for the correct item type. - Block individual endpoints from LLD by enumerating them in the
do_not_discover
block in the configuration file.
Other
- Fixed issues with the config_override function not behaving as expected.
- Pruned unnecessary code.
- Added unit and integration tests.
- Added endpoints
- Switched to using
setup.cfg
instead of everything insetup.py
- Add some backward compatibility.
- Compatibility testing with different versions of Elasticsearch (all 5.x and
6.x minor releases) and Python client versions (2.7, 3.5, 3.6) - Add
esz_nodes_discovery
for node related macros for discovery. - Add systemd service file.
- Full test of prototype template with discovery of cluster and nodes.
- Added
esz_cluster_discovery
for cluster related macros for LLD. - Added
run_display_endpoints.py
to show all endpoints for a given node.
This works better with--apidebug
enabled in the backend, as it pretty
prints the results. - Reworked the launch scripts to use similar code as much as possible.
- Moved a lot of classes and modules around.
- Template for ES 6.3 (may work for any 6.x).
- Default
config.yml
for Elasticsearch 6.x - Initial documentation created