You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yzl 93958d0fb0
zabbix6.0
1 year ago
..
README.md zabbix6.0 1 year ago
template_app_sharepoint_http.yaml zabbix6.0 1 year ago

README.md

Microsoft SharePoint by HTTP

Overview

This template is designed for the effortless deployment of Microsoft SharePoint monitoring by Zabbix via HTTP and doesn't require any external scripts.

SharePoint includes a Representational State Transfer (REST) service. Developers can perform read operations from their SharePoint Add-ins, solutions, and client applications, using REST web technologies and standard Open Data Protocol (OData) syntax. Details in https://docs.microsoft.com/ru-ru/sharepoint/dev/sp-add-ins/get-to-know-the-sharepoint-rest-service?tabs=csom

Requirements

Zabbix version: 7.0 and higher.

Tested versions

This template has been tested on:

  • SharePoint Server 2019

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

Create a new host. Define macros according to your Sharepoint web portal. It is recommended to fill in the values of the filter macros to avoid getting redundant data.

Macros used

Name Description Default
{$SHAREPOINT.USER}
{$SHAREPOINT.PASSWORD}
{$SHAREPOINT.URL}

Portal page URL. For example http://sharepoint.companyname.local/

{$SHAREPOINT.LLD.FILTER.NAME.MATCHES}

Filter of discoverable dictionaries by name.

.*
{$SHAREPOINT.LLD.FILTER.FULL_PATH.MATCHES}

Filter of discoverable dictionaries by full path.

^/
{$SHAREPOINT.LLD.FILTER.TYPE.MATCHES}

Filter of discoverable types.

FOLDER
{$SHAREPOINT.LLD.FILTER.NAME.NOT_MATCHES}

Filter to exclude discovered dictionaries by name.

CHANGE_IF_NEEDED
{$SHAREPOINT.LLD.FILTER.FULL_PATH.NOT_MATCHES}

Filter to exclude discovered dictionaries by full path.

CHANGE_IF_NEEDED
{$SHAREPOINT.LLD.FILTER.TYPE.NOT_MATCHES}

Filter to exclude discovered types.

CHANGE_IF_NEEDED
{$SHAREPOINT.ROOT} /Shared Documents
{$SHAREPOINT.LLD_INTERVAL} 3h
{$SHAREPOINT.GET_INTERVAL} 1m
{$SHAREPOINT.MAX_HEALT_SCORE}

Must be in the range from 0 to 10

in details: https://docs.microsoft.com/en-us/openspecs/sharepoint_protocols/ms-wsshp/c60ddeb6-4113-4a73-9e97-26b5c3907d33

5

Items

Name Description Type Key and additional info
Sharepoint: Get directory structure

Used to get directory structure information

Script sharepoint.get_dir

Preprocessing

  • Check for not supported value

    Custom on fail: Set value to: {"status":520,"data":{},"time":0}

Sharepoint: Get directory structure: Status

HTTP response (status) code. Indicates whether the HTTP request was successfully completed. Additional information is available in the server log file.

Dependent item sharepoint.get_dir.status

Preprocessing

  • JSON Path: $.status

    Custom on fail: Set error to: DISCARD_VALUE

  • Discard unchanged with heartbeat: 3h

Sharepoint: Get directory structure: Exec time

The time taken to execute the script for obtaining the data structure (in ms). Less is better.

Dependent item sharepoint.get_dir.time

Preprocessing

  • JSON Path: $.time

    Custom on fail: Set error to: DISCARD_VALUE

  • Discard unchanged with heartbeat: 3h

Sharepoint: Health score

This item specifies a value between 0 and 10, where 0 represents a low load and a high ability to process requests and 10 represents a high load and that the server is throttling requests to maintain adequate throughput.

HTTP agent sharepoint.health_score

Preprocessing

  • Regular expression: X-SharePointHealthScore\b:\s(\d+) \1

  • In range: 0 -> 10

    Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Triggers

Name Description Expression Severity Dependencies and additional info
Sharepoint: Error getting directory structure.

Error getting directory structure. Check the Zabbix server log for more details.

last(/Microsoft SharePoint by HTTP/sharepoint.get_dir.status)<>200 Warning Manual close: Yes
Sharepoint: Server responds slowly to API request last(/Microsoft SharePoint by HTTP/sharepoint.get_dir.time)>2000 Warning Manual close: Yes
Sharepoint: Bad health score last(/Microsoft SharePoint by HTTP/sharepoint.health_score)>"{$SHAREPOINT.MAX_HEALT_SCORE}" Average

LLD rule Directory discovery

Name Description Type Key and additional info
Directory discovery Script sharepoint.directory.discovery

Preprocessing

  • Discard unchanged with heartbeat: 6h

Item prototypes for Directory discovery

Name Description Type Key and additional info
Sharepoint: Size ({#SHAREPOINT.LLD.FULL_PATH})

Size of:

{#SHAREPOINT.LLD.FULL_PATH}

Dependent item sharepoint.size["{#SHAREPOINT.LLD.FULL_PATH}"]

Preprocessing

  • JSON Path: {{#SHAREPOINT.LLD.JSON_PATH}.regsub("(.*)", \1)}.meta.size

    Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Sharepoint: Modified ({#SHAREPOINT.LLD.FULL_PATH})

Date of change:

{#SHAREPOINT.LLD.FULL_PATH}

Dependent item sharepoint.modified["{#SHAREPOINT.LLD.FULL_PATH}"]

Preprocessing

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

    Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Sharepoint: Created ({#SHAREPOINT.LLD.FULL_PATH})

Date of creation:

{#SHAREPOINT.LLD.FULL_PATH}

Dependent item sharepoint.created["{#SHAREPOINT.LLD.FULL_PATH}"]

Preprocessing

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

    Custom on fail: Discard value

  • Discard unchanged with heartbeat: 3h

Trigger prototypes for Directory discovery

Name Description Expression Severity Dependencies and additional info
Sharepoint: Sharepoint object is changed

Updated date of modification of folder / file

last(/Microsoft SharePoint by HTTP/sharepoint.modified["{#SHAREPOINT.LLD.FULL_PATH}"],#1)<>last(/Microsoft SharePoint by HTTP/sharepoint.modified["{#SHAREPOINT.LLD.FULL_PATH}"],#2) Info 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