docs: remove unused cloud notification methods mds (#16372)
docs: remove unused cloud notification methods
Ilya Mashchenko committed
Nov 9, 2023 at 19:32 UTC
7c2b74f32655687daccbdf548950cb5bc9170fbe
7 files changed
-505
docs/cloud/alerts-notifications/add-discord-notification.md
deleted
-44
@@ -1,44 +0,0 @@
1
-# Add Discord notification configuration
2
-
3
-From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Discord.
4
-
5
-## Prerequisites
6
-
7
-To enable Discord notifications you need:
8
-
9
-- A Netdata Cloud account
10
-- Access to the space as an **administrator**
11
-- Have a Discord server able to receive webhook integrations. For more details check [how to configure this on Discord](#settings-on-discord)
12
-
13
-## Steps
14
-
15
-1. Click on the **Space settings** cog (located above your profile icon)
16
-1. Click on the **Notification** tab
17
-1. Click on the **+ Add configuration** button (near the top-right corner of your screen)
18
-1. On the **Discord** card click on **+ Add**
19
-1. A modal will be presented to you to enter the required details to enable the configuration:
20
- 1. **Notification settings** are Netdata specific settings
21
- - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
22
- - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration
23
- - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
24
- 1. **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Discord:
25
- - Define the type channel you want to send notifications to: **Text channel** or **Forum channel**
26
- - Webhook URL - URL provided on Discord for the channel you want to receive your notifications. For more details check [how to configure this on Discord](#settings-on-discord)
27
- - Thread name - if the Discord channel is a **Forum channel** you will need to provide the thread name as well
28
-
29
-## Settings on Discord
30
-
31
-## Enable webhook integrations on Discord server
32
-
33
-To enable the webhook integrations on Discord you need:
34
-1. Go to *Integrations** under your **Server Settings
35
-
36
- 
37
-
38
-1. **Create Webhook** or **View Webhooks** if you already have some defined
39
-1. When you create a new webhook you specify: Name and Channel
40
-1. Once you have this configured you will need the Webhook URL to add your notification configuration on Netdata UI
41
-
42
- 
43
-
44
-For more details please read this article from Discord: [Intro to Webhooks](https://support.discord.com/hc/en-us/articles/228383668).
docs/cloud/alerts-notifications/add-mattermost-notification-configuration.md
deleted
-51
@@ -1,51 +0,0 @@
1
-# Add Mattermost notification configuration
2
-
3
-From the Cloud interface, you can manage your space's notification settings and from these you can add a specific configuration to get notifications delivered on Mattermost.
4
-
5
-## Prerequisites
6
-
7
-To add Mattermost notification configurations you need:
8
-
9
-- A Netdata Cloud account
10
-- Access to the space as an **administrator**
11
-- Space needs to be on **Business** plan or higher
12
-- Have a Mattermost app on your workspace to receive the webhooks, for more details check [how to configure this on Mattermost](#settings-on-mattermost)
13
-
14
-## Steps
15
-
16
-1. Click on the **Space settings** cog (located above your profile icon)
17
-1. Click on the **Notification** tab
18
-1. Click on the **+ Add configuration** button (near the top-right corner of your screen)
19
-1. On the **Mattermost** card click on **+ Add**
20
-1. A modal will be presented to you to enter the required details to enable the configuration:
21
- 1. **Notification settings** are Netdata specific settings
22
- - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
23
- - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration
24
- - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
25
- 1. **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Mattermost:
26
- - Webhook URL - URL provided on Mattermost for the channel you want to receive your notifications. For more details check [how to configure this on Mattermost](#settings-on-mattermost)
27
-
28
-## Settings on Mattermost
29
-
30
-To enable the webhook integrations on Mattermost you need:
31
-1. In Mattermost, go to Product menu > Integrations > Incoming Webhook.
32
-
33
-
34
-
35
- - If you don’t have the Integrations option, incoming webhooks may not be enabled on your Mattermost server or may be disabled for non-admins. They can be enabled by a System Admin from System Console > Integrations > Integration Management. Once incoming webhooks are enabled, continue with the steps below
36
-
37
-
38
-
39
-2. Select Add Incoming Webhook and add a name and description for the webhook. The description can be up to 500 characters
40
-
41
-3. Select the channel to receive webhook payloads, then select Add to create the webhook
42
-
43
-
44
-
45
-4. You will end up with a webhook endpoint that looks like so:
46
-```
47
-https://your-mattermost-server.com/hooks/xxx-generatedkey-xxx
48
-```
49
- - Treat this endpoint as a secret. Anyone who has it will be able to post messages to your Mattermost instance.
50
-
51
-For more details please check Mattermost's article [Incoming webhooks for Mattermost](https://developers.mattermost.com/integrate/webhooks/incoming/).
docs/cloud/alerts-notifications/add-opsgenie-notification-configuration.md
deleted
-37
@@ -1,37 +0,0 @@
1
-# Add Opsgenie notification configuration
2
-
3
-From the Cloud interface, you can manage your space's notification settings and from these you can add a specific configuration to get notifications delivered on Opsgenie.
4
-
5
-## Prerequisites
6
-
7
-To add Opsgenie notification configurations you need:
8
-
9
-- A Netdata Cloud account
10
-- Access to the space as an **administrator**
11
-- Space on **Business** plan or higher
12
-- Have a permission to add new integrations in Opsgenie.
13
-
14
-## Steps
15
-
16
-1. Click on the **Space settings** cog (located above your profile icon)
17
-1. Click on the **Notification** tab
18
-1. Click on the **+ Add configuration** button (near the top-right corner of your screen)
19
-1. On the **Opsgenie** card click on **+ Add**
20
-1. A modal will be presented to you to enter the required details to enable the configuration:
21
- 1. **Notification settings** are Netdata specific settings
22
- - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
23
- - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration
24
- - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
25
- 1. **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Opsgenie:
26
- - API Key - a key provided on Opsgenie for the channel you want to receive your notifications. For more details check [how to configure this on Opsgenie](#settings-on-opsgenie)
27
-
28
-## Settings on Opsgenie
29
-
30
-To enable the Netdata integration on Opsgenie you need:
31
-1. Go to integrations tab of your team, click **Add integration**.
32
-
33
- 
34
-
35
-1. Pick **API** from available integrations. Copy your API Key and press **Save Integration**.
36
-
37
-1. Paste copied API key into the corresponding field in **Integration configuration** section of Opsgenie modal window in Netdata.
docs/cloud/alerts-notifications/add-pagerduty-notification-configuration.md
deleted
-43
@@ -1,43 +0,0 @@
1
-# Add PagerDuty notification configuration
2
-
3
-From the Cloud interface, you can manage your space's notification settings and from these you can add a specific configuration to get notifications delivered on PagerDuty.
4
-
5
-## Prerequisites
6
-
7
-To add PagerDuty notification configurations you need:
8
-
9
-- A Cloud account
10
-- Access to the space as and **administrator**
11
-- Space needs to be on **Business** plan or higher
12
-- Have a PagerDuty service to receive events, for more details check [how to configure this on PagerDuty](#settings-on-pagerduty)
13
-
14
-## Steps
15
-
16
-1. Click on the **Space settings** cog (located above your profile icon)
17
-1. Click on the **Notification** tab
18
-1. Click on the **+ Add configuration** button (near the top-right corner of your screen)
19
-1. On the **PagerDuty** card click on **+ Add**
20
-1. A modal will be presented to you to enter the required details to enable the configuration:
21
- 1. **Notification settings** are Netdata specific settings
22
- - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
23
- - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration
24
- - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
25
- 1. **Integration configuration** are the specific notification integration required settings, which vary by notification method. For PagerDuty:
26
- - Integration Key - is a 32 character key provided by PagerDuty to receive events on your service. For more details check [how to configure this on PagerDuty](#settings-on-pagerduty)
27
-
28
-## Settings on PagerDuty
29
-
30
-## Enable webhook integrations on PagerDuty
31
-
32
-To enable the webhook integrations on PagerDuty you need:
33
-1. Create a service to receive events from your services directory page:
34
-
35
- 
36
-
37
-1. At step 3, select `Events API V2` Integration:or **View Webhooks** if you already have some defined
38
-
39
- 
40
-
41
-1. Once the service is created you will be redirected to its configuration page, where you can copy the **integration key**, that you will need need to add to your notification configuration on Netdata UI:
42
-
43
- 
docs/cloud/alerts-notifications/add-rocketchat-notification-configuration.md
deleted
-49
@@ -1,49 +0,0 @@
1
-# Add RocketChat notification configuration
2
-
3
-From the Cloud interface, you can manage your space's notification settings and from these you can add a specific configuration to get notifications delivered on RocketChat.
4
-
5
-## Prerequisites
6
-
7
-To add RocketChat notification configurations you need:
8
-
9
-- A Netdata Cloud account
10
-- Access to the space as an **administrator**
11
-- Space needs to be on **Business** plan or higher
12
-- Have a RocketChat app on your workspace to receive the webhooks, for more details check [how to configure this on RocketChat](#settings-on-rocketchat)
13
-
14
-## Steps
15
-
16
-1. Click on the **Space settings** cog (located above your profile icon)
17
-1. Click on the **Notification** tab
18
-1. Click on the **+ Add configuration** button (near the top-right corner of your screen)
19
-1. On the **RocketChat** card click on **+ Add**
20
-1. A modal will be presented to you to enter the required details to enable the configuration:
21
- 1. **Notification settings** are Netdata specific settings
22
- - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
23
- - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration
24
- - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
25
- 1. **Integration configuration** are the specific notification integration required settings, which vary by notification method. For RocketChat:
26
- - Webhook URL - URL provided on RocketChat for the channel you want to receive your notifications. For more details check [how to configure this on RocketChat](#settings-on-rocketchat)
27
-
28
-## Settings on RocketChat
29
-
30
-To enable the webhook integrations on RocketChat you need:
31
-1. In RocketChat, Navigate to Administration > Workspace > Integrations.
32
-
33
-2. Click +New at the top right corner.
34
-
35
-
36
-
37
-3. For more details about each parameter, check [create-a-new-incoming-webhook](https://docs.rocket.chat/use-rocket.chat/workspace-administration/integrations#create-a-new-incoming-webhook).
38
-
39
-4. After configuring integration, click Save.
40
-
41
-
42
-
43
-4. You will end up with a webhook endpoint that looks like so:
44
-```
45
-https://your-server.rocket.chat/hooks/YYYYYYYYYYYYYYYYYYYYYYYY/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
46
-```
47
- - Treat this endpoint as a secret. Anyone who has it will be able to post messages to your RocketChat instance.
48
-
49
-For more details please check RocketChat's article [Incoming webhooks for RocketChat](https://docs.rocket.chat/use-rocket.chat/workspace-administration/integrations/).
docs/cloud/alerts-notifications/add-slack-notification-configuration.md
deleted
-47
@@ -1,47 +0,0 @@
1
-# Add Slack notification configuration
2
-
3
-From the Cloud interface, you can manage your space's notification settings and from these you can add a specific configuration to get notifications delivered on Slack.
4
-
5
-## Prerequisites
6
-
7
-To add slack notification configurations you need:
8
-
9
-- A Netdata Cloud account
10
-- Access to the space as an **administrator**
11
-- Space needs to be on **Business** plan or higher
12
-- Have a Slack app on your workspace to receive the webhooks, for more details check [how to configure this on Slack](#settings-on-slack)
13
-
14
-## Steps
15
-
16
-1. Click on the **Space settings** cog (located above your profile icon)
17
-1. Click on the **Notification** tab
18
-1. Click on the **+ Add configuration** button (near the top-right corner of your screen)
19
-1. On the **Slack** card click on **+ Add**
20
-1. A modal will be presented to you to enter the required details to enable the configuration:
21
- 1. **Notification settings** are Netdata specific settings
22
- - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
23
- - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration
24
- - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
25
- 1. **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Slack:
26
- - Webhook URL - URL provided on Slack for the channel you want to receive your notifications. For more details check [how to configure this on Slack](#settings-on-slack)
27
-
28
-## Settings on Slack
29
-
30
-To enable the webhook integrations on Slack you need:
31
-1. Create an app to receive webhook integrations. Check [Create an app](https://api.slack.com/apps?new_app=1) from Slack documentation for further details
32
-1. Install the app on your workspace
33
-1. Configure Webhook URLs for your workspace
34
- - On your app go to **Incoming Webhooks** and click on **activate incoming webhooks**
35
-
36
- 
37
-
38
- - At the bottom of **Webhook URLs for Your Workspace** section you have **Add New Webhook to Workspace**
39
- - After pressing that specify the channel where you want your notifications to be delivered
40
-
41
- 
42
-
43
- - Once completed copy the Webhook URL that you will need to add to your notification configuration on Netdata UI
44
-
45
- 
46
-
47
-For more details please check Slacks's article [Incoming webhooks for Slack](https://slack.com/help/articles/115005265063-Incoming-webhooks-for-Slack).
docs/cloud/alerts-notifications/add-webhook-notification-configuration.md
deleted
-234
@@ -1,234 +0,0 @@
1
-# Add webhook notification configuration
2
-
3
-From the Cloud interface, you can manage your space's notification settings and from these you can add a specific configuration to get notifications delivered on a webhook using a predefined schema.
4
-
5
-## Prerequisites
6
-
7
-To add webhook notification configurations you need:
8
-
9
-- A Netdata Cloud account
10
-- Access to the space as an **administrator**
11
-- Space needs to be on **Pro** plan or higher
12
-- Have an app that allows you to receive webhooks following a predefined schema, for more details check [how to create the webhook service](#webhook-service)
13
-
14
-## Steps
15
-
16
-1. Click on the **Space settings** cog (located above your profile icon)
17
-1. Click on the **Notification** tab
18
-1. Click on the **+ Add configuration** button (near the top-right corner of your screen)
19
-1. On the **webhook** card click on **+ Add**
20
-1. A modal will be presented to you to enter the required details to enable the configuration:
21
- 1. **Notification settings** are Netdata specific settings
22
- - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
23
- - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration
24
- - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
25
- 1. **Integration configuration** are the specific notification integration required settings, which vary by notification method. For webhook:
26
- - Webhook URL - webhook URL is the url of the service that Netdata will send notifications to. In order to keep the communication secured, we only accept HTTPS urls. Check [how to create the webhook service](#webhook-service).
27
- - Extra headers - these are optional key-value pairs that you can set to be included in the HTTP requests sent to the webhook URL. For more details check [Extra headers](#extra-headers)
28
- - Authentication Mechanism - Netdata webhook integration supports 3 different authentication mechanisms. For more details check [Authentication mechanisms](#authentication-mechanisms):
29
- - Mutual TLS (recommended) - default authentication mechanism used if no other method is selected.
30
- - Basic - the client sends a request with an Authorization header that includes a base64-encoded string in the format **username:password**. These will settings will be required inputs.
31
- - Bearer - the client sends a request with an Authorization header that includes a **bearer token**. This setting will be a required input.
32
-
33
-## Webhook service
34
-
35
-A webhook integration allows your application to receive real-time alerts from Netdata by sending HTTP requests to a specified URL. In this document, we'll go over the steps to set up a generic webhook integration, including adding headers, and implementing different types of authorization mechanisms.
36
-
37
-### Netdata webhook integration
38
-
39
-A webhook integration is a way for one service to notify another service about events that occur within it. This is done by sending an HTTP POST request to a specified URL (known as the "webhook URL") when an event occurs.
40
-
41
-Netdata webhook integration service will send alert notifications to the destination service as soon as they are detected.
42
-
43
-The notification content sent to the destination service will be a JSON object having these properties:
44
-
45
-| field | type | description |
46
-|:----------------------------------|:------------------------------|:--------------------------------------------------------------------------|
47
-| message | string | A summary message of the alert. |
48
-| alarm | string | The alert the notification is about. |
49
-| info | string | Additional info related with the alert. |
50
-| chart | string | The chart associated with the alert. |
51
-| context | string | The chart context. |
52
-| space | string | The space where the node that raised the alert is assigned. |
53
-| rooms | object[object(string,string)] | Object with list of rooms names and urls where the node belongs to. |
54
-| family | string | Context family. |
55
-| class | string | Classification of the alert, e.g. "Error". |
56
-| severity | string | Alert severity, can be one of "warning", "critical" or "clear". |
57
-| date | string | Date of the alert in ISO8601 format. |
58
-| duration | string | Duration the alert has been raised. |
59
-| additional_active_critical_alerts | integer | Number of additional critical alerts currently existing on the same node. |
60
-| additional_active_warning_alerts | integer | Number of additional warning alerts currently existing on the same node. |
61
-| alarm_url | string | Netdata Cloud URL for this alert. |
62
-
63
-### Extra headers
64
-
65
-When setting up a webhook integration, the user can specify a set of headers to be included in the HTTP requests sent to the webhook URL.
66
-
67
-By default, the following headers will be sent in the HTTP request
68
-
69
-| **Header** | **Value** |
70
-|:------------:|------------------|
71
-| Content-Type | application/json |
72
-
73
-### Authentication mechanisms
74
-
75
-Netdata webhook integration supports 3 different authentication mechanisms:
76
-
77
-#### Mutual TLS authentication (recommended)
78
-
79
-In mutual Transport Layer Security (mTLS) authentication, the client and the server authenticate each other using X.509 certificates. This ensures that the client is connecting to the intended server, and that the server is only accepting connections from authorized clients.
80
-
81
-This is the default authentication mechanism used if no other method is selected.
82
-
83
-To take advantage of mutual TLS, you can configure your server to verify Netdata's client certificate. In order to achieve this, the Netdata client sending the notification supports mutual TLS (mTLS) to identify itself with a client certificate that your server can validate.
84
-
85
-The steps to perform this validation are as follows:
86
-
87
-- Store Netdata CA certificate on a file in your disk. The content of this file should be:
88
-
89
-<details>
90
- <summary>Netdata CA certificate</summary>
91
-
92
-```
93
------BEGIN CERTIFICATE-----
94
-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
-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
-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
-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
-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
-Q2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEWMBQGA1UEChMNTmV0
100
-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
-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
-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
-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
-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
-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
-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
-Tzw2rLOPt9pT5bzbmyhcDuNg2Qj/5DySAQ+VQysx91BJRXyUimqE7DwQyLhpQU72
108
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-ud8sWN2M5FEWbHPNYRVfH3xgY2iOYZzn0i+PVyGryOPuzkRHTxDLPIGEWE5susM4
121
-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
-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
-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
-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
125
-5zrbwvQf
126
------END CERTIFICATE-----
127
-```
128
-</details>
129
-
130
-- Enable client certificate validation on the web server that is doing the TLS termination. Below we show you how to perform this configuration in `NGINX` and `Apache`
131
-
132
- **NGINX**
133
-
134
-```bash
135
-server {
136
- listen 443 ssl default_server;
137
-
138
- # ... existing SSL configuration for server authentication ...
139
- ssl_verify_client on;
140
- ssl_client_certificate /path/to/Netdata_CA.pem;
141
-
142
- location / {
143
- if ($ssl_client_s_dn !~ "CN=app.netdata.cloud") {
144
- return 403;
145
- }
146
- # ... existing location configuration ...
147
- }
148
-}
149
-```
150
-
151
-**Apache**
152
-
153
-```bash
154
-Listen 443
155
-<VirtualHost *:443>
156
- # ... existing SSL configuration for server authentication ...
157
- SSLVerifyClient require
158
- SSLCACertificateFile "/path/to/Netdata_CA.pem"
159
-</VirtualHost>
160
-<Directory /var/www/>
161
- Require expr "%{SSL_CLIENT_S_DN_CN} == 'app.netdata.cloud'"
162
- # ... existing directory configuration ...
163
-</Directory>
164
-```
165
-
166
-#### Basic authentication
167
-
168
-In basic authorization, the client sends a request with an Authorization header that includes a base64-encoded string in the format username:password. The server then uses this information to authenticate the client. If this authentication method is selected, the user can set the user and password that will be used when connecting to the destination service.
169
-
170
-#### Bearer token authentication
171
-
172
-In bearer token authentication, the client sends a request with an Authorization header that includes a bearer token. The server then uses this token to authenticate the client. Bearer tokens are typically generated by an authentication service, and are passed to the client after a successful authentication. If this method is selected, the user can set the token to be used for connecting to the destination service.
173
-
174
-##### Challenge secret
175
-
176
-To validate that you has ownership of the web application that will receive the webhook events, we are using a challenge response check mechanism.
177
-
178
-This mechanism works as follows:
179
-
180
-- The challenge secret parameter that you provide is a shared secret between you and Netdata only.
181
-- On your request for creating a new Webhook integration, we will make a GET request to the url of the webhook, adding a query parameter `crc_token`, consisting of a random string.
182
-- You will receive this request on your application and it must construct an encrypted response, consisting of a base64-encoded HMAC SHA-256 hash created from the crc_token and the shared secret. The response will be in the format:
183
-
184
-```json
185
-{
186
- "response_token": "sha256=9GKoHJYmcHIkhD+C182QWN79YBd+D+Vkj4snmZrfNi4="
187
-}
188
-```
189
-
190
-- We will compare your application's response with the hash that we will generate using the challenge secret, and if they are the same, the integration creation will succeed.
191
-
192
-We will do this validation everytime you update your integration configuration.
193
-
194
-- Response requirements:
195
- - A base64 encoded HMAC SHA-256 hash created from the crc_token and the shared secret.
196
- - Valid response_token and JSON format.
197
- - Latency less than 5 seconds.
198
- - 200 HTTP response code.
199
-
200
-**Example response token generation in Python:**
201
-
202
-Here you can see how to define a handler for a Flask application in python 3:
203
-
204
-```python
205
-import base64
206
-import hashlib
207
-import hmac
208
-import json
209
-
210
-key ='YOUR_CHALLENGE_SECRET'
211
-
212
-@app.route('/webhooks/netdata')
213
-def webhook_challenge():
214
- token = request.args.get('crc_token').encode('ascii')
215
-
216
- # creates HMAC SHA-256 hash from incomming token and your consumer secret
217
- sha256_hash_digest = hmac.new(key.encode(),
218
- msg=token,
219
- digestmod=hashlib.sha256).digest()
220
-
221
- # construct response data with base64 encoded hash
222
- response = {
223
- 'response_token': 'sha256=' + base64.b64encode(sha256_hash_digest).decode('ascii')
224
- }
225
-
226
- # returns properly formatted json response
227
- return json.dumps(response)
228
-```
229
-
230
-#### Related topics
231
-
232
-- [Alerts Configuration](https://github.com/netdata/netdata/blob/master/health/README.md)
233
-- [Alert Notifications](https://github.com/netdata/netdata/blob/master/docs/cloud/alerts-notifications/notifications.md)
234
-- [Manage notification methods](https://github.com/netdata/netdata/blob/master/docs/cloud/alerts-notifications/manage-notification-methods.md)