Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/influxdb_http?at=release/7.4
InfluxDB by HTTP
Overview
This template is designed for the effortless deployment of InfluxDB monitoring by Zabbix via HTTP and doesn't require any external scripts.
Requirements
Zabbix version: 7.4 and higher.
Tested versions
This template has been tested on:
- InfluxDB 2.0
 
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
This template works with self-hosted InfluxDB instances. Internal service metrics are collected from InfluxDB /metrics endpoint. For organization discovery template need to use Authorization via API token. See docs: https://docs.influxdata.com/influxdb/v2.0/security/tokens/
Don't forget to change the macros {$INFLUXDB.URL}, {$INFLUXDB.API.TOKEN}. Also, see the Macros section for a list of macros used to set trigger values. NOTE. Some metrics may not be collected depending on your InfluxDB instance version and configuration.
Macros used
| Name | Description | Default | 
|---|---|---|
| {$INFLUXDB.URL} | InfluxDB instance URL  | 
http://localhost:8086 | 
| {$INFLUXDB.API.TOKEN} | InfluxDB API Authorization Token  | 
|
| {$INFLUXDB.ORG_NAME.MATCHES} | Filter of discoverable organizations  | 
.* | 
| {$INFLUXDB.ORG_NAME.NOT_MATCHES} | Filter to exclude discovered organizations  | 
CHANGE_IF_NEEDED | 
| {$INFLUXDB.TASK.RUN.FAIL.MAX.WARN} | Maximum number of tasks runs failures for trigger expression.  | 
2 | 
| {$INFLUXDB.REQ.FAIL.MAX.WARN} | Maximum number of query requests failures for trigger expression.  | 
2 | 
Items
| Name | Description | Type | Key and additional info | 
|---|---|---|---|
| Get instance metrics | HTTP agent | influx.get_metrics Preprocessing 
  | 
|
| Instance status | Get the health of an instance.  | 
HTTP agent | influx.healthcheck Preprocessing 
  | 
| Boltdb reads, rate | Total number of boltdb reads per second.  | 
Dependent item | influxdb.boltdb_reads.rate Preprocessing 
  | 
| Boltdb writes, rate | Total number of boltdb writes per second.  | 
Dependent item | influxdb.boltdb_writes.rate Preprocessing 
  | 
| Buckets, total | Number of total buckets on the server.  | 
Dependent item | influxdb.buckets.total Preprocessing 
  | 
| Dashboards, total | Number of total dashboards on the server.  | 
Dependent item | influxdb.dashboards.total Preprocessing 
  | 
| Organizations, total | Number of total organizations on the server.  | 
Dependent item | influxdb.organizations.total Preprocessing 
  | 
| Scrapers, total | Number of total scrapers on the server.  | 
Dependent item | influxdb.scrapers.total Preprocessing 
  | 
| Telegraf plugins, total | Number of individual telegraf plugins configured.  | 
Dependent item | influxdb.telegraf_plugins.total Preprocessing 
  | 
| Telegrafs, total | Number of total telegraf configurations on the server.  | 
Dependent item | influxdb.telegrafs.total Preprocessing 
  | 
| Tokens, total | Number of total tokens on the server.  | 
Dependent item | influxdb.tokens.total Preprocessing 
  | 
| Users, total | Number of total users on the server.  | 
Dependent item | influxdb.users.total Preprocessing 
  | 
| Version | Version of the InfluxDB instance.  | 
Dependent item | influxdb.version Preprocessing 
  | 
| Uptime | InfluxDB process uptime in seconds.  | 
Dependent item | influxdb.uptime Preprocessing 
  | 
| Workers currently running | Total number of workers currently running tasks.  | 
Dependent item | influxdb.task_executor_runs_active.total Preprocessing 
  | 
| Workers busy, pct | Percent of total available workers that are currently busy.  | 
Dependent item | influxdb.task_executor_workers_busy.pct Preprocessing 
  | 
| Task runs failed, rate | Total number of failure runs across all tasks.  | 
Dependent item | influxdb.task_executor_complete.failed.rate Preprocessing 
  | 
| Task runs successful, rate | Total number of runs successful completed across all tasks.  | 
Dependent item | influxdb.task_executor_complete.successful.rate Preprocessing 
  | 
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info | 
|---|---|---|---|---|
| InfluxDB: Health check was failed | The InfluxDB instance is not available or unhealthy.  | 
last(/InfluxDB by HTTP/influx.healthcheck)=0 | 
High | |
| InfluxDB: Version has changed | InfluxDB version has changed. Acknowledge to close the problem manually.  | 
last(/InfluxDB by HTTP/influxdb.version,#1)<>last(/InfluxDB by HTTP/influxdb.version,#2) and length(last(/InfluxDB by HTTP/influxdb.version))>0 | 
Info | Manual close: Yes | 
| InfluxDB: Service has been restarted | Uptime is less than 10 minutes.  | 
last(/InfluxDB by HTTP/influxdb.uptime)<10m | 
Info | Manual close: Yes | 
| InfluxDB: Too many tasks failure runs | "Number of failure runs completed across all tasks is too high."  | 
min(/InfluxDB by HTTP/influxdb.task_executor_complete.failed.rate,5m)>{$INFLUXDB.TASK.RUN.FAIL.MAX.WARN} | 
Warning | 
LLD rule Organizations discovery
| Name | Description | Type | Key and additional info | 
|---|---|---|---|
| Organizations discovery | Discovery of organizations metrics.  | 
HTTP agent | influxdb.orgs.discovery Preprocessing 
  | 
Item prototypes for Organizations discovery
| Name | Description | Type | Key and additional info | 
|---|---|---|---|
| [{#ORG_NAME}] Query requests bytes, success | Count of bytes received with status 200 per second.  | 
Dependent item | influxdb.org.query_request_bytes.success.rate["{#ORG_NAME}"] Preprocessing 
  | 
| [{#ORG_NAME}] Query requests bytes, failed | Count of bytes received with status not 200 per second.  | 
Dependent item | influxdb.org.query_request_bytes.failed.rate["{#ORG_NAME}"] Preprocessing 
  | 
| [{#ORG_NAME}] Query requests, failed | Total number of query requests with status not 200 per second.  | 
Dependent item | influxdb.org.query_request.failed.rate["{#ORG_NAME}"] Preprocessing 
  | 
| [{#ORG_NAME}] Query requests, success | Total number of query requests with status 200 per second.  | 
Dependent item | influxdb.org.query_request.success.rate["{#ORG_NAME}"] Preprocessing 
  | 
| [{#ORG_NAME}] Query response bytes, success | Count of bytes returned with status 200 per second.  | 
Dependent item | influxdb.org.http_query_response_bytes.success.rate["{#ORG_NAME}"] Preprocessing 
  | 
| [{#ORG_NAME}] Query response bytes, failed | Count of bytes returned with status not 200 per second.  | 
Dependent item | influxdb.org.http_query_response_bytes.failed.rate["{#ORG_NAME}"] Preprocessing 
  | 
Trigger prototypes for Organizations discovery
| Name | Description | Expression | Severity | Dependencies and additional info | 
|---|---|---|---|---|
| InfluxDB: [{#ORG_NAME}]: Too many requests failures | Too many query requests failed.  | 
min(/InfluxDB by HTTP/influxdb.org.query_request.failed.rate["{#ORG_NAME}"],5m)>{$INFLUXDB.REQ.FAIL.MAX.WARN} | 
Warning | 
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums