integration-docs: Update Zabbix for new doc format.

Part of zulip#29592.
This commit is contained in:
Niloth P 2024-07-08 02:22:58 +05:30 committed by Tim Abbott
parent c271cdb113
commit a17a54b077
1 changed files with 53 additions and 44 deletions

View File

@ -1,37 +1,43 @@
# Zulip Zabbix integration
Receive Zabbix notifications in Zulip!
!!! warn ""
**Note:** This guide is for Zabbix 5.4 and above; some older Zabbix versions have a
different workflow for creating an outgoing webhook.
**Note:** This guide is for Zabbix 5.4 and above; some older Zabbix
versions have a different workflow for creating an outgoing webhook.
{start_tabs}
1. {!create-channel.md!}
1. {!create-an-incoming-webhook.md!}
1. {!generate-integration-url.md!}
1. {!generate-webhook-url-basic.md!}
1. Go to your Zabbix web interface, and click **Administration**. Click on
**General** and then select **Macros** from the dropdown. Click **Add** and set the
macro to `{$ZABBIX_URL}`. Set the value as the URL to your Zabbix server like
`https://zabbix.example.com` ensuring there no trailing slashes. Click **Update**
1. Go to **Administration** in your Zabbix web interface. Click on
**General**, and select **Macros** from the dropdown. Click **Add**.
1. Go back to your Zabbix web interface, and click **Administration**. Click on
1. Set the macro to `{$ZABBIX_URL}`. Set the value as the URL to your
Zabbix server, e.g., `https://zabbix.example.com`, and ensure that there
are no trailing slashes. Click **Update**.
1. Go back to **Administration** in your Zabbix web interface. Select
**Media Types**, and click **Create Media Type**.
1. Set **Name** to a name of your choice, such as `Zulip`. Set **Type** to **Webhook**.
Add the following **Parameters**:
1. Set **Name** to a name of your choice, such as `Zulip`. Set **Type** to
**Webhook**, and add the following **Parameters**:
* Add `hostname` as the first parameter with the value `{HOST.NAME}`.
* Add `item` as the second parameter with the value `{ITEM.NAME1} is {ITEM.VALUE1}`.
* Add `link` as the third parameter with the value `{$ZABBIX_URL}/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID}`.
* Add `severity` as the fourth parameter with the value `{TRIGGER.SEVERITY}`.
* Add `status` as the fifth parameter with the value `{TRIGGER.STATUS}`.
* Add `trigger` as the sixth parameter with the value `{TRIGGER.NAME}`.
* Add `zulip_endpoint` as the seventh parameter with the value set as the URL
constructed earlier.
* `hostname`: `{HOST.NAME}`
* `item`: `{ITEM.NAME1} is {ITEM.VALUE1}`
* `link`: `{$ZABBIX_URL}/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID}`
* `severity`: `{TRIGGER.SEVERITY}`
* `status`: `{TRIGGER.STATUS}`
* `trigger`: `{TRIGGER.NAME}`
* `zulip_endpoint`: the URL generated above
1. Click the **Pencil** to edit the script and replace any existing content with the below script:
1. Click the **Pencil** to edit the script, and replace any existing content
with the script below. Then, check the **Enabled** option.
try {
Zabbix.Log(4, 'zulip webhook script value='+value);
@ -73,46 +79,49 @@ Receive Zabbix notifications in Zulip!
return JSON.stringify(result);
1. Check the **Enabled** option.
1. Click **Message Templates** in the top bar. Click **Add** under **Message Type**. Select **Problem**.
1. Open **Message Templates** from the top bar. Click **Add** under **Message Type**,
and select **Problem**.
1. Set **Subject** to `{TRIGGER.STATUS}-{TRIGGER.SEVERITY}-{TRIGGER.NAME}`.
Set **Message** to the following:
Set **Message** to the following, and click **Add**:
{
"hostname": "{HOST.NAME}",
"severity": "{TRIGGER.SEVERITY}",
"status": "{TRIGGER.STATUS}",
"item": "{ITEM.NAME1} is {ITEM.VALUE1}",
"trigger": "{TRIGGER.NAME}",
"link": "{$ZABBIX_URL}/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID}"
"hostname": "{HOST.NAME}",
"severity": "{TRIGGER.SEVERITY}",
"status": "{TRIGGER.STATUS}",
"item": "{ITEM.NAME1} is {ITEM.VALUE1}",
"trigger": "{TRIGGER.NAME}",
"link": "{$ZABBIX_URL}/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID}"
}
1. Click **Add**.
1. Go back to **Administration** in your Zabbix web interface. Click on
**Users**, and select the alias of the user you would like to use to
set the notification. Select **Media**, and click **Add**.
1. Go back to your Zabbix web interface, and click **Administration**.
Click on **Users**, and select the alias of the user you would like
to use to set the notification. Click **Media**, and click **Add**.
1. Set **Type** to **Zulip** or whatever you named your media type as.
Set **Send To** to `Zulip` or any text. This field needs something in,
but isn't used. Tweak the severity and times when active for notifications
as appropriate, and check the **Enabled** option. Click **Add**.
Click **Update**.
1. Set **Type** to the name you assigned to the media type above.
Set **Send To** to `Zulip` or any text, as this field requires text, but
it isn't used. Set the severity and active periods for notifications as
suitable, and check the **Enabled** option. Click **Add**, and
select **Update**.
1. Go back to your Zabbix web interface, and click **Configuration**.
Click **Actions**, and click **Create Action**.
Select **Actions**, and choose **Create Action**.
1. Set **Name** to a name of your choice, such as `Zulip`. Under
**New Conditions**, add the conditions for triggering a notification.
Check the **Enabled** option, and click **Operations**.
1. Under **Operations** click **Add**, and then set **Operation Type** to
`Send Message`. Under **Send to Users**, click **Add**, and select the user
you added the alert to and click **Select**. Under **Send only to**,
select **Zulip** or the name of your media type. Click **Add** twice.
1. Under **Operations**, click **Add**, and then set **Operation Type** to
`Send Message`. Under **Send to Users**, choose **Add**, and select the user
you added the alert to above, and click **Select**. Under **Send only to**,
select **Zulip** or the name of your media type. Click **Add** twice.
{end_tabs}
{!congrats.md!}
![](/static/images/integrations/zabbix/001.png)
### Related documentation
{!webhooks-url-specification.md!}