InfluxDB

InfluxDB is an open-source time series database developed by InfluxData. It is written in Go and optimized for fast, high-availability storage and retrieval of time series data in fields such as operations monitoring, application metrics, Internet of Things sensor data, and real-time analytics.

Dostupná řešení

Zabbix version 7.4 7.2 7.0 6.4 6.2 6.0 5.4
Download

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

  • Check for not supported value: any error

    ⛔️Custom on fail: Discard value

  • Prometheus to JSON
Instance status

Get the health of an instance.

HTTP agent influx.healthcheck

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Set value to: {"status":"fail"}]}

  • JavaScript: return JSON.parse(value).status == 'pass' ? 1: 0

  • Discard unchanged with heartbeat: 30m

Boltdb reads, rate

Total number of boltdb reads per second.

Dependent item influxdb.boltdb_reads.rate

Preprocessing

  • JSON Path: $[?(@.name=="boltdb_reads_total")].value.first()

    ⛔️Custom on fail: Discard value

  • Change per second
Boltdb writes, rate

Total number of boltdb writes per second.

Dependent item influxdb.boltdb_writes.rate

Preprocessing

  • JSON Path: $[?(@.name=="boltdb_writes_total")].value.first()

    ⛔️Custom on fail: Discard value

  • Change per second
Buckets, total

Number of total buckets on the server.

Dependent item influxdb.buckets.total

Preprocessing

  • JSON Path: $[?(@.name=="influxdb_buckets_total")].value.first()

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 30m

Dashboards, total

Number of total dashboards on the server.

Dependent item influxdb.dashboards.total

Preprocessing

  • JSON Path: $[?(@.name=="influxdb_dashboards_total")].value.first()

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 30m

Organizations, total

Number of total organizations on the server.

Dependent item influxdb.organizations.total

Preprocessing

  • JSON Path: $[?(@.name=="influxdb_organizations_total")].value.first()

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 30m

Scrapers, total

Number of total scrapers on the server.

Dependent item influxdb.scrapers.total

Preprocessing

  • JSON Path: $[?(@.name=="influxdb_scrapers_total")].value.first()

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 30m

Telegraf plugins, total

Number of individual telegraf plugins configured.

Dependent item influxdb.telegraf_plugins.total

Preprocessing

  • JSON Path: $[?(@.name=="influxdb_telegraf_plugins_count")].value.sum()

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 30m

Telegrafs, total

Number of total telegraf configurations on the server.

Dependent item influxdb.telegrafs.total

Preprocessing

  • JSON Path: $[?(@.name=="influxdb_telegrafs_total")].value.first()

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 30m

Tokens, total

Number of total tokens on the server.

Dependent item influxdb.tokens.total

Preprocessing

  • JSON Path: $[?(@.name=="influxdb_tokens_total")].value.first()

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 30m

Users, total

Number of total users on the server.

Dependent item influxdb.users.total

Preprocessing

  • JSON Path: $[?(@.name=="influxdb_users_total")].value.first()

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 30m

Version

Version of the InfluxDB instance.

Dependent item influxdb.version

Preprocessing

  • JSON Path: $[?(@.name=="influxdb_info")].labels.version.first()

  • Discard unchanged with heartbeat: 3h

Uptime

InfluxDB process uptime in seconds.

Dependent item influxdb.uptime

Preprocessing

  • JSON Path: $[?(@.name=="influxdb_uptime_seconds")].value.first()

Workers currently running

Total number of workers currently running tasks.

Dependent item influxdb.task_executor_runs_active.total

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

Workers busy, pct

Percent of total available workers that are currently busy.

Dependent item influxdb.task_executor_workers_busy.pct

Preprocessing

  • JSON Path: $[?(@.name=="task_executor_workers_busy")].value.first()

    ⛔️Custom on fail: Discard value

Task runs failed, rate

Total number of failure runs across all tasks.

Dependent item influxdb.task_executor_complete.failed.rate

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • Change per second
Task runs successful, rate

Total number of runs successful completed across all tasks.

Dependent item influxdb.task_executor_complete.successful.rate

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • Change per second

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

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

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

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • Change per second
[{#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

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • Change per second
[{#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

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • Change per second
[{#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

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • Change per second
[{#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

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • Change per second
[{#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

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • Change per second

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

Články a dokumentace

+ Navrhněte nový článek

Nenašli jste integraci, kterou potřebujete?