Skip to content

mkevenaar/ObjectFirst.Zabbix

Repository files navigation

Object First OOTBI Cluster by HTTP

Overview

This template is designed to monitor an Object First OOTBI Cluster.

Requirements

Zabbix version: 7.0 and higher.

Tested versions

This template has been tested on Object First OOTBI 1.5.54.10104 (VSA).

Setup

  1. Create a user to monitor the service or use an existing user.
  2. Link the template to a host.
  3. Configure the following macros: {$OOTBI.API.URL}, {$OOTBI.USER}, and {$OOTBI.PASSWORD}.

Screenshots

Items

Triggers

Discovery

Macros used

Name Description Default
{$OOTBI.API.URL} The OOTBI Cluster endpoint is a URL in the format <scheme>://<host>:<port>. https://localhost:8443
{$OOTBI.HTTP.PROXY} Sets the HTTP proxy to http_proxy value. If this parameter is empty, then no proxy is used.
{$OOTBI.PASSWORD} The password of the Object First OOTBI Cluster account. It is used to obtain an access token.
{$OOTBI.USER} The username of the Object First OOTBI Cluster account. It is used to obtain an access token.
{$OOTBI.DATA.TIMEOUT} A response timeout for the API. 10

Items

Name Description Type Key and additional info
Get metrics The result of API requests is expressed in the JSON. Script ootbi.get.metrics
Get errors The errors from API requests. Dependent item ootbi.get.errors
Preprocessing
  • JSON Path: $.error⛔️Custom on fail: Set value to
  • Discard unchanged with heartbeat: 1h
Cluster Status Get the cluster status Dependent item ootbi.get.cluster.status
Preprocessing
  • JSON Path: $.clusters.members[:].status
  • Discard unchanged with heartbeat: 1h

Triggers

Name Description Expression Severity Dependencies and additional info
Object First OOTBI: Cluster is not healthy

Cluster reports it's not healthy. Please inspect the cluster.

find(/Object First OOTBI Cluster by HTTP/ootbi.get.cluster.status,,"like","\"OK\"")=0 High
Object First OOTBI: There are errors in requests to API

Zabbix has received errors in response to API requests.

length(last(/Object First OOTBI Cluster by HTTP/ootbi.get.errors))>0 Average

LLD rule Node discovery

Name Description Type Key and additional info
Node discovery

Discovery of cluster nodes.

Dependent item ootbi.node.discovery

Preprocessing

  • JSON Path: $.clusters.members[:].nodes[:]

  • Discard unchanged with heartbeat: 6h

Item prototypes for Node discovery

Name Description Type Key and additional info
Node [{#NAME}]: Get data

Gets raw data from the node [{#NAME}].

Dependent item ootbi.node.raw[{#ID}]

Preprocessing

  • JSON Path: $.clusters.members[:].nodes.[?(@.id=='{#ID}')].first()

Node [{#NAME}]: Host Name

The name of the cluster node.

Dependent item ootbi.node.name[{#NAME}]

Preprocessing

  • JSON Path: $.name

Node [{#NAME}]: State

The state of the cluster node.

Dependent item ootbi.node.state[{#NAME}]

Preprocessing

  • JSON Path: $.state

Node [{#NAME}]: Uptime

The uptime of the cluster node.

Dependent item ootbi.node.uptime[{#NAME}]

Preprocessing

  • JSON Path: $.uptimeInSec

Trigger prototypes for Node discovery

Name Description Expression Severity Dependencies and additional info
Object First OOTBI: {#NAME} Cluster node not healthy find(/Object First OOTBI Cluster by HTTP/ootbi.node.state[{#NAME}],,"like","OK")=0 Average Manual close: Yes
Object First OOTBI: {#NAME} Cluster node restarted (uptime < 10m) last(/Object First OOTBI Cluster by HTTP/ootbi.node.uptime[{#NAME}])<10m Average Manual close: Yes

Feedback

Please report any issues with the template by opening an Issue on GitHub

About

Object First OOTBI Zabbix Monitoring

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published