VEEAM

Veeam Software is a privately held US-based information technology company that develops backup, disaster recovery and intelligent data management software for virtual, physical and multi-cloud infrastructures.

Available solutions




This template is for Zabbix version: 6.2
Also available for: 6.0

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/veeam/backup_replication_http?at=release/6.2

Veeam Backup and Replication by HTTP

Overview

This template is designed to monitor Veeam Backup and Replication version 11.0. It works without any external scripts and uses the script item.

Requirements

For Zabbix version: 6.2 and higher.

Setup

See Zabbix template operation for basic instructions.

  1. Create a user to monitor the service or use an existing read-only account.

    See Veeam Help Center for more details.

  2. Link the template to a host.
  3. Configure macros {$VEEAM.API.URL}, {$VEEAM.USER}, and {$VEEAM.PASSWORD}.

Configuration

No specific Zabbix configuration is required.

Macros used

Name Description Default
{$CREATED.AFTER}

Returns sessions that are created after chosen days.

7
{$JOB.NAME.MATCHES}

This macro is used in discovery rule to evaluate the states of jobs.

.*
{$JOB.NAME.NOT_MATCHES}

This macro is used in discovery rule to evaluate the states of jobs.

CHANGE_IF_NEEDED
{$JOB.STATUS.MATCHES}

This macro is used in discovery rule to evaluate the states of jobs.

.*
{$JOB.STATUS.NOT_MATCHES}

This macro is used in discovery rule to evaluate the states of jobs.

CHANGE_IF_NEEDED
{$JOB.TYPE.MATCHES}

This macro is used in discovery rule to evaluate the states of jobs.

.*
{$JOB.TYPE.NOT_MATCHES}

This macro is used in discovery rule to evaluate the states of jobs.

CHANGE_IF_NEEDED
{$PROXIES.NAME.MATCHES}

This macro is used in proxies discovery rule.

.*
{$PROXIES.NAME.NOT_MATCHES}

This macro is used in proxies discovery rule.

CHANGE_IF_NEEDED
{$PROXIES.TYPE.MATCHES}

This macro is used in proxies discovery rule.

.*
{$PROXIES.TYPE.NOT_MATCHES}

This macro is used in proxies discovery rule.

CHANGE_IF_NEEDED
{$REPOSITORIES.NAME.MATCHES}

This macro is used in repositories discovery rule.

.*
{$REPOSITORIES.NAME.NOT_MATCHES}

This macro is used in repositories discovery rule.

CHANGE_IF_NEEDED
{$REPOSITORIES.TYPE.MATCHES}

This macro is used in repositories discovery rule.

.*
{$REPOSITORIES.TYPE.NOT_MATCHES}

This macro is used in repositories discovery rule.

CHANGE_IF_NEEDED
{$SESSION.NAME.MATCHES}

This macro is used in discovery rule to evaluate sessions.

.*
{$SESSION.NAME.NOT_MATCHES}

This macro is used in discovery rule to evaluate sessions.

CHANGE_IF_NEEDED
{$SESSION.TYPE.MATCHES}

This macro is used in discovery rule to evaluate sessions.

.*
{$SESSION.TYPE.NOT_MATCHES}

This macro is used in discovery rule to evaluate sessions.

CHANGE_IF_NEEDED
{$VEEAM.API.URL}

The Veeam API endpoint is a URL in the format <scheme>://<host>:<port>.

https://localhost:9419
{$VEEAM.DATA.TIMEOUT}

A response timeout for the API.

10
{$VEEAM.HTTP.PROXY}

Sets the HTTP proxy to http_proxy value. If this parameter is empty, then no proxy is used.

``
{$VEEAM.PASSWORD}

The password of the Veeam Backup and Replication account. It is used to obtain an access token.

``
{$VEEAM.USER}

The username of the Veeam Backup and Replication account. It is used to obtain an access token.

``

Template links

There are no template links in this template.

Discovery rules

Name Description Type Key and additional info
Jobs states discovery

Discovery of the jobs states.

DEPENDENT veeam.job.state.discovery

Preprocessing:

- JSONPATH: $.jobs_states.data

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Filter:

AND

- {#TYPE} MATCHES_REGEX {$JOB.TYPE.MATCHES}

- {#TYPE} NOT_MATCHES_REGEX {$JOB.TYPE.NOT_MATCHES}

- {#NAME} MATCHES_REGEX {$JOB.NAME.MATCHES}

- {#NAME} NOT_MATCHES_REGEX {$JOB.NAME.NOT_MATCHES}

- {#JOB.STATUS} MATCHES_REGEX {$JOB.STATUS.MATCHES}

- {#JOB.STATUS} NOT_MATCHES_REGEX {$JOB.STATUS.NOT_MATCHES}

Proxies discovery

Discovery of proxies.

DEPENDENT veeam.proxies.discovery

Preprocessing:

- JSONPATH: $.proxies.data

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Filter:

AND

- {#TYPE} MATCHES_REGEX {$PROXIES.TYPE.MATCHES}

- {#TYPE} NOT_MATCHES_REGEX {$PROXIES.TYPE.NOT_MATCHES}

- {#NAME} MATCHES_REGEX {$PROXIES.NAME.MATCHES}

- {#NAME} NOT_MATCHES_REGEX {$PROXIES.NAME.NOT_MATCHES}

Repositories discovery

Discovery of repositories.

DEPENDENT veeam.repositories.discovery

Preprocessing:

- JSONPATH: $.repositories_states.data

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Filter:

AND

- {#TYPE} MATCHES_REGEX {$REPOSITORIES.TYPE.MATCHES}

- {#TYPE} NOT_MATCHES_REGEX {$REPOSITORIES.TYPE.NOT_MATCHES}

- {#NAME} MATCHES_REGEX {$REPOSITORIES.NAME.MATCHES}

- {#NAME} NOT_MATCHES_REGEX {$REPOSITORIES.NAME.NOT_MATCHES}

Sessions discovery

Discovery of sessions.

DEPENDENT veeam.sessions.discovery

Preprocessing:

- JSONPATH: $.sessions.data

- JAVASCRIPT

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Filter:

AND

- {#TYPE} MATCHES_REGEX {$SESSION.TYPE.MATCHES}

- {#TYPE} NOT_MATCHES_REGEX {$SESSION.TYPE.NOT_MATCHES}

- {#NAME} MATCHES_REGEX {$SESSION.NAME.MATCHES}

- {#NAME} NOT_MATCHES_REGEX {$SESSION.NAME.NOT_MATCHES}

Items collected

Group Name Description Type Key and additional info
Veeam Veeam: Get metrics

The result of API requests is expressed in the JSON.

SCRIPT veeam.get.metrics

Expression:

The text is too long. Please see the template.
Veeam Veeam: Get errors

The errors from API requests.

DEPENDENT veeam.get.errors

Preprocessing:

- JSONPATH: $.error

⛔️ON_FAIL: CUSTOM_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Veeam Veeam: Server [{#NAME}]: Get data

Gets raw data collected by the proxy server.

DEPENDENT veeam.proxy.server.raw[{#NAME}]

Preprocessing:

- JSONPATH: $.managedServers.data.[?(@.id=='{#HOSTID}')].first()

Veeam Veeam: Proxy [{#NAME}] [{#TYPE}]: Get data

Gets raw data collected by the proxy with the name [{#NAME}], [{#TYPE}].

DEPENDENT veeam.proxy.raw[{#NAME}]

Preprocessing:

- JSONPATH: $.proxies.data.[?(@.id=='{#ID}')].first()

Veeam Veeam: Proxy [{#NAME}] [{#TYPE}]: Max Task Count

The maximum number of concurrent tasks.

DEPENDENT veeam.proxy.maxtask[{#NAME}]

Preprocessing:

- JSONPATH: $.server.maxTaskCount

Veeam Veeam: Proxy [{#NAME}] [{#TYPE}]: Host name

The name of the proxy server.

DEPENDENT veeam.proxy.server.name[{#NAME}]

Preprocessing:

- JSONPATH: $.name

Veeam Veeam: Proxy [{#NAME}] [{#TYPE}]: Host type

The type of the proxy server.

DEPENDENT veeam.proxy.server.type[{#NAME}]

Preprocessing:

- JSONPATH: $.type

Veeam Veeam: Repository [{#NAME}] [{#TYPE}]: Get data

Gets raw data from repository with the name: [{#NAME}], [{#TYPE}].

DEPENDENT veeam.repositories.raw[{#NAME}]

Preprocessing:

- JSONPATH: $.repositories_states.data.[?(@.id=='{#ID}')].first()

Veeam Veeam: Repository [{#NAME}] [{#TYPE}]: Used space [{#PATH}]

Used space by repositories expressed in gigabytes (GB).

DEPENDENT veeam.repository.capacity[{#NAME}]

Preprocessing:

- JSONPATH: $.usedSpaceGB

Veeam Veeam: Repository [{#NAME}] [{#TYPE}]: Free space [{#PATH}]

Free space of repositories expressed in gigabytes (GB).

DEPENDENT veeam.repository.free.space[{#NAME}]

Preprocessing:

- JSONPATH: $.freeGB

Veeam Veeam: Session [{#NAME}] [{#TYPE}]: Get data

Gets raw data from session with the name: [{#NAME}], [{#TYPE}].

DEPENDENT veeam.sessions.raw[{#ID}]

Preprocessing:

- JSONPATH: $.sessions.data.[?(@.id=='{#ID}')].first()

⛔️ON_FAIL: DISCARD_VALUE ->

Veeam Veeam: Session [{#NAME}] [{#TYPE}]: State

The state of the session. The enums used: Stopped, Starting, Stopping, Working, Pausing, Resuming, WaitingTape, Idle, Postprocessing, WaitingRepository, WaitingSlot.

DEPENDENT veeam.sessions.state[{#ID}]

Preprocessing:

- JSONPATH: $.state

Veeam Veeam: Session [{#NAME}] [{#TYPE}]: Result

The result of the session. The enums used: None, Success, Warning, Failed.

DEPENDENT veeam.sessions.result[{#ID}]

Preprocessing:

- JSONPATH: $.result.result

Veeam Veeam: Session [{#NAME}] [{#TYPE}]: Message

A message that explains the session result.

DEPENDENT veeam.sessions.message[{#ID}]

Preprocessing:

- JSONPATH: $.result.message

Veeam Veeam: Session progress percent [{#NAME}] [{#TYPE}]

The progress of the session expressed as percentage.

DEPENDENT veeam.sessions.progress.percent[{#ID}]

Preprocessing:

- JSONPATH: $.progressPercent

Veeam Veeam: Job states [{#NAME}] [{#TYPE}]: Get data

Gets raw data from the job states with the name [{#NAME}].

DEPENDENT veeam.jobs.states.raw[{#ID}]

Preprocessing:

- JSONPATH: $.jobs_states.data.[?(@.id=='{#ID}')].first()

Veeam Veeam: Job states [{#NAME}] [{#TYPE}]: Status

The current status of the job. The enums used: running, inactive, disabled.

DEPENDENT veeam.jobs.status[{#ID}]

Preprocessing:

- JSONPATH: $.status

Veeam Veeam: Job states [{#NAME}] [{#TYPE}]: Last result

The result of the session. The enums used: None, Success, Warning, Failed.

DEPENDENT veeam.jobs.last.result[{#ID}]

Preprocessing:

- JSONPATH: $.lastResult

Triggers

Name Description Expression Severity Dependencies and additional info
Veeam: There are errors in requests to API

Zabbix has received errors in response to API requests.

length(last(/Veeam Backup and Replication by HTTP/veeam.get.errors))>0 AVERAGE
Veeam: Last result session failed

-

find(/Veeam Backup and Replication by HTTP/veeam.sessions.result[{#ID}],,"like","Failed")=1 AVERAGE

Manual close: YES

Veeam: Last result job failed

-

find(/Veeam Backup and Replication by HTTP/veeam.jobs.last.result[{#ID}],,"like","Failed")=1 AVERAGE

Manual close: YES

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.

Articles and documentation

+ Propose new article

Nenašli jste integraci, kterou potřebujete?