在选择我们的消息传递系统使用的替代品时,我遇到了对Mattermost的描述,并决定尝试一下。 所描述的系统的优点之一是其与第三方服务的简单集成,即所谓的“挂钩”(发送和接收挂钩)。 那是关于通过挂钩与外部系统建立交互,本文将是(在我们的特殊情况下,它是zabbix和glpi)。
第一部分 与GLPI集成
由于我们在工作中使用GLPI来说明设备,软件,连接,技术支持电话的注册,因此合理地组织用户从最重要的角度将应用程序发送到TP的可能性。
API
GLPI具有用于与外部服务集成的http rest api。 可在已安装的系统中的链接http://glpi/apirest.php/#glossary (其中“ glpi”是服务器的地址)上找到该文档的文档。
对任务进行了仔细考虑后,决定在php上实现交换算法,此解决方案的一个优点是php已经安装在系统中,并且脚本已有机地输入到glpi中,并且可从http://glpi/mm.php获得 。 结果是一种“代理”,它从最重要的方面接收请求,转换为所需的格式并发送GLPI。 所有http请求均以JSON格式发送。
工作程序包括5个部分:
- 从最重要的方面接收请求
- glpi中的会话初始化
- 从请求中检索数据
- 将数据发送到glpi
- 闭幕会议
在继续描述脚本代码之前,我们将在最重要的方面和glpi中进行准备工作。
格里菲
- 让我们创建一个代表要创建请求的帮助台用户,并进入该用户的设置,我们将生成令牌:

用红色圈起来的一个将是user_token。 - 在系统设置中,您需要添加客户端以与API进行交互。 为此,请转到“设置”->“常规”->“ API”,然后单击“添加客户端”按钮,添加一条记录并生成令牌(app_token)

- 要识别系统中的请求源,请在目录“请求源”中添加一个条目,然后进入刚刚添加的条目中,记住其ID(用红色圈出)

这样就完成了GLPI中的API设置。
最重要的
在“最重要的客户端”菜单中,转到“ Inegration”->“ Outgoing Webhooks”,单击“ Add”并添加一个条目。 在屏幕上,我强调了重要的领域。 在这里,我们应该做个题外话:最重要的是,用于启动发送请求过程的“触发器”是单词或短语,在消息的开头表示该单词或短语实际上是在启动过程。 在我们的例子中,触发词是“ 112”(这里与紧急部有直接联系)。

可以添加默认用户名和头像的链接(或您不能添加它),因为这些参数将在请求中传输。 但是,为了能够处理这些参数,在服务器设置中,您需要在文件/opt/mattermost/config/config.json中更改几个选项。
"EnablePostUsernameOverride": true, "EnablePostIconOverride": true,
这样就完成了设置。 现在该继续编写代码了。 该脚本将与glpi文件一起复制到根目录,在我的情况下为/var/www/html/glpi/mm.php
<?php
该脚本的结果将是GLPI中事件登记系统中的一个附加请求。 在图片中,它看起来像这样:
我们最重要的是写一条消息:

我们转到GLPI“支持”->“应用程序”,新消息应出现在列表中:

通过单击消息标题,将打开更多详细信息(其值在脚本中传输的字段以红色圈出)

在此设置下,可以认为从Mattermost向GLPI发送消息已经完成。 在代码上做了一些工作之后,没有什么会阻止您实现对请求类型(事件或请求)的更改。