Skip to content

mkevenaar/ObjectFirst.Zabbix

Repository files navigation

Object First OOTBI Cluster by HTTP

Version Released GitHub Releases (all releases) Changelog

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. Download the latest release
  2. Create a user to monitor the service or use an existing user.
  3. Create a host with the name of your cluster and link the Object First OOTBI Cluster by HTTP template to it.
  4. Configure the following macros: {$OOTBI.API.URL}, {$OOTBI.CLUSTER.ID}, {$OOTBI.USER}, and {$OOTBI.PASSWORD} (details)

Template: Object First OOTBI Cluster by HTTP

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

Screenshots for Object First OOTBI Cluster by HTTP

Items

Triggers

Discovery

Macros for Object First OOTBI Cluster by HTTP

Name Description Default
{$OOTBI.API.URL} The OOTBI Cluster endpoint is a URL or IP in the format <scheme>://<host>:<port>. This needs to be the pointing to the Service Point of your OOTBI Cluster https://localhost:8443
{$OOTBI.CLUSTER.ID} The OOTBI Cluster ID (UUID). The Cluster UUID can be found in Settings. Optional, defaults to first cluster.
{$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 for Object First OOTBI Cluster by HTTP

Name Description Type Key and additional info
Cluster Status Get the cluster status Dependent item ootbi.get.cluster.status
Preprocessing
  • JSON Path: $.cluster.status
  • Discard unchanged with heartbeat: 1h
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
Get metrics The result of API requests is expressed in the JSON. Script ootbi.get.metrics

Triggers for Object First OOTBI Cluster by HTTP

Name Description Expression Severity Dependencies and additional info
Object First OOTBI: Cluster status critical

Cluster reports its status is critical. Please inspect the cluster.

find(/Object First OOTBI Cluster by HTTP/ootbi.get.cluster.status,,"like","CRITICAL")=1 High
Object First OOTBI: Cluster status warning

Cluster reports its status is warning. Please inspect the cluster.

find(/Object First OOTBI Cluster by HTTP/ootbi.get.cluster.status,,"like","WARNING")=1 Average
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: $.cluster.nodes[:]

  • Discard unchanged with heartbeat: 6h

Host Prototypes for Node discovery

Name Templates Host Groups Macros
{#NAME} Object First OOTBI Host by HTTP Object First
  • {$OOTBI.HOST.ID}
  • {#ID}
  • The OOTBI Host ID. This is discovered automatically

Template: Object First OOTBI Host by HTTP

This template is designed to monitor an Object First OOTBI Host and will automatically be attached to hosts discovered from your cluster.

Screenshots for Object First OOTBI Host by HTTP

Items

Triggers

Discovery

Macros for Object First OOTBI Host by HTTP

Name Description Default
{$OOTBI.API.URL} The OOTBI Cluster endpoint is a URL or IP in the format <scheme>://<host>:<port>. This needs to be the pointing to the Service Point of your OOTBI Cluster Inherited from Object First OOTBI Cluster by HTTP, customizable
{$OOTBI.CLUSTER.ID} The OOTBI Cluster ID (UUID). The Cluster UUID can be found in Settings. Optional, defaults to first cluster. Inherited from Object First OOTBI Cluster by HTTP, customizable
{$OOTBI.HTTP.PROXY} Sets the HTTP proxy to http_proxy value. If this parameter is empty, then no proxy is used. Inherited from Object First OOTBI Cluster by HTTP, customizable
{$OOTBI.PASSWORD} The password of the Object First OOTBI Cluster account. It is used to obtain an access token. Inherited from Object First OOTBI Cluster by HTTP, customizable
{$OOTBI.USER} The username of the Object First OOTBI Cluster account. It is used to obtain an access token. Inherited from Object First OOTBI Cluster by HTTP, customizable
{$OOTBI.DATA.TIMEOUT} A response timeout for the API. Inherited from Object First OOTBI Cluster by HTTP, customizable
{$OOTBI.HOST.ID} The OOTBI Host ID. This is discovered automatically Set by Object First OOTBI Cluster by HTTP, customizable

Items for Object First OOTBI Host by HTTP

Name Description Type Key and additional info
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
Get metrics The result of API requests is expressed in the JSON. Script ootbi.get.metrics
Global Disks Status Get the global disk status Dependent item ootbi.get.disk.status
Preprocessing
  • JSON Path: $.disks.status
  • Discard unchanged with heartbeat: 1h
Host Status Get the host status. Dependent item ootbi.get.host.status
Preprocessing
  • JSON Path: $.hosts.members.[?(@.id=='{$OOTBI.HOST.ID}')].status.first()
  • Discard unchanged with heartbeat: 1h
Uptime The uptime of the node. Dependent item ootbi.get.host.uptime
Preprocessing
  • JSON Path: $.hosts.members.[?(@.id=='{$OOTBI.HOST.ID}')].uptimeInSec.first()

Triggers for Object First OOTBI Host by HTTP

Name Description Expression Severity Dependencies and additional info
Object First OOTBI: Disks status critical

The cluster reports that the host has disks that are in a critical state. Please inspect the host.

find(/Object First OOTBI Host by HTTP/ootbi.get.disk.status,,"like","critical")=1 High
Object First OOTBI: Disks status warning

The cluster reports that the host has disks that are warning. Please inspect the host.

find(/Object First OOTBI Host by HTTP/ootbi.get.disk.status,,"like","warning")=1 Average
Object First OOTBI: Host status is critical

The cluster reports that the host status is critical. Please inspect the host.

find(/Object First OOTBI Host by HTTP/ootbi.get.host.status,,"like","Critical")=1 High
Object First OOTBI: Host status is offline

The cluster reports that the host status is offline. Please inspect the host.

find(/Object First OOTBI Host by HTTP/ootbi.get.host.status,,"like","Offline")=1 Disaster
Object First OOTBI: Host status is unknown

The cluster reports that the host status is unknown. Please inspect the host.

find(/Object First OOTBI Host by HTTP/ootbi.get.host.status,,"like","Unknown")=1 Warning
Object First OOTBI: Host status is warning

The cluster reports that the host status is warning. Please inspect the host.

find(/Object First OOTBI Host by HTTP/ootbi.get.host.status,,"like","Warning")=1 Average
Object First OOTBI: Node restarted (uptime < 10m)

The cluster node's uptime is less than 10 minutes.

last(/Object First OOTBI Host by HTTP/ootbi.get.host.uptime)<10 Average
Object First OOTBI: There are errors in requests to API

Zabbix has received errors in response to API requests.

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

LLD rule Disk Discovery

Name Description Type Key and additional info
Disk Discovery

Discovery of node disks.

Dependent item ootbi.host.disk.discovery

Preprocessing

  • JSON Path: $.disks.disks

  • Discard unchanged with heartbeat: 6h

Item prototypes for Disk Discovery

Name Description Type Key and additional info
Disk [{#SLOT}]: Get data

Gets raw data from the disk in slot [{#SLOT}].

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

Preprocessing

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

Disk Status

The status of the disk.

Dependent item ootbi.disk.status[{#SLOT}]

Preprocessing

  • JSON Path: $.status

Trigger prototypes for Disk Discovery

Name Description Expression Severity Dependencies and additional info
Object First OOTBI: Disk in slot {#SLOT} status critical

The Disk in {#SLOT} has a critical status. Please check the disk in bay {#BAY}. Please download the support bundle and contact Object First Support.

find(/Object First OOTBI Host by HTTP/ootbi.disk.status[{#SLOT}],,"like","critical")=1 High Manual close: Yes
Object First OOTBI: Disk in slot {#SLOT} status warning

The Disk in {#SLOT} has a warning status. Please check the disk in bay {#BAY}. Please download the support bundle and contact Object First Support.

find(/Object First OOTBI Host by HTTP/ootbi.disk.status[{#SLOT}],,"like","warning")=1 Average Manual close: Yes

Feedback

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