GLPi

GLPI is an open source IT Asset Management, issue tracking system and service desk system.

Available solutions




This template is for Zabbix version: 7.4

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/glpi?at=release/7.4

GLPi webhook

Overview

This guide describes how to integrate your Zabbix installation with your GLPi installation using the Zabbix webhook feature, providing instructions on setting up a media type, user, and action in Zabbix.

This webhook creates problem records in the GLPi Assistance section. Created problems have the following urgency mapping:

Severity in Zabbix Urgency in GLPi
0 - Not classified Medium (default)
1 - Information Very low
2 - Warning Low
3 - Average Medium
4 - High High
5 - Disaster Very high
  • When a problem is updated in Zabbix, the webhook updates the problem's title and urgency in GLPi and adds a follow-up entry with the update comment.
  • When a problem is resolved in Zabbix, the webhook updates the problem's title and adds a follow-up entry with resolution details.
  • Created problems have the status "New" and resolved problems – "Solved".
  • Due to the specifics of the webhook, the number of retries is, by default, set to 1. We recommend not changing this setting; should a transaction error occur, additional duplicate objects (problems, followups) may be created during the retry.

Tested on

  • GLPI 10.0.18

Requirements

Zabbix version: 7.4 and higher.

Parameters

After importing the webhook, you can configure it using webhook parameters.

Configurable parameters

The configurable parameters are intended to be changed according to the webhook setup as well as the user's preferences and environment.

Name Value Description
zabbix_url {$ZABBIX.URL} Current Zabbix URL.
glpi_app_token GLPi application token (optional; specify if the token is set in the API client settings).
glpi_user_token <PLACE GLPI USER TOKEN> GLPi user token.
glpi_url <PLACE GLPI URL> URL of GLPi installation.

Internal parameters

Internal parameters are reserved for predefined macros that are not meant to be changed.

Name Value Description
event_source {EVENT.SOURCE} Numeric value of the event source. Possible values: 0 - Trigger, 1 - Discovery, 2 - Autoregistration, 3 - Internal, 4 - Service.
event_value {EVENT.VALUE} Numeric value of the event that triggered an action (1 for problem, 0 for recovering).
event_severity {EVENT.SEVERITY} Name of the event severity.
event_nseverity {EVENT.NSEVERITY} Numeric value of the event severity. Possible values: 0 - Not classified, 1 - Information, 2 - Warning, 3 - Average, 4 - High, 5 - Disaster.
event_update_nseverity {EVENT.UPDATE.NSEVERITY} Numeric value of the event update severity. Possible values: 0 - Not classified, 1 - Information, 2 - Warning, 3 - Average, 4 - High, 5 - Disaster.
event_update_severity {EVENT.UPDATE.SEVERITY} Name of the event update severity.
event_update_status {EVENT.UPDATE.STATUS} Numeric value of the problem update status. Possible values: 0 - Webhook was called because of problem/recovery event, 1 - Update operation.
alert_subject {ALERT.SUBJECT} 'Default subject' value from action configuration.
alert_message {ALERT.MESSAGE} 'Default message' value from action configuration.
event_id {EVENT.ID} Numeric ID of the event that triggered an action.
trigger_id {TRIGGER.ID} Numeric ID of the trigger of this action.
glpi_problem_id {EVENT.TAGS.__zbx_glpi_problem_id} GLPi problem ID.

Please be aware that each webhook supports an HTTP proxy. To use this feature, add a new media type parameter with the name http_proxy and set its value to the proxy URL.

Service setup

  1. Enable access to the GLPi REST API:
  • In the GLPi web interface, go to Setup > General > API.
  • Set the Enable Rest API and Enable Rest API options to Yes and click the Save button.

  1. Add a new API client:
  • Click the Add API client button.
  • Specify the API client name and set the Active option to Yes.
  • For security reasons, you may want to restrict the API client to the IP address of Zabbix server and/or create an additional application token (will be generated by default; you can uncheck the Regenerate checkbox if you don't want to use it).
  • Click the Add button.
  • If you've opted to create an application token, open the settings of the created API client, and then copy and save the generated application token.

  1. Create a new user profile with permissions to create problems and followups (alternatively, you can use an existing profile with sufficient privileges):
  • Go to Administration > Profiles and click the Add button on the top of the page.
  • Specify the profile name and set the Profile's Interface option to Standard Interface, and then click the Add button.
  • Open the created profile and click the Assistance tab.
  • Set the Add followup (requester) permission for the Followups line in the Followups/Tasks section.
  • Set the Update, Create, and See all permissions in the Problems section.
  • Click the Save button.

  1. Create a new user:
  • Go to Administration > Users and click the Add User button on the top of the page.
  • Specify the user login and set the Profiles option to the profile that you created in the previous step (or any other existing profile with permissions to create problems and followups).
  • Click the Add button.
  • Open the profile of the created user and check the Regenerate checkbox of the API token option; click Save.
  • Copy and save the generated user API token.

Zabbix configuration

  1. Before you can start using the GLPi webhook, you need to set up the global macro {$ZABBIX.URL}:
  • In the Zabbix web interface, go to Administration > Macros in the top-left drop-down menu.
  • Set up the global macro {$ZABBIX.URL} which will contain the URL to the Zabbix frontend. The URL should be either an IP address, a fully qualified domain name, or a localhost.
  • Specifying a protocol is mandatory, whereas the port is optional. Depending on the web server configuration, you might also need to append /zabbix to the end of URL. Good examples:
    • http://zabbix.com
    • https://zabbix.lan/zabbix
    • http://server.zabbix.lan/
    • http://localhost
    • http://127.0.0.1:8080
  • Bad examples:
    • zabbix.com
    • http://zabbix/

  1. Import the media type:
  1. Open the imported GLPi media type and set the following webhook parameters:
  • glpi_app_token - if you've opted to use an application token during the creation of API client, specify it here; otherwise leave it empty
  • glpi_url - the frontend URL of your GLPi installation
  • glpi_user_token - the user token that was generated during creation of GLPi user

  1. Click the Enabled checkbox to enable the media type and click the Update button to save the webhook settings.

  2. Create a Zabbix user and add media:

  • To create a new user, go to the Users > Users section and click the Create user button in the top-right corner. In the User tab, fill in all the required fields (marked with red asterisks).
  • In the Media tab, click Add and select GLPi from the Type drop-down list. Though the Send to field is not used in the GLPi webhook, it cannot be left empty. To comply with frontend requirements, enter any symbol in the field.
  • Make sure this user has access to all the hosts for which you would like problem notifications to be sent to GLPi.

  1. Done! You can now start using this media type in actions and create problem items in GLPi.

For more information, please see Zabbix and GLPi documentation.

Feedback

Please report any issues with the media type at https://support.zabbix.com.

You can also provide feedback, discuss the media type, or ask for help at ZABBIX forums.

Articles and documentation

+ Propose new article

Didn't find what you are looking for?