Memilih pengganti yang digunakan oleh sistem pesan kami, saya menemukan deskripsi Mattermost, dan memutuskan untuk mencobanya. Salah satu keuntungan dari sistem yang dijelaskan adalah integrasi sederhana dengan layanan pihak ketiga, yang disebut "kait" (kait keluar dan masuk). Itu tentang mengatur interaksi melalui kait dengan sistem eksternal dan artikel ini akan (dalam kasus khusus kami, ini adalah zabbix dan glpi).
Bagian Satu Integrasi dengan GLPI
Karena kami, dalam pekerjaan kami, menggunakan GLPI untuk menghitung peralatan, perangkat lunak, koneksi, pendaftaran panggilan dukungan teknis, akan logis untuk mengatur kemungkinan bagi pengguna untuk mengirim aplikasi ke TP dari yang paling penting.
API
GLPI memiliki http rest api untuk integrasi dengan layanan eksternal. Dokumentasi untuk itu tersedia di sistem yang diinstal di tautan http: //glpi/apirest.php/#glossary (di mana "glpi" adalah alamat server Anda).
Setelah berpikir sedikit tentang tugas, diputuskan untuk mengimplementasikan algoritma pertukaran pada php, mendukung solusi ini adalah fakta bahwa php sudah diinstal dalam sistem dan skrip secara organik dimasukkan ke dalam glpi dan tersedia di http: //glpi/mm.php . Hasilnya adalah semacam "proxy" yang menerima permintaan dari mattermost, mengonversi ke format yang diinginkan dan mengirimkan GLPI. Semua permintaan http dikirim dalam format JSON.
Prosedur kerja terdiri dari 5 bagian:
- Menerima permintaan dari yang paling penting
- Inisialisasi sesi di glpi
- Mengambil data dari permintaan
- Mengirim data ke glpi
- Sesi penutup
Sebelum melanjutkan dengan uraian kode skrip, kami akan melakukan pekerjaan persiapan baik dalam hal paling penting maupun di gpi.
GLPI
- Mari kita buat pengguna helpdesk, atas permintaan yang akan dibuat, dan masuk ke pengaturan pengguna ini, kami akan menghasilkan token:

Yang dilingkari merah akan menjadi user_token. - Di pengaturan sistem, Anda perlu menambahkan klien untuk berinteraksi dengan API. Untuk melakukan ini, buka "Pengaturan" -> "Umum" -> "API" dan klik tombol "Tambah Klien", tambahkan catatan dan hasilkan token (app_token)

- Untuk mengidentifikasi sumber permintaan dalam sistem, tambahkan entri ke direktori "Sumber permintaan" dan masuk ke entri yang baru saja ditambahkan, ingat idnya (dilingkari merah)

Ini menyelesaikan pengaturan API di GLPI.
Paling penting
Di menu klien Mattermost, buka "Inegration" -> "Outhooks Webshooks" klik "Tambah" dan tambahkan entri. Di layar, saya menekankan bidang yang signifikan. Di sini kita harus melakukan penyimpangan: pada intinya, "pemicu" untuk memulai prosedur pengiriman permintaan adalah kata atau frasa, yang, yang ditunjukkan pada awal pesan, sebenarnya memulai proses. Dalam kasus kami, kata pemicunya adalah "112" (di sini ada hubungan langsung dengan Kementerian Keadaan Darurat).

Nama pengguna default dan tautan ke avatar dapat ditambahkan (atau Anda tidak dapat menambahkannya), karena parameter ini akan ditransfer dalam permintaan. Tetapi agar hal terpenting untuk dapat memproses parameter ini, dalam pengaturan server Anda perlu mengubah beberapa opsi dalam file /opt/mattermost/config/config.json
"EnablePostUsernameOverride": true, "EnablePostIconOverride": true,
Ini menyelesaikan pengaturan. Saatnya beralih ke menulis kode. Script disalin ke direktori root dengan file glpi, dalam kasus saya ini adalah /var/www/html/glpi/mm.php
<?php
Hasil skrip ini akan menjadi permintaan tambahan dalam sistem pendaftaran insiden di GLPI. Dalam gambar, terlihat seperti ini:
Kami menulis pesan paling penting:

Kami pergi ke GLPI "Dukungan" -> "Aplikasi" dan pesan baru akan muncul dalam daftar:

Dengan mengklik tajuk pesan, informasi yang lebih detail akan terbuka (bidang yang nilainya ditransmisikan dalam skrip dilingkari merah)

Pada pengaturan ini, mengirim pesan ke GLPI dari Mattermost dapat dianggap selesai. Setelah bekerja sedikit pada kode, tidak ada yang akan mencegah Anda menerapkan perubahan dalam jenis permintaan (insiden atau permintaan).