12 KiB
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 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
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums