metadata.yaml 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733
  1. # yamllint disable rule:line-length
  2. ---
  3. - id: 'notify-cloud-mobile-app'
  4. meta:
  5. name: 'Netdata Mobile App'
  6. link: 'https://netdata.cloud'
  7. categories:
  8. - notify.cloud
  9. icon_filename: 'netdata.png'
  10. keywords:
  11. - mobile-app
  12. - phone
  13. - personal-notifications
  14. overview:
  15. notification_description: "From the Netdata Cloud UI, you can manage your user notification settings and enable the configuration to deliver notifications on the Netdata Mobile Application."
  16. notification_limitations: ''
  17. setup:
  18. description: |
  19. ### Prerequisites
  20. - A Netdata Cloud account
  21. - You need to have the Netdata Mobile Application installed on your [Android](https://play.google.com/store/apps/details?id=cloud.netdata.android&pli=1) or [iOS](https://apps.apple.com/in/app/netdata-mobile/id6474659622) phone.
  22. ### Netdata Mobile App Configuration
  23. Steps to login to the Netdata Mobile Application to receive alert and reachability and alert notifications:
  24. 1. Download the Netdata Mobile Application from [Google Play Store](https://play.google.com/store/apps/details?id=cloud.netdata.android&pli=1) or the [iOS App Store](https://apps.apple.com/in/app/netdata-mobile/id6474659622)
  25. 2. Open the App and Choose the Sign In Option
  26. - Sign In with Email Address: Enter the Email Address of your registered Netdata Cloud Account and Click on the Verification link received by Email on your mobile device.
  27. - Sign In with QR Code: Scan the QR Code from your `Netdata Cloud` UI under **User Settings** --> **Notifications** --> **Mobile App Notifications** --> **Show QR Code**
  28. 3. Start receiving alert and reachability notifications for your **Space(s)** on a **Paid Business Subscription**
  29. ### Netdata Configuration Steps
  30. 1. Click on the **User settings** on the bottom left of your screen (your profile icon)
  31. 2. Click on the **Notifications** tab
  32. 3. Enable **Mobile App Notifications** if disabled (Enabled by default)
  33. 4. Use the **Show QR Code** Option to login to your mobile device by scanning the **QR Code**
  34. - id: 'notify-cloud-discord'
  35. meta:
  36. name: 'Discord'
  37. link: 'https://discord.com/'
  38. categories:
  39. - notify.cloud
  40. icon_filename: 'discord.png'
  41. keywords:
  42. - discord
  43. - community
  44. overview:
  45. notification_description: "From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Discord."
  46. notification_limitations: ''
  47. setup:
  48. description: |
  49. ### Prerequisites
  50. - A Netdata Cloud account
  51. - Access to the Netdata Space as an **administrator**
  52. - You need to have a Discord server able to receive webhooks integrations.
  53. ### Discord Server Configuration
  54. Steps to configure your Discord server to receive [webhook notifications](https://support.discord.com/hc/en-us/articles/228383668) from Netdata:
  55. 1. Go to `Server Settings` --> `Integrations`
  56. 2. **Create Webhook** or **View Webhooks** if you already have some defined
  57. 3. Specify the **Name** and **Channel** on your new webhook
  58. 4. Use Webhook URL to add your notification configuration on Netdata UI
  59. ### Netdata Configuration Steps
  60. 1. Click on the **Space settings** cog (located above your profile icon)
  61. 2. Click on the **Notification** tab
  62. 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
  63. 4. On the **Discord** card click on **+ Add**
  64. 5. A modal will be presented to you to enter the required details to enable the configuration:
  65. * **Notification settings** are Netdata specific settings
  66. - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
  67. - 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
  68. - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
  69. * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Discord:
  70. - Define the type channel you want to send notifications to: **Text channel** or **Forum channel**
  71. - Webhook URL - URL provided on Discord for the channel you want to receive your notifications.
  72. - Thread name - if the Discord channel is a **Forum channel** you will need to provide the thread name as well
  73. - id: 'notify-cloud-pagerduty'
  74. meta:
  75. name: 'PagerDuty'
  76. link: 'https://www.pagerduty.com/'
  77. categories:
  78. - notify.cloud
  79. icon_filename: 'pagerduty.png'
  80. keywords:
  81. - pagerduty
  82. overview:
  83. notification_description: "From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on PagerDuty."
  84. notification_limitations: ''
  85. setup:
  86. description: |
  87. ### Prerequisites
  88. - A Netdata Cloud account
  89. - Access to the Netdata Space as an **administrator**
  90. - The Netdata Space needs to be on **Business** plan or higher
  91. - You need to have a PagerDuty service to receive events using webhooks.
  92. ### PagerDuty Server Configuration
  93. Steps to configure your PagerDuty to receive notifications from Netdata:
  94. 1. Create a service to receive events from your services directory page on PagerDuty
  95. 2. At step 3, select `Events API V2` Integration or **View Webhooks** if you already have some defined
  96. 3. 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.
  97. ### Netdata Configuration Steps
  98. 1. Click on the **Space settings** cog (located above your profile icon)
  99. 2. Click on the **Notification** tab
  100. 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
  101. 4. On the **PagerDuty** card click on **+ Add**
  102. 5. A modal will be presented to you to enter the required details to enable the configuration:
  103. * **Notification settings** are Netdata specific settings
  104. - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
  105. - 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
  106. - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
  107. * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For PagerDuty:
  108. - Integration Key - is a 32 character key provided by PagerDuty to receive events on your service.
  109. - id: 'notify-cloud-slack'
  110. meta:
  111. name: 'Slack'
  112. link: 'https://slack.com/'
  113. categories:
  114. - notify.cloud
  115. icon_filename: 'slack.png'
  116. keywords:
  117. - slack
  118. overview:
  119. notification_description: "From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Slack."
  120. notification_limitations: ''
  121. setup:
  122. description: |
  123. ### Prerequisites
  124. - A Netdata Cloud account
  125. - Access to the Netdata Space as an **administrator**
  126. - The Netdata Space needs to be on **Business** plan or higher
  127. - You need to have a Slack app on your workspace to receive the Webhooks.
  128. ### Slack Server Configuration
  129. Steps to configure your Slack to receive notifications from Netdata:
  130. 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
  131. 2. Install the app on your workspace
  132. 3. Configure Webhook URLs for your workspace
  133. - On your app go to **Incoming Webhooks** and click on **activate incoming webhooks**
  134. - At the bottom of **Webhook URLs for Your Workspace** section you have **Add New Webhook to Workspace**
  135. - After pressing that specify the channel where you want your notifications to be delivered
  136. - Once completed copy the Webhook URL that you will need to add to your notification configuration on Netdata UI
  137. For more details please check Slacks's article [Incoming webhooks for Slack](https://slack.com/help/articles/115005265063-Incoming-webhooks-for-Slack).
  138. ### Netdata Configuration Steps
  139. 1. Click on the **Space settings** cog (located above your profile icon)
  140. 2. Click on the **Notification** tab
  141. 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
  142. 4. On the **Slack** card click on **+ Add**
  143. 5. A modal will be presented to you to enter the required details to enable the configuration:
  144. * **Notification settings** are Netdata specific settings
  145. - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
  146. - 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
  147. - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
  148. * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Slack:
  149. - Webhook URL - URL provided on Slack for the channel you want to receive your notifications.
  150. - id: 'notify-cloud-opsgenie'
  151. meta:
  152. name: 'Opsgenie'
  153. link: 'https://www.atlassian.com/software/opsgenie'
  154. categories:
  155. - notify.cloud
  156. icon_filename: 'opsgenie.png'
  157. keywords:
  158. - opsgenie
  159. - atlassian
  160. overview:
  161. notification_description: "From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Opsgenie."
  162. notification_limitations: ''
  163. setup:
  164. description: |
  165. ### Prerequisites
  166. - A Netdata Cloud account
  167. - Access to the Netdata Space as an **administrator**
  168. - The Netdata Space needs to be on **Business** plan or higher
  169. - You need to have permissions on Opsgenie to add new integrations.
  170. ### Opsgenie Server Configuration
  171. Steps to configure your Opsgenie to receive notifications from Netdata:
  172. 1. Go to integrations tab of your team, click **Add integration**
  173. 2. Pick **API** from available integrations. Copy your API Key and press **Save Integration**.
  174. 3. Paste copied API key into the corresponding field in **Integration configuration** section of Opsgenie modal window in Netdata.
  175. ### Netdata Configuration Steps
  176. 1. Click on the **Space settings** cog (located above your profile icon)
  177. 2. Click on the **Notification** tab
  178. 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
  179. 4. On the **Opsgenie** card click on **+ Add**
  180. 5. A modal will be presented to you to enter the required details to enable the configuration:
  181. * **Notification settings** are Netdata specific settings
  182. - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
  183. - 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
  184. - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
  185. * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Opsgenie:
  186. - API Key - a key provided on Opsgenie for the channel you want to receive your notifications.
  187. - id: 'notify-cloud-mattermost'
  188. meta:
  189. name: 'Mattermost'
  190. link: 'https://mattermost.com/'
  191. categories:
  192. - notify.cloud
  193. icon_filename: 'mattermost.png'
  194. keywords:
  195. - mattermost
  196. overview:
  197. notification_description: "From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Mattermost."
  198. notification_limitations: ''
  199. setup:
  200. description: |
  201. ### Prerequisites
  202. - A Netdata Cloud account
  203. - Access to the Netdata Space as an **administrator**
  204. - The Netdata Space needs to be on **Business** plan or higher
  205. - You need to have permissions on Mattermost to add new integrations.
  206. - You need to have a Mattermost app on your workspace to receive the webhooks.
  207. ### Mattermost Server Configuration
  208. Steps to configure your Mattermost to receive notifications from Netdata:
  209. 1. In Mattermost, go to Product menu > Integrations > Incoming Webhook
  210. - 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.
  211. 2. Select Add Incoming Webhook and add a name and description for the webhook. The description can be up to 500 characters
  212. 3. Select the channel to receive webhook payloads, then select Add to create the webhook
  213. 4. You will end up with a webhook endpoint that looks like below:
  214. `https://your-mattermost-server.com/hooks/xxx-generatedkey-xxx`
  215. - Treat this endpoint as a secret. Anyone who has it will be able to post messages to your Mattermost instance.
  216. For more details please check Mattermost's article [Incoming webhooks for Mattermost](https://developers.mattermost.com/integrate/webhooks/incoming/).
  217. ### Netdata Configuration Steps
  218. 1. Click on the **Space settings** cog (located above your profile icon)
  219. 2. Click on the **Notification** tab
  220. 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
  221. 4. On the **Mattermost** card click on **+ Add**
  222. 5. A modal will be presented to you to enter the required details to enable the configuration:
  223. * **Notification settings** are Netdata specific settings
  224. - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
  225. - 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
  226. - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
  227. * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Mattermost:
  228. - Webhook URL - URL provided on Mattermost for the channel you want to receive your notifications
  229. - id: 'notify-cloud-rocketchat'
  230. meta:
  231. name: 'RocketChat'
  232. link: 'https://www.rocket.chat/'
  233. categories:
  234. - notify.cloud
  235. icon_filename: 'rocketchat.png'
  236. keywords:
  237. - rocketchat
  238. overview:
  239. notification_description: "From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on RocketChat."
  240. notification_limitations: ''
  241. setup:
  242. description: |
  243. ### Prerequisites
  244. - A Netdata Cloud account
  245. - Access to the Netdata Space as an **administrator**
  246. - The Netdata Space needs to be on **Business** plan or higher
  247. - You need to have permissions on Mattermost to add new integrations.
  248. - You need to have a RocketChat app on your workspace to receive the webhooks.
  249. ### Mattermost Server Configuration
  250. Steps to configure your RocketChat to receive notifications from Netdata:
  251. 1. In RocketChat, Navigate to Administration > Workspace > Integrations.
  252. 2. Click **+New** at the top right corner.
  253. 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).
  254. 4. After configuring integration, click Save.
  255. 5. You will end up with a webhook endpoint that looks like below:
  256. `https://your-server.rocket.chat/hooks/YYYYYYYYYYYYYYYYYYYYYYYY/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`
  257. - Treat this endpoint as a secret. Anyone who has it will be able to post messages to your RocketChat instance.
  258. For more details please check RocketChat's article Incoming webhooks for [RocketChat](https://docs.rocket.chat/use-rocket.chat/workspace-administration/integrations/).
  259. ### Netdata Configuration Steps
  260. 1. Click on the **Space settings** cog (located above your profile icon)
  261. 2. Click on the **Notification** tab
  262. 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
  263. 4. On the **RocketChat** card click on **+ Add**
  264. 5. A modal will be presented to you to enter the required details to enable the configuration:
  265. * **Notification settings** are Netdata specific settings
  266. - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
  267. - 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
  268. - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
  269. * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For RocketChat:
  270. - Webhook URL - URL provided on RocketChat for the channel you want to receive your notifications.
  271. - id: 'notify-cloud-awssns'
  272. meta:
  273. name: 'Amazon SNS'
  274. link: 'https://aws.amazon.com/sns/'
  275. categories:
  276. - notify.cloud
  277. icon_filename: 'awssns.png'
  278. keywords:
  279. - awssns
  280. overview:
  281. notification_description: "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 AWS SNS."
  282. notification_limitations: ''
  283. setup:
  284. description: |
  285. ### Prerequisites
  286. To add AWS SNS notification you need:
  287. - A Netdata Cloud account
  288. - Access to the space as an **administrator**
  289. - Space needs to be on **Business** plan or higher
  290. - Have an AWS account with AWS SNS access, for more details check [how to configure this on AWS SNS](#settings-on-aws-sns)
  291. ### Steps
  292. 1. Click on the **Space settings** cog (located above your profile icon)
  293. 2. Click on the **Notification** tab
  294. 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
  295. 4. On the **AwsSns** card click on **+ Add**
  296. 5. A modal will be presented to you to enter the required details to enable the configuration:
  297. * **Notification settings** are Netdata specific settings
  298. - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
  299. - 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
  300. - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
  301. * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For AWS SNS:
  302. - Topic ARN - topic provided on AWS SNS (with region) for where to publish your notifications. For more details check [how to configure this on AWS SNS](#settings-on-aws-sns)
  303. ### Settings on AWS SNS
  304. To enable the webhook integration on AWS SNS you need:
  305. 1. [Setting up access for Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-setting-up.html)
  306. 2. Create a topic
  307. - On AWS SNS management console click on **Create topic**
  308. - On the **Details** section, the standard type and provide the topic name
  309. - On the **Access policy** section, change the **Publishers** option to **Only the specified AWS accounts** and provide the Netdata AWS account **(123269920060)** that will be used to publish notifications to the topic being created
  310. - Finally, click on **Create topic** on the bottom of the page
  311. 3. Now, use the new **Topic ARN** while adding AWS SNS integration on your space.
  312. - id: 'notify-cloud-microsoftteams'
  313. meta:
  314. name: 'Microsoft Teams'
  315. link: 'https://www.microsoft.com/en-us/microsoft-teams'
  316. categories:
  317. - notify.cloud
  318. icon_filename: 'teams.svg'
  319. keywords:
  320. - microsoft
  321. - teams
  322. overview:
  323. notification_description: "From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications to a Microsoft Teams channel."
  324. notification_limitations: ''
  325. setup:
  326. description: |
  327. ### Prerequisites
  328. To add Microsoft Teams notifications integration to your Netdata Cloud space you will need the following:
  329. - A Netdata Cloud account.
  330. - Access to the Netdata Cloud space as an **administrator**.
  331. - The Space to be on **Business** plan or higher.
  332. - A [Microsoft 365 for Business Account](https://www.microsoft.com/en-us/microsoft-365/business). Note that this is a **paid** account.
  333. ### Settings on Microsoft Teams
  334. - The integration gets enabled at a team's channel level.
  335. - Click on the `...` (aka three dots) icon showing up next to the channel name, it should appear when you hover over it.
  336. - Click on `Connectors`.
  337. - Look for the `Incoming Webhook` connector and click configure.
  338. - Provide a name for your Incoming Webhook Connector, for example _Netdata Alerts_. You can also customize it with a proper icon instead of using the default image.
  339. - Click `Create`.
  340. - The _Incoming Webhook URL_ is created.
  341. - That is the URL to be provided to the Netdata Cloud configuration.
  342. ### Settings on Netdata Cloud
  343. 1. Click on the **Space settings** cog (located above your profile icon).
  344. 2. Click on the **Notification** tab.
  345. 3. Click on the **+ Add configuration** button (near the top-right corner of your screen).
  346. 4. On the **Microsoft Teams** card click on **+ Add**.
  347. 5. A modal will be presented to you to enter the required details to enable the configuration:
  348. * **Notification settings** are Netdata specific settings:
  349. - Configuration name - you can optionally provide a name for your configuration you can easily refer to it.
  350. - 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.
  351. - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only.
  352. * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Microsoft Teams:
  353. - Microsoft Teams Incoming Webhook URL - the _Incoming Webhook URL_ that was generated earlier.
  354. - id: 'notify-cloud-telegram'
  355. meta:
  356. name: 'Telegram'
  357. link: 'https://telegram.org/'
  358. categories:
  359. - notify.cloud
  360. icon_filename: 'telegram.svg'
  361. keywords:
  362. - Telegram
  363. overview:
  364. notification_description: "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 Telegram."
  365. notification_limitations: ''
  366. setup:
  367. description: |
  368. ### Prerequisites
  369. To add Telegram notification you need:
  370. - A Netdata Cloud account
  371. - Access to the space as an **administrator**
  372. - Space needs to be on **Business** plan or higher
  373. - The Telegram bot token and chat ID
  374. ### Steps
  375. 1. Click on the **Space settings** cog (located above your profile icon)
  376. 2. Click on the **Notification** tab
  377. 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
  378. 4. On the **Telegram** card click on **+ Add**
  379. 5. A modal will be presented to you to enter the required details to enable the configuration:
  380. - **Notification settings** are Netdata specific settings
  381. - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
  382. - 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
  383. - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
  384. - **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Telegram:
  385. - Bot Token - the token of your bot
  386. - Chat ID - the chat id where your bot will deliver messages to
  387. ### Getting the Telegram bot token and chat ID
  388. - Bot token: To create one bot, contact the [@BotFather](https://t.me/BotFather) bot and send the command `/newbot` and follow the instructions. **Start a conversation with your bot or invite it into the group where you want it to send notifications**.
  389. - To get the chat ID you have two options:
  390. - Contact the [@myidbot](https://t.me/myidbot) bot and send the `/getid` command to get your personal chat ID, or invite it into a group and use the `/getgroupid` command to get the group chat ID.
  391. - Alternatively, you can get the chat ID directly from the bot API. Send your bot a command in the chat you want to use, then check `https://api.telegram.org/bot{YourBotToken}/getUpdates`, eg. `https://api.telegram.org/bot111122223:7OpFlFFRzRBbrUUmIjj5HF9Ox2pYJZy5/getUpdates`
  392. - id: 'notify-cloud-splunk'
  393. meta:
  394. name: 'Splunk'
  395. link: 'https://splunk.com/'
  396. categories:
  397. - notify.cloud
  398. icon_filename: 'splunk-black.svg'
  399. keywords:
  400. - Splunk
  401. overview:
  402. notification_description: "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 Splunk."
  403. notification_limitations: ''
  404. setup:
  405. description: |
  406. ### Prerequisites
  407. To add Splunk notification you need:
  408. - A Netdata Cloud account
  409. - Access to the space as an **administrator**
  410. - Space needs to be on **Business** plan or higher
  411. - URI and token for your Splunk HTTP Event Collector. Refer to the [Splunk documentation](https://docs.splunk.com/Documentation/Splunk/latest/Data/UsetheHTTPEventCollector) for detailed instructions.
  412. ### Steps
  413. 1. Click on the **Space settings** cog (located above your profile icon)
  414. 2. Click on the **Notification** tab
  415. 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
  416. 4. On the **Splunk** card click on **+ Add**
  417. 5. A modal will be presented to you to enter the required details to enable the configuration:
  418. - **Notification settings** are Netdata specific settings
  419. - Configuration name - provide a descriptive name for your configuration to easily identify it.
  420. - Rooms - select the nodes or areas of your infrastructure you want to receive notifications about.
  421. - Notification - choose the type of notifications you want to receive: All Alerts and unreachable, All Alerts, Critical only.
  422. - **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Splunk:
  423. - HTTP Event Collector URI - The URI of your HTTP event collector in Splunk
  424. - HTTP Event Collector Token - the token that Splunk provided to you when you created the HTTP Event Collector
  425. - id: 'notify-cloud-webhook'
  426. meta:
  427. name: 'Webhook'
  428. link: 'https://en.wikipedia.org/wiki/Webhook'
  429. categories:
  430. - notify.cloud
  431. icon_filename: 'webhook.svg'
  432. keywords:
  433. - generic webhooks
  434. - webhooks
  435. overview:
  436. notification_description: "From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on a webhook using a predefined schema."
  437. notification_limitations: ''
  438. setup:
  439. description: |
  440. ### Prerequisites
  441. - A Netdata Cloud account
  442. - Access to the Netdata Space as an **administrator**
  443. - The Netdata Space needs to be on **Pro** plan or higher
  444. - You need to have an app that allows you to receive webhooks following a predefined schema.
  445. ### Netdata Configuration Steps
  446. 1. Click on the **Space settings** cog (located above your profile icon)
  447. 2. Click on the **Notification** tab
  448. 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
  449. 4. On the **Webhook** card click on **+ Add**
  450. 5. A modal will be presented to you to enter the required details to enable the configuration:
  451. * **Notification settings** are Netdata specific settings
  452. - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
  453. - 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
  454. - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
  455. * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Webhook:
  456. - 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.
  457. - Extra headers - these are optional key-value pairs that you can set to be included in the HTTP requests sent to the webhook URL.
  458. - Authentication Mechanism - Netdata webhook integration supports 3 different authentication mechanisms.
  459. * Mutual TLS (recommended) - default authentication mechanism used if no other method is selected.
  460. * 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.
  461. * Bearer - the client sends a request with an Authorization header that includes a **bearer token**. This setting will be a required input.
  462. ### Webhook service
  463. 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.
  464. #### Netdata webhook integration
  465. 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.
  466. Netdata webhook integration service will send alert notifications to the destination service as soon as they are detected.
  467. The notification content sent to the destination service will be a JSON object having these properties:
  468. | field | type | description |
  469. | :-- | :-- | :-- |
  470. | message | string | A summary message of the alert. |
  471. | alarm | string | The alarm the notification is about. |
  472. | info | string | Additional info related with the alert. |
  473. | chart | string | The chart associated with the alert. |
  474. | context | string | The chart context. |
  475. | space | string | The space where the node that raised the alert is assigned. |
  476. | rooms | object[object(string,string)] | Object with list of rooms names and urls where the node belongs to. |
  477. | family | string | Context family. |
  478. | class | string | Classification of the alert, e.g. "Error". |
  479. | severity | string | Alert severity, can be one of "warning", "critical" or "clear". |
  480. | date | string | Date of the alert in ISO8601 format. |
  481. | duration | string | Duration the alert has been raised. |
  482. | additional_active_critical_alerts | integer | Number of additional critical alerts currently existing on the same node. |
  483. | additional_active_warning_alerts | integer | Number of additional warning alerts currently existing on the same node. |
  484. | alarm_url | string | Netdata Cloud URL for this alarm. |
  485. #### Extra headers
  486. 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.
  487. By default, the following headers will be sent in the HTTP request
  488. | **Header** | **Value** |
  489. |:-------------------------------:|-----------------------------|
  490. | Content-Type | application/json |
  491. #### Authentication mechanisms
  492. Netdata webhook integration supports 3 different authentication mechanisms:
  493. ##### Mutual TLS authentication (recommended)
  494. 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.
  495. This is the default authentication mechanism used if no other method is selected.
  496. 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.
  497. The steps to perform this validation are as follows:
  498. - Store Netdata CA certificate on a file in your disk. The content of this file should be:
  499. <details>
  500. <summary>Netdata CA certificate</summary>
  501. ```
  502. -----BEGIN CERTIFICATE-----
  503. MIIF0jCCA7qgAwIBAgIUDV0rS5jXsyNX33evHEQOwn9fPo0wDQYJKoZIhvcNAQEN
  504. BQAwgYAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
  505. Ew1TYW4gRnJhbmNpc2NvMRYwFAYDVQQKEw1OZXRkYXRhLCBJbmMuMRIwEAYDVQQL
  506. EwlDbG91ZCBTUkUxGDAWBgNVBAMTD05ldGRhdGEgUm9vdCBDQTAeFw0yMzAyMjIx
  507. MjQzMDBaFw0zMzAyMTkxMjQzMDBaMIGAMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
  508. Q2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEWMBQGA1UEChMNTmV0
  509. ZGF0YSwgSW5jLjESMBAGA1UECxMJQ2xvdWQgU1JFMRgwFgYDVQQDEw9OZXRkYXRh
  510. IFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwIg7z3R++
  511. ppQYYVVoMIDlhWO3qVTMsAQoJYEvVa6fqaImUBLW/k19LUaXgUJPohB7gBp1pkjs
  512. QfY5dBo8iFr7MDHtyiAFjcQV181sITTMBEJwp77R4slOXCvrreizhTt1gvf4S1zL
  513. qeHBYWEgH0RLrOAqD0jkOHwewVouO0k3Wf2lEbCq3qRk2HeDvkv0LR7sFC+dDms8
  514. fDHqb/htqhk+FAJELGRqLeaFq1Z5Eq1/9dk4SIeHgK5pdYqsjpBzOTmocgriw6he
  515. s7F3dOec1ZZdcBEAxOjbYt4e58JwuR81cWAVMmyot5JNCzYVL9e5Vc5n22qt2dmc
  516. Tzw2rLOPt9pT5bzbmyhcDuNg2Qj/5DySAQ+VQysx91BJRXyUimqE7DwQyLhpQU72
  517. jw29lf2RHdCPNmk8J1TNropmpz/aI7rkperPugdOmxzP55i48ECbvDF4Wtazi+l+
  518. 4kx7ieeLfEQgixy4lRUUkrgJlIDOGbw+d2Ag6LtOgwBiBYnDgYpvLucnx5cFupPY
  519. Cy3VlJ4EKUeQQSsz5kVmvotk9MED4sLx1As8V4e5ViwI5dCsRfKny7BeJ6XNPLnw
  520. PtMh1hbiqCcDmB1urCqXcMle4sRhKccReYOwkLjLLZ80A+MuJuIEAUUuEPCwywzU
  521. R7pagYsmvNgmwIIuJtB6mIJBShC7TpJG+wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
  522. AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU9IbvOsPSUrpr8H2zSafYVQ9e
  523. Ft8wDQYJKoZIhvcNAQENBQADggIBABQ08aI31VKZs8jzg+y/QM5cvzXlVhcpkZsY
  524. 1VVBr0roSBw9Pld9SERrEHto8PVXbadRxeEs4sKivJBKubWAooQ6NTvEB9MHuGnZ
  525. VCU+N035Gq/mhBZgtIs/Zz33jTB2ju3G4Gm9VTZbVqd0OUxFs41Iqvi0HStC3/Io
  526. rKi7crubmp5f2cNW1HrS++ScbTM+VaKVgQ2Tg5jOjou8wtA+204iYXlFpw9Q0qnP
  527. qq6ix7TfLLeRVp6mauwPsAJUgHZluz7yuv3r7TBdukU4ZKUmfAGIPSebtB3EzXfH
  528. 7Y326xzv0hEpjvDHLy6+yFfTdBSrKPsMHgc9bsf88dnypNYL8TUiEHlcTgCGU8ts
  529. ud8sWN2M5FEWbHPNYRVfH3xgY2iOYZzn0i+PVyGryOPuzkRHTxDLPIGEWE5susM4
  530. X4bnNJyKH1AMkBCErR34CLXtAe2ngJlV/V3D4I8CQFJdQkn9tuznohUU/j80xvPH
  531. FOcDGQYmh4m2aIJtlNVP6+/92Siugb5y7HfslyRK94+bZBg2D86TcCJWaaZOFUrR
  532. Y3WniYXsqM5/JI4OOzu7dpjtkJUYvwtg7Qb5jmm8Ilf5rQZJhuvsygzX6+WM079y
  533. nsjoQAm6OwpTN5362vE9SYu1twz7KdzBlUkDhePEOgQkWfLHBJWwB+PvB1j/cUA3
  534. 5zrbwvQf
  535. -----END CERTIFICATE-----
  536. ```
  537. </details>
  538. - 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`
  539. **NGINX**
  540. ```bash
  541. server {
  542. listen 443 ssl default_server;
  543. # ... existing SSL configuration for server authentication ...
  544. ssl_verify_client on;
  545. ssl_client_certificate /path/to/Netdata_CA.pem;
  546. location / {
  547. if ($ssl_client_s_dn !~ "CN=app.netdata.cloud") {
  548. return 403;
  549. }
  550. # ... existing location configuration ...
  551. }
  552. }
  553. ```
  554. **Apache**
  555. ```bash
  556. Listen 443
  557. <VirtualHost *:443>
  558. # ... existing SSL configuration for server authentication ...
  559. SSLVerifyClient require
  560. SSLCACertificateFile "/path/to/Netdata_CA.pem"
  561. </VirtualHost>
  562. <Directory /var/www/>
  563. Require expr "%{SSL_CLIENT_S_DN_CN} == 'app.netdata.cloud'"
  564. # ... existing directory configuration ...
  565. </Directory>
  566. ```
  567. ##### Basic authentication
  568. 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.
  569. ##### Bearer token authentication
  570. 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.
  571. ##### Challenge secret
  572. To validate that you have ownership of the web application that will receive the webhook events, we are using a challenge response check mechanism.
  573. This mechanism works as follows:
  574. - The challenge secret parameter that you provide is a shared secret between you and Netdata only.
  575. - 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.
  576. - 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:
  577. ```json
  578. {
  579. "response_token": "sha256=9GKoHJYmcHIkhD+C182QWN79YBd+D+Vkj4snmZrfNi4="
  580. }
  581. ```
  582. - 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.
  583. We will do this validation everytime you update your integration configuration.
  584. - Response requirements:
  585. - A base64 encoded HMAC SHA-256 hash created from the crc_token and the shared secret.
  586. - Valid response_token and JSON format.
  587. - Latency less than 5 seconds.
  588. - 200 HTTP response code.
  589. **Example response token generation in Python:**
  590. Here you can see how to define a handler for a Flask application in python 3:
  591. ```python
  592. import base64
  593. import hashlib
  594. import hmac
  595. import json
  596. key ='YOUR_CHALLENGE_SECRET'
  597. @app.route('/webhooks/netdata')
  598. def webhook_challenge():
  599. token = request.args.get('crc_token').encode('ascii')
  600. # creates HMAC SHA-256 hash from incomming token and your consumer secret
  601. sha256_hash_digest = hmac.new(key.encode(),
  602. msg=token,
  603. digestmod=hashlib.sha256).digest()
  604. # construct response data with base64 encoded hash
  605. response = {
  606. 'response_token': 'sha256=' + base64.b64encode(sha256_hash_digest).decode('ascii')
  607. }
  608. # returns properly formatted json response
  609. return json.dumps(response)
  610. ```