iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0

設定通報管道

在 Zabbix 中,新增一 MediaType,使用 Webhook 方式來完成。

  1. 在 [Alerts] > [Media types] 中,點選 [Create media type]

    CleanShot 2023-12-25 at 10.41.56@2x

  2. 設定 [Media type] 項目,Type 選擇 Webhook,將 URL 設定為要通知的位置(通常是 Web 應用程式)

    圖片

    上圖中之 Script 區段,填入以下項目

    var req = new HttpRequest();
    var params = JSON.parse(value);
    
    Zabbix.Log(127, "webhook request value=" + value);
    
    url = params.URL;
    
    // Send message to Webhook
    req.addHeader('Content-Type: application/x-www-form-urlencoded');
    resp = req.post(
        url,
        "message=" + params.Message
    );
    
    
    // Get Webhook status
    Zabbix.Log(127, "response code: " + req.getStatus());
    
    return JSON.stringify({ tags: { delivered: resp } });
    

建立接收通報程式

@Desktop

安裝必要套件

root# dnf install -y httpd php php-fpm php-json
root# systemctl enable --now httpd
root# mkdir /var/www/html/uploads/
root# chown apache /var/www/html/uploads/

編輯通報程式,使用 PHP 完成

root# vi /var/www/html/recv.php
<?php

$timestamp = date("Y-m-d H:i:s");

$str = json_encode($_POST);

$finalStr = $timestamp . "\t" . $str . "\n";

file_put_contents("./uploads/message.txt", $finalStr, FILE_APPEND);

?>

測試

@Zabbix

  • 在 Media type 中,點選 class_webhook 後方的 [Test],執行 [Test]

    圖片

@Desktop

使用 Firefox 查看檔案

Firefox: http://desktopX/uploads/message.txt

圖片

可使用的變數


上一篇
Day18: Zabbix 通報情境
下一篇
Day20: Zabbix 設定通報關連與測試
系列文
Zabbix 7.0 LTS: 洞察系統運作狀態,一套搞定31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言