# 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.0 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](https://www.zabbix.com/documentation/7.0/manual/config/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| |----|-----------|----|-----------------------| |InfluxDB: Get instance metrics||HTTP agent|influx.get_metrics

**Preprocessing**

| |InfluxDB: Instance status|

Get the health of an instance.

|HTTP agent|influx.healthcheck

**Preprocessing**

| |InfluxDB: Boltdb reads, rate|

Total number of boltdb reads per second.

|Dependent item|influxdb.boltdb_reads.rate

**Preprocessing**

| |InfluxDB: Boltdb writes, rate|

Total number of boltdb writes per second.

|Dependent item|influxdb.boltdb_writes.rate

**Preprocessing**

| |InfluxDB: Buckets, total|

Number of total buckets on the server.

|Dependent item|influxdb.buckets.total

**Preprocessing**

| |InfluxDB: Dashboards, total|

Number of total dashboards on the server.

|Dependent item|influxdb.dashboards.total

**Preprocessing**

| |InfluxDB: Organizations, total|

Number of total organizations on the server.

|Dependent item|influxdb.organizations.total

**Preprocessing**

| |InfluxDB: Scrapers, total|

Number of total scrapers on the server.

|Dependent item|influxdb.scrapers.total

**Preprocessing**

| |InfluxDB: Telegraf plugins, total|

Number of individual telegraf plugins configured.

|Dependent item|influxdb.telegraf_plugins.total

**Preprocessing**

| |InfluxDB: Telegrafs, total|

Number of total telegraf configurations on the server.

|Dependent item|influxdb.telegrafs.total

**Preprocessing**

| |InfluxDB: Tokens, total|

Number of total tokens on the server.

|Dependent item|influxdb.tokens.total

**Preprocessing**

| |InfluxDB: Users, total|

Number of total users on the server.

|Dependent item|influxdb.users.total

**Preprocessing**

| |InfluxDB: Version|

Version of the InfluxDB instance.

|Dependent item|influxdb.version

**Preprocessing**

| |InfluxDB: Uptime|

InfluxDB process uptime in seconds.

|Dependent item|influxdb.uptime

**Preprocessing**

| |InfluxDB: Workers currently running|

Total number of workers currently running tasks.

|Dependent item|influxdb.task_executor_runs_active.total

**Preprocessing**

| |InfluxDB: Workers busy, pct|

Percent of total available workers that are currently busy.

|Dependent item|influxdb.task_executor_workers_busy.pct

**Preprocessing**

| |InfluxDB: Task runs failed, rate|

Total number of failure runs across all tasks.

|Dependent item|influxdb.task_executor_complete.failed.rate

**Preprocessing**

| |InfluxDB: 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: 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| |----|-----------|----|-----------------------| |InfluxDB: [{#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**

| |InfluxDB: [{#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**

| |InfluxDB: [{#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**

| |InfluxDB: [{#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**

| |InfluxDB: [{#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**

| |InfluxDB: [{#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`](https://support.zabbix.com) You can also provide feedback, discuss the template, or ask for help at [`ZABBIX forums`](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback)