This template is designed to monitor 'etcd' by Zabbix that works without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.

The template 'Etcd by HTTP' — collects metrics by help of the HTTP agent from '/metrics' endpoint.

Refer to the vendor documentation:
https://etcd.io/docs/v3.5/op-guide/monitoring/#metrics-endpoint

For the users of 'etcd version <= 3.4':

In 'etcd v3.5' some metrics have been deprecated. See more details on 'Upgrade etcd from 3.4 to 3.5':
https://etcd.io/docs/v3.4/upgrades/upgrade_3_5/
Please upgrade your 'etcd' instance, or use older 'Etcd by HTTP' template version.

Setup:

1. Make sure that 'etcd' allows the collection of metrics. You can test it by running:
curl -L http://localhost:2379/metrics

2. Check if 'etcd' is accessible from Zabbix proxy or Zabbix server depending on where you are planning to do the monitoring. To verify it, run:
curl -L  http://<etcd_node_address>:2379/metrics

3. Add the template to the 'etcd' node. Set the hostname or IP address of the 'etcd' host in the '{$ETCD.HOST}' macro. By default, the template uses a client's port.
You can configure metrics endpoint location by adding '--listen-metrics-urls' flag.

For more details, see the etcd documentation:
https://etcd.io/docs/v3.5/op-guide/configuration/#profiling-and-monitoring

Additional points to consider:

- If you have specified a non-standard port for 'etcd', don't forget to change macros: '{$ETCD.SCHEME}' and '{$ETCD.PORT}'.
- You can set '{$ETCD.USERNAME}' and '{$ETCD.PASSWORD}' macros in the template to use on a host level if necessary.
- To test availability, run : 'zabbix_get -s etcd-host -k etcd.health'.

Generated by official Zabbix template tool "Templator"