---
title: "การเชื่อมต่อ Zabbix - แจ้งเตือนโครงสร้างพื้นฐาน"
sidebarTitle: Zabbix
description: เชื่อม Zabbix เข้ากับ Echobell ด้วย media type แบบ webhook แล้วรับการแจ้งเตือนหรือสายโทรเข้าเมื่อทริกเกอร์ทำงาน
---

import { Step, Steps } from "fumadocs-ui/components/steps";

[Zabbix](https://www.zabbix.com/) เป็นแพลตฟอร์มมอนิเตอร์โอเพนซอร์สสำหรับเครือข่าย เซิร์ฟเวอร์ และแอปพลิเคชัน media type แบบ webhook จะส่งการแจ้งเตือนของมันไปยังแชนเนล Echobell

<Steps>
<Step>
    ### สร้างแชนเนล
    สร้างแชนเนลใหม่ใน Echobell แล้วคัดลอก **Webhook URL** ของมัน
</Step>
<Step>
    ### สร้าง media type แบบ webhook
    ใน Zabbix ไปที่ **Alerts** → **Media types** → **Create media type** ตั้ง **Type** เป็น `Webhook` และตั้งชื่อว่า "Echobell" จากนั้นเพิ่มพารามิเตอร์ต่อไปนี้

    | Name | Value |
    | --- | --- |
    | `url` | `{ALERT.SENDTO}` |
    | `title` | `{ALERT.SUBJECT}` |
    | `body` | `{ALERT.MESSAGE}` |
    | `host` | `{HOST.NAME}` |
    | `severity` | `{EVENT.SEVERITY}` |
    | `status` | `{EVENT.VALUE}` |
</Step>
<Step>
    ### วางสคริปต์
    วางโค้ดนี้ลงในช่อง **Script**

    ```js
    var params = JSON.parse(value),
      req = new HttpRequest();

    req.addHeader('Content-Type: application/json');

    var response = req.post(params.url, JSON.stringify({
      title: params.title,
      body: params.body,
      host: params.host,
      severity: params.severity,
      status: params.status
    }));

    if (req.getStatus() !== 200) {
      throw 'Echobell returned HTTP ' + req.getStatus() + ': ' + response;
    }

    return 'OK';
    ```
</Step>
<Step>
    ### กำหนด media ให้ผู้ใช้
    ไปที่ **Users** → **Users** เปิดผู้ใช้ที่ต้องได้รับการแจ้งเตือน แล้วในแท็บ **Media** เพิ่มรายการที่ **Type** เป็น `Echobell` และ **Send to** เป็น URL webhook ของแชนเนลคุณ
</Step>
<Step>
    ### สร้าง trigger action
    ไปที่ **Alerts** → **Actions** → **Trigger actions** แล้วเพิ่ม action ที่มีการดำเนินการส่งข้อความถึงผู้ใช้คนนั้นผ่าน media type ชื่อ `Echobell`
</Step>
<Step>
    ### แจ้งเฉพาะตอนมีปัญหา
    Zabbix ส่งทั้งเหตุการณ์ที่เป็นปัญหาและเหตุการณ์ที่กลับมาปกติ โดย `{EVENT.VALUE}` มีค่า `1` เมื่อเป็นปัญหา และ `0` เมื่อกลับมาปกติ ให้ตั้ง[เงื่อนไข](/docs/conditions)นี้กับแชนเนลเพื่อให้การกลับมาปกติเงียบไว้

    ```
    status == "1"
    ```

    ถ้าต้องการการแจ้งเตือนตอนกลับมาปกติด้วย ให้ใช้แชนเนลที่สองที่ตั้งเงื่อนไข `status == "0"` และลดระดับความเร่งด่วนลง
</Step>
</Steps>
