# 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](https://www.zabbix.com/documentation/7.0/manual/config/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**

| |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**

| |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**

| |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**

| ### 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**

| ### 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**

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

Date of change:

{#SHAREPOINT.LLD.FULL_PATH}

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

**Preprocessing**

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

Date of creation:

{#SHAREPOINT.LLD.FULL_PATH}

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

**Preprocessing**

| ### 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`](https://support.zabbix.com) You can also provide feedback, discuss the template, or ask for help at [`ZABBIX forums`](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback)