---
title: "Tích hợp Zabbix - Cảnh báo hạ tầng"
sidebarTitle: Zabbix
description: Kết nối Zabbix với Echobell bằng media type webhook và nhận thông báo đẩy hoặc cuộc gọi khi một trigger kích hoạt.
---

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

[Zabbix](https://www.zabbix.com/) là nền tảng giám sát mã nguồn mở cho mạng, máy chủ và ứng dụng. Một media type dạng webhook sẽ đưa cảnh báo của nó tới kênh Echobell.

<Steps>
<Step>
    ### Tạo kênh
    Tạo một kênh mới trong Echobell rồi sao chép **Webhook URL** của nó.
</Step>
<Step>
    ### Tạo media type webhook
    Trong Zabbix, vào **Alerts** → **Media types** → **Create media type**, đặt **Type** là `Webhook` và đặt tên "Echobell". Thêm các tham số sau:

    | Name | Value |
    | --- | --- |
    | `url` | `{ALERT.SENDTO}` |
    | `title` | `{ALERT.SUBJECT}` |
    | `body` | `{ALERT.MESSAGE}` |
    | `host` | `{HOST.NAME}` |
    | `severity` | `{EVENT.SEVERITY}` |
    | `status` | `{EVENT.VALUE}` |
</Step>
<Step>
    ### Dán đoạn script
    Dán đoạn này vào ô **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>
    ### Gán media cho một người dùng
    Vào **Users** → **Users**, mở người dùng cần nhận cảnh báo, và ở thẻ **Media** thêm một mục với **Type** là `Echobell` và **Send to** là URL webhook của kênh.
</Step>
<Step>
    ### Tạo trigger action
    Vào **Alerts** → **Actions** → **Trigger actions** và thêm một action có thao tác gửi tin nhắn tới người dùng đó qua media type `Echobell`.
</Step>
<Step>
    ### Chỉ báo khi có sự cố
    Zabbix gửi cả sự kiện sự cố lẫn sự kiện phục hồi. `{EVENT.VALUE}` bằng `1` khi có sự cố và `0` khi phục hồi, nên hãy đặt [điều kiện](/docs/conditions) này cho kênh để phục hồi không làm ồn:

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

    Dùng một kênh thứ hai với `status == "0"` nếu bạn muốn nhận thông báo phục hồi ở mức khẩn thấp hơn.
</Step>
</Steps>
