flashduty-knowledge-base 1.3.4 → 1.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -3
- package/dist/en.d.ts +5 -1
- package/dist/esm/en.js +1149 -252
- package/dist/esm/zh.js +1075 -246
- package/dist/iife/en.js +1119 -222
- package/dist/iife/zh.js +1051 -222
- package/dist/zh.d.ts +5 -1
- package/package.json +1 -1
package/dist/esm/en.js
CHANGED
|
@@ -82,6 +82,15 @@ Field|Required|Type|Description
|
|
|
82
82
|
| alert_key | No | string | Alert identifier, used to update or automatically recover existing alerts.<br><br>You can customize this value, but it cannot exceed \`255\` characters. You can also rely on system auto-generation, this value will be returned in the response.<br><br>If you're reporting a recovery event, this value must exist.
|
|
83
83
|
| description | No | string | Alert description, no more than \`2048\` characters, will be truncated if exceeded.
|
|
84
84
|
| labels | No | map | Alert label collection, key is the label name, value is the label value:<br><br>1. Both key and value of labels are string type, case-sensitive.<br>2. Label key should not exceed \`128\` characters, following Prometheus label naming conventions. Value should not exceed \`2048\` characters, will be truncated if exceeded.<br>3. Maximum of \`50\` labels. See \`Label Content Reference\` in [Best Practices](#best-practices).<br><br>Example: "resource": "171.26.23.22", "check": "api latency > 500ms"
|
|
85
|
+
| images | No | [][image](#image) | Array of images, used for image display in frontend or Feishu/DingTalk application notifications.The system merged/overwritten based on alt, for the same alt (including empty strings), only one is retained
|
|
86
|
+
|
|
87
|
+
#### image Structure <span id="image"></span>
|
|
88
|
+
|
|
89
|
+
Field|Required|Type|Description
|
|
90
|
+
:-:|:-:|:-:|:---
|
|
91
|
+
| alt | No | string | Image alternative text, limit 128 characters, truncated if exceeded.
|
|
92
|
+
| src | Yes | string | Image source, value: http/https URL or image_key returned by [Image Upload API](https://developer.flashcat.cloud/api-344943718). Limit 256 characters, discarded if exceeded
|
|
93
|
+
| href | No | string | Hyperlink reference path, limit 256 characters, truncated if exceeded
|
|
85
94
|
|
|
86
95
|
</div>
|
|
87
96
|
|
|
@@ -387,7 +396,7 @@ In the new version, although you can configure the collaboration space directly
|
|
|
387
396
|
#### Step 1: Add Notification Media
|
|
388
397
|
|
|
389
398
|
1. Log in to your n9e console, select Alerting > Media types and click **Add**
|
|
390
|
-
2. Fill in the media name and identifier, select **
|
|
399
|
+
2. Fill in the media name and identifier, select **Flashduty** type, and enter the integration push URL in the \`URL\` section
|
|
391
400
|
3. Click **Save** and complete
|
|
392
401
|
|
|
393
402
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/n9e-1.png" />
|
|
@@ -396,7 +405,7 @@ In the new version, although you can configure the collaboration space directly
|
|
|
396
405
|
|
|
397
406
|
1. Log in to your n9e console, select Alerting > Rules and click **Add** or edit the existing alert rules
|
|
398
407
|
2. Configure the basic information as needed
|
|
399
|
-
3. Select the \`
|
|
408
|
+
3. Select the \`Flashduty\` notification media added in the previous step
|
|
400
409
|
4. Select the collaboration space (the collaboration space must be created in [Flashduty](https://console.flashcat.cloud/channel) in advance), and select other options as needed
|
|
401
410
|
5. Click **Save** and complete
|
|
402
411
|
|
|
@@ -405,7 +414,7 @@ In the new version, although you can configure the collaboration space directly
|
|
|
405
414
|
#### Step 3: Select Notification Rules in Alert Rules
|
|
406
415
|
|
|
407
416
|
1. Log in to your n9e console, select Alerting > Alert Rules and click **Add** or edit the existing alert rules
|
|
408
|
-
2. Select the \`
|
|
417
|
+
2. Select the \`Flashduty\` notification rule added in the previous step, and select other options as needed
|
|
409
418
|
3. Click **Save** and complete
|
|
410
419
|
|
|
411
420
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/n9e-3.png" />
|
|
@@ -890,7 +899,7 @@ The media type must be associated with a user to send events. The user must have
|
|
|
890
899
|
1. Log in to the Zabbix console, select \`Users > Users\`, select Admin user, select media, select Add to enter the editing window:
|
|
891
900
|
|
|
892
901
|
- Type: Select the Flashduty media type created above
|
|
893
|
-
- Send To: Fill in
|
|
902
|
+
- Send To: Fill in Flashduty
|
|
894
903
|
- Keep other configurations unchanged using default settings
|
|
895
904
|
|
|
896
905
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/zabbix-3.png" />
|
|
@@ -904,7 +913,7 @@ Sending notifications is one of the operations executed by actions in Zabbix. Th
|
|
|
904
913
|
|
|
905
914
|
1. Click \`Create action\` to enter the action editing page
|
|
906
915
|
|
|
907
|
-
- Name: Fill in "Send To
|
|
916
|
+
- Name: Fill in "Send To Flashduty"
|
|
908
917
|
|
|
909
918
|
2. Select \`Operations\`, add notification sending configurations for three scenarios respectively:
|
|
910
919
|
|
|
@@ -978,7 +987,7 @@ Sending notifications is one of the operations executed by actions in Zabbix. Th
|
|
|
978
987
|
|
|
979
988
|
1. Click \`Create action\` to enter the action editing page
|
|
980
989
|
|
|
981
|
-
- Name: Fill in "Send To
|
|
990
|
+
- Name: Fill in "Send To Flashduty"
|
|
982
991
|
|
|
983
992
|
2. Select \`Operations\`, add notification sending configurations for three scenarios respectively:
|
|
984
993
|
|
|
@@ -1015,7 +1024,7 @@ Log in to the Zabbix console, select \`Monitoring > Problems\` to view the lates
|
|
|
1015
1024
|
|
|
1016
1025
|
- \`{ALERT.SUBJECT}\`: Alert title, keep as first parameter
|
|
1017
1026
|
- \`{ALERT.MESSAGE}\`: Alert message, keep as second parameter
|
|
1018
|
-
- \`
|
|
1027
|
+
- \`Flashduty webhook push URL\`, simply copy the integration push URL, keep as third parameter
|
|
1019
1028
|
- \`Zabbix console address\`, copy directly (if your page is configured with tomcat/nginx forwarding path, please include it), used to generate alert detail page links. Leave empty if none, keep as fourth parameter
|
|
1020
1029
|
- \`HTTPProxy\`: If your Zabbix Server cannot directly access Flashduty services, you can set this parameter to a proxy address. Leave empty if none, keep as fifth parameter
|
|
1021
1030
|
|
|
@@ -1059,7 +1068,7 @@ Sending notifications is one of the operations executed by actions in Zabbix. Th
|
|
|
1059
1068
|
|
|
1060
1069
|
1. Click \`Create action\` to enter the action editing page
|
|
1061
1070
|
|
|
1062
|
-
- Name: Fill in "Send To
|
|
1071
|
+
- Name: Fill in "Send To Flashduty"
|
|
1063
1072
|
|
|
1064
1073
|
2. Select \`Operations\`, update notification user configurations for three scenarios respectively:
|
|
1065
1074
|
|
|
@@ -1074,10 +1083,10 @@ Sending notifications is one of the operations executed by actions in Zabbix. Th
|
|
|
1074
1083
|
|
|
1075
1084
|
3. Select \`Operations\`, update notification content configurations for three scenarios respectively:
|
|
1076
1085
|
|
|
1077
|
-
- **In the Default Message configuration item, completely copy the following content and paste it after the default content**.
|
|
1086
|
+
- **In the Default Message configuration item, completely copy the following content and paste it after the default content**. Flashduty will parse corresponding text after receiving events to find alert attribute information:
|
|
1078
1087
|
|
|
1079
1088
|
\`\`\`
|
|
1080
|
-
-----
|
|
1089
|
+
-----Flashduty Required Starts-----event_severity={TRIGGER.SEVERITY}||event_name={TRIGGER.NAME}||event_id={EVENT.ID}||event_tags={EVENT.TAGS}||event_ack={EVENT.ACK.STATUS}||event_value={EVENT.VALUE}||trigger_id={TRIGGER.ID}||trigger_desc={TRIGGER.DESCRIPTION}||trigger_expr={TRIGGER.EXPRESSION}||host_group={TRIGGER.HOSTGROUP.NAME}||host_ip={HOST.IP}||host_name={HOST.NAME}||item_name={ITEM.NAME}||item_value={ITEM.VALUE}-----Flashduty Required Ends-----
|
|
1081
1090
|
\`\`\`
|
|
1082
1091
|
|
|
1083
1092
|
- Repeat the above steps to complete the configuration of \`Recovery operations\` and \`Update operations\`
|
|
@@ -1163,7 +1172,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
1163
1172
|
**Step 1: Set up Notification Channel**
|
|
1164
1173
|
|
|
1165
1174
|
1. Go to \`Settings -> Notifications\` page, click Setup to edit, as shown below;
|
|
1166
|
-
2. Select \`
|
|
1175
|
+
2. Select \`Flashduty (Flashduty)\` as the \`Notification Type\`;
|
|
1167
1176
|
3. Copy and paste the integration_key parameter value from the integration push URL into \`Integration Key\`;
|
|
1168
1177
|
4. Select \`Severity\` as needed;
|
|
1169
1178
|
5. Submit and save
|
|
@@ -1176,7 +1185,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
1176
1185
|
|
|
1177
1186
|
1. Click \`Add New Monitor\` or edit existing monitors, configure monitoring settings as needed;
|
|
1178
1187
|
2. As shown, enable the notification method created in the previous step in the \`Notifications\` section;
|
|
1179
|
-
3. If needed, add \`Tags\`. Note that only tags with both Key/Value will be pushed to
|
|
1188
|
+
3. If needed, add \`Tags\`. Note that only tags with both Key/Value will be pushed to Flashduty;
|
|
1180
1189
|
4. Submit and save, then wait for alerts to trigger.
|
|
1181
1190
|
|
|
1182
1191
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/upk/upk-2.png" alt="drawing" width="500"/>
|
|
@@ -1575,7 +1584,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
1575
1584
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/aliyun/sls-5.png" alt="drawing" width="500"/>
|
|
1576
1585
|
|
|
1577
1586
|
4. Click the \`Confirm\` button to save
|
|
1578
|
-
5. Repeat these steps for all other rules to push all alerts to
|
|
1587
|
+
5. Repeat these steps for all other rules to push all alerts to Flashduty
|
|
1579
1588
|
|
|
1580
1589
|
</div>
|
|
1581
1590
|
|
|
@@ -1594,7 +1603,7 @@ Alibaba Cloud SLS monitoring to Flashduty alert severity mapping:
|
|
|
1594
1603
|
| 2 | Info | Info |
|
|
1595
1604
|
|
|
1596
1605
|
</div>
|
|
1597
|
-
`,
|
|
1606
|
+
`,u=`---
|
|
1598
1607
|
title: "AWS CloudWatch Integration"
|
|
1599
1608
|
description: "Sync AWS CloudWatch alert events to Flashduty via webhook to achieve automated alert noise reduction"
|
|
1600
1609
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -1646,10 +1655,10 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
1646
1655
|
|
|
1647
1656
|
1. Log in to your AWS Console, search for \`Simple Notification Service\` product and enter its console
|
|
1648
1657
|
2. Go to the \`Topics\` page, click the \`Create topic\` button to start creating a topic
|
|
1649
|
-
3. Select \`Standard\` for \`Type\`, enter \`
|
|
1658
|
+
3. Select \`Standard\` for \`Type\`, enter \`Flashduty\` as the name
|
|
1650
1659
|
4. Click the \`Create Topic\` button to complete topic creation
|
|
1651
1660
|
5. Go to the \`Subscriptions\` page, click the \`Create subscription\` button to create a subscription for the topic
|
|
1652
|
-
6. Select \`
|
|
1661
|
+
6. Select \`Flashduty\` for \`Topic ARN\`, choose \`HTTPS\` for \`Protocol\`, enter the integration push URL for \`Endpoint\` (enter the integration name on the current page, the URL will be generated after saving)
|
|
1653
1662
|
7. Click the \`Create subscription\` button to complete subscription creation
|
|
1654
1663
|
|
|
1655
1664
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/aws-cloudwatch-subscribe.png" />
|
|
@@ -1657,7 +1666,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
1657
1666
|
8. Return to the \`Subscriptions\` page. When the subscription status shows \`Confirmed\`, the subscription URL verification is successful; otherwise, please contact Flashduty
|
|
1658
1667
|
9. Search for the \`CloudWatch\` product and enter its console
|
|
1659
1668
|
10. Go to the \`All alarms\` page, choose to create or edit existing alarm policies
|
|
1660
|
-
11. For the \`Notification\` step, select \`
|
|
1669
|
+
11. For the \`Notification\` step, select \`Flashduty\` as the \`SNS topic\` for all three states: \`In alarm\`, \`OK\`, and \`Insufficient data\`, as shown below:
|
|
1661
1670
|
|
|
1662
1671
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/aws-cloudwatch-alram.png" />
|
|
1663
1672
|
|
|
@@ -1673,7 +1682,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
1673
1682
|
All CloudWatch metric alarms correspond to Flashduty "warning" severity level alerts.
|
|
1674
1683
|
|
|
1675
1684
|
</div>
|
|
1676
|
-
`,
|
|
1685
|
+
`,h=`---
|
|
1677
1686
|
title: "Baidu Cloud BCM Integration"
|
|
1678
1687
|
description: "Sync Baidu Cloud BCM alerts to Flashduty via webhook for automated alert noise reduction"
|
|
1679
1688
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -1806,7 +1815,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
1806
1815
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/hw/hw-1.png" alt="drawing" width="500"/>
|
|
1807
1816
|
|
|
1808
1817
|
5. Go to \`Alarm-Alarm Notifications-Notification Groups\` page, click \`Create Notification Group\` button
|
|
1809
|
-
6. Enter \`
|
|
1818
|
+
6. Enter \`Flashduty\` as group name, check the \`flashduty\` notification object created earlier
|
|
1810
1819
|
7. Click \`OK\` button to complete notification group creation
|
|
1811
1820
|
|
|
1812
1821
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/hw/hw-2.png" alt="drawing" width="500"/>
|
|
@@ -1814,7 +1823,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
1814
1823
|
Note: When creating a notification group, Huawei Cloud will send a request to Flashduty to verify the push URL. Check the notification group's object list - alerts will only be pushed normally when the notification object status is \`Confirmed\`
|
|
1815
1824
|
|
|
1816
1825
|
8. Go to \`Alarm-Alarm Rules\` page, edit existing alarm rules or create new ones to open the \`Alarm Rule Details\` page
|
|
1817
|
-
9. Select \`
|
|
1826
|
+
9. Select \`Flashduty\` as the notification group, check both \`Alarm Triggered\` and \`Cleared\` conditions. Click \`OK\` button to save changes
|
|
1818
1827
|
|
|
1819
1828
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/hw/hw-3.png" alt="drawing" width="500"/>
|
|
1820
1829
|
|
|
@@ -1891,7 +1900,7 @@ Supports Influxdata versions 1.x ~ 2.x, with different configurations for each v
|
|
|
1891
1900
|
#### Step 1: Create Alert Channel
|
|
1892
1901
|
1. Log in to your \`Influxdata\` console and navigate to the \`Alerts > Notification Endpoints\` page.
|
|
1893
1902
|
2. Click \`Create\` to create an alert notification channel.
|
|
1894
|
-
3. Select \`HTTP\` for \`Destination\` and enter \`
|
|
1903
|
+
3. Select \`HTTP\` for \`Destination\` and enter \`Flashduty\` for \`Name\`.
|
|
1895
1904
|
4. Choose \`POST\` for \`HTTP Method\` and enter the integration push URL.
|
|
1896
1905
|
|
|
1897
1906
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/influxdb-1.png" />
|
|
@@ -1900,7 +1909,7 @@ Supports Influxdata versions 1.x ~ 2.x, with different configurations for each v
|
|
|
1900
1909
|
1. Log in to your \`Influxdata\` console and navigate to the \`Alerts > Notification Rules\` page.
|
|
1901
1910
|
2. Click \`Create\` to create an alert notification rule.
|
|
1902
1911
|
3. Configure \`About\` and \`Conditions\` as needed.
|
|
1903
|
-
4. Select \`
|
|
1912
|
+
4. Select \`Flashduty\` created in Step 1 for \`Message\`.
|
|
1904
1913
|
|
|
1905
1914
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/influxdb-2.png" />
|
|
1906
1915
|
|
|
@@ -2164,7 +2173,7 @@ filter:
|
|
|
2164
2173
|
query_string:
|
|
2165
2174
|
query: "created_at:*"
|
|
2166
2175
|
|
|
2167
|
-
# -------
|
|
2176
|
+
# ------- Flashduty ----------------
|
|
2168
2177
|
alert: pagerduty
|
|
2169
2178
|
pagerduty_service_key: xxx
|
|
2170
2179
|
pagerduty_client_name: wahaha
|
|
@@ -2174,7 +2183,7 @@ pagerduty_v2_payload_component: mysql
|
|
|
2174
2183
|
pagerduty_v2_payload_group: app-stack
|
|
2175
2184
|
pagerduty_v2_payload_severity: error
|
|
2176
2185
|
pagerduty_v2_payload_source: mysql.host.name
|
|
2177
|
-
# -------
|
|
2186
|
+
# ------- Flashduty ----------------
|
|
2178
2187
|
\`\`\`
|
|
2179
2188
|
|
|
2180
2189
|
4. Step 4: Restart ElastAlert and wait for alerts to trigger
|
|
@@ -2238,7 +2247,7 @@ BlueKing alert policies can trigger \`Action Plans\`, which can integrate with e
|
|
|
2238
2247
|
|
|
2239
2248
|
1. Log in to your BlueKing desktop and enter the \`Monitor Platform\`;
|
|
2240
2249
|
2. Go to \`Configuration-Action Plans\` page, click the \`Add Plan\` button to start creating an action plan;
|
|
2241
|
-
3. Enter the name as \`Send To
|
|
2250
|
+
3. Enter the name as \`Send To Flashduty\`, select \`HTTP Callback\` as the plan type, choose \`POST\` as the push method, and fill in the integration push URL (obtained after saving the integration), as shown below:
|
|
2242
2251
|
|
|
2243
2252
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/integration/tencent-bk/create_package.jpg" />
|
|
2244
2253
|
|
|
@@ -2256,12 +2265,12 @@ BlueKing alert policies can trigger \`Action Plans\`, which can integrate with e
|
|
|
2256
2265
|
<div class="md-block">
|
|
2257
2266
|
|
|
2258
2267
|
1. Go to \`Configuration-Alert Policies\` page, select an existing policy to edit or create a new one;
|
|
2259
|
-
2. Scroll down to the \`Alert Processing\` section, select the \`Send To
|
|
2268
|
+
2. Scroll down to the \`Alert Processing\` section, select the \`Send To Flashduty\` action plan for all three scenarios, and disable \`Defense Rules\`, as shown below:
|
|
2260
2269
|
|
|
2261
2270
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/integration/tencent-bk/update_alert_rule.jpg" />
|
|
2262
2271
|
|
|
2263
2272
|
3. Submit and save to complete;
|
|
2264
|
-
4. Repeat these steps for other alerts you want to push to
|
|
2273
|
+
4. Repeat these steps for other alerts you want to push to Flashduty.
|
|
2265
2274
|
|
|
2266
2275
|
</div>
|
|
2267
2276
|
|
|
@@ -2278,7 +2287,7 @@ Alert severity mapping between BlueKing and Flashduty:
|
|
|
2278
2287
|
| Notice | Info | info |
|
|
2279
2288
|
|
|
2280
2289
|
</div>
|
|
2281
|
-
`,
|
|
2290
|
+
`,b=`---
|
|
2282
2291
|
title: "Tencent Cloud CLS Integration"
|
|
2283
2292
|
description: "Sync Tencent Cloud Log Service (CLS) monitoring alerts to Flashduty via webhook for automated alert noise reduction"
|
|
2284
2293
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -2398,7 +2407,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
2398
2407
|
"record_group_id": "{{escape .RecordGroupId}}",
|
|
2399
2408
|
"detail_url": "{{escape .DetailUrl}}",
|
|
2400
2409
|
"query_url": "{{escape .QueryUrl}}",
|
|
2401
|
-
"message": {{.Message}},
|
|
2410
|
+
"message": "{{.Message}}",
|
|
2402
2411
|
"query_result": {{.QueryResult}},
|
|
2403
2412
|
"query_log": {{.QueryLog}},
|
|
2404
2413
|
"analysis_result": {{.AnalysisResult}}
|
|
@@ -2420,7 +2429,7 @@ Tencent Cloud CLS monitoring alert level mapping to Flashduty:
|
|
|
2420
2429
|
| Critical | Critical | Critical
|
|
2421
2430
|
|
|
2422
2431
|
</div>
|
|
2423
|
-
`,
|
|
2432
|
+
`,v=`---
|
|
2424
2433
|
title: "Tencent Cloud Monitor CM Integration"
|
|
2425
2434
|
description: "Sync Tencent Cloud Monitor CM alert events to Flashduty via webhook for automated alert noise reduction"
|
|
2426
2435
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -2545,7 +2554,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
2545
2554
|
|
|
2546
2555
|
1. Log in to your Tencent Cloud Console and select EventBridge service
|
|
2547
2556
|
2. Go to the Event Rules page, click the New button to start editing rules
|
|
2548
|
-
3. Enter the name as
|
|
2557
|
+
3. Enter the name as Flashduty, as shown below:
|
|
2549
2558
|
|
|
2550
2559
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/tencent-eb-new-rule.png" />
|
|
2551
2560
|
|
|
@@ -2646,12 +2655,12 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
2646
2655
|
|
|
2647
2656
|
<img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/oceanbase-1.png" />
|
|
2648
2657
|
|
|
2649
|
-
5. Copy the following script content into the channel configuration, and **please add the integration_key value from your
|
|
2658
|
+
5. Copy the following script content into the channel configuration, and **please add the integration_key value from your Flashduty push URL to the integration_key parameter in the script**
|
|
2650
2659
|
|
|
2651
2660
|
\`\`\`
|
|
2652
2661
|
#!/usr/bin/env bash
|
|
2653
2662
|
|
|
2654
|
-
function
|
|
2663
|
+
function sendToFlashduty() {
|
|
2655
2664
|
URL="\${address}/event/push/alert/standard?integration_key=\${integration_key}"
|
|
2656
2665
|
curl -s -X POST \${URL} -H 'Content-Type: application/json' -d '{
|
|
2657
2666
|
"event_status": "'\${alert_level}'",
|
|
@@ -2715,7 +2724,7 @@ elif [[ \${statusMd5} == "\${active}" ]];then
|
|
|
2715
2724
|
fi
|
|
2716
2725
|
|
|
2717
2726
|
if [[ \${statusMd5} == \${active} || \${statusMd5} == \${Inactive} ]];then
|
|
2718
|
-
|
|
2727
|
+
sendToFlashduty
|
|
2719
2728
|
fi
|
|
2720
2729
|
\`\`\`
|
|
2721
2730
|
|
|
@@ -2753,7 +2762,7 @@ OCP Alert Notification - Single Alert
|
|
|
2753
2762
|
<img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/oceanbase-2.png" />
|
|
2754
2763
|
|
|
2755
2764
|
3. Select **English** for push language
|
|
2756
|
-
4. Select **
|
|
2765
|
+
4. Select **Flashduty** for alert channel
|
|
2757
2766
|
5. Enable **Recovery Notification**
|
|
2758
2767
|
6. Submit
|
|
2759
2768
|
|
|
@@ -2834,7 +2843,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
2834
2843
|
|
|
2835
2844
|
<img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/graylog-2.png" />
|
|
2836
2845
|
|
|
2837
|
-
6. Enter the
|
|
2846
|
+
6. Enter the Flashduty URL you obtained (URL whitelist required for first-time use)
|
|
2838
2847
|
|
|
2839
2848
|
<img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/graylog-3.png" />
|
|
2840
2849
|
|
|
@@ -2846,11 +2855,11 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
2846
2855
|
|
|
2847
2856
|
<img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/graylog-5.png" />
|
|
2848
2857
|
|
|
2849
|
-
### Step 2: Use
|
|
2858
|
+
### Step 2: Use Flashduty Alert Channel in Alert Events
|
|
2850
2859
|
1. Create or edit existing Event Definition
|
|
2851
2860
|
2. Skip other alert configurations here (configure alert conditions according to business requirements)
|
|
2852
2861
|
3. Configure channel in Notifications
|
|
2853
|
-
4. Add Notification and select
|
|
2862
|
+
4. Add Notification and select Flashduty channel
|
|
2854
2863
|
5. Click Done
|
|
2855
2864
|
6. Complete the next step to finish
|
|
2856
2865
|
|
|
@@ -2936,7 +2945,7 @@ rules:
|
|
|
2936
2945
|
tags:
|
|
2937
2946
|
level: Warning
|
|
2938
2947
|
\`\`\`
|
|
2939
|
-
4. Add the
|
|
2948
|
+
4. Add the Flashduty webhook URL
|
|
2940
2949
|
|
|
2941
2950
|
\`\`\`
|
|
2942
2951
|
# Add at the bottom of the configuration file
|
|
@@ -3022,12 +3031,12 @@ Sentry provides two types of alert mechanisms: Issue Alerts and Metric Alerts. W
|
|
|
3022
3031
|
|
|
3023
3032
|
## II. Sentry Alert Push Configuration
|
|
3024
3033
|
|
|
3025
|
-
### Step 1: Add
|
|
3034
|
+
### Step 1: Add Flashduty Custom Integrations
|
|
3026
3035
|
|
|
3027
3036
|
1. Log in to the Sentry management console
|
|
3028
3037
|
2. In the left navigation bar, locate **Settings => Custom Integrations**
|
|
3029
3038
|
3. Click Create New Integration and select **Internal Integration**
|
|
3030
|
-
4. On the editing page, **enter
|
|
3039
|
+
4. On the editing page, **enter Flashduty for Name and paste the integration push URL into WebhookURL**
|
|
3031
3040
|
5. Enable **Alert Rule Action**, configure as shown below:
|
|
3032
3041
|
|
|
3033
3042
|
<img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/sentry-1.png" />
|
|
@@ -3039,11 +3048,11 @@ Sentry provides two types of alert mechanisms: Issue Alerts and Metric Alerts. W
|
|
|
3039
3048
|
<img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/sentry-2.png" />
|
|
3040
3049
|
|
|
3041
3050
|
**Special notes about WEBHOOKS configuration:**
|
|
3042
|
-
1. After checking **issue**,
|
|
3051
|
+
1. After checking **issue**, Flashduty can receive resolved events for issues, meaning when manually triggering resolved for an issue in the issue list, we will automatically recover the associated incident in Flashduty
|
|
3043
3052
|
2. Other issue events such as create, assigned, archived, and unresolved are not supported
|
|
3044
|
-
3. If error and comment are also checked,
|
|
3053
|
+
3. If error and comment are also checked, Flashduty will not receive or process these types of events
|
|
3045
3054
|
|
|
3046
|
-
### Step 2: Use
|
|
3055
|
+
### Step 2: Use Flashduty Integration in Alerts
|
|
3047
3056
|
1. In the left navigation bar, locate **Alerts => Create Alert**
|
|
3048
3057
|
2. Select the type of Alert to create, such as Issue
|
|
3049
3058
|
|
|
@@ -3055,7 +3064,7 @@ Sentry provides two types of alert mechanisms: Issue Alerts and Metric Alerts. W
|
|
|
3055
3064
|
|
|
3056
3065
|
<img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/sentry-4.png" />
|
|
3057
3066
|
|
|
3058
|
-
5. Select **
|
|
3067
|
+
5. Select **Flashduty** added above as the notification channel
|
|
3059
3068
|
|
|
3060
3069
|
<img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/sentry-5.png" />
|
|
3061
3070
|
|
|
@@ -3136,7 +3145,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3136
3145
|
|
|
3137
3146
|
<img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/jkb-2.png" />
|
|
3138
3147
|
|
|
3139
|
-
4. Enter
|
|
3148
|
+
4. Enter Flashduty as the custom name, and input the copied integration push URL
|
|
3140
3149
|
5. Select **POST** as the callback method and **JSON** as the data format
|
|
3141
3150
|
6. Check **Enable URL Callback**, configure other options as needed, refer to the image below
|
|
3142
3151
|
|
|
@@ -3144,10 +3153,10 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3144
3153
|
|
|
3145
3154
|
7. Click Save
|
|
3146
3155
|
|
|
3147
|
-
### Step 2: Use
|
|
3156
|
+
### Step 2: Use Flashduty Alert Channel in Monitoring Tasks
|
|
3148
3157
|
1. Create or edit an existing monitoring task
|
|
3149
3158
|
2. Other alert configurations are omitted here
|
|
3150
|
-
3. Under Webhook notification, select the
|
|
3159
|
+
3. Under Webhook notification, select the Flashduty channel
|
|
3151
3160
|
|
|
3152
3161
|
<img alt="drawing" width="600" src="https://fcpub-1301667576.cos.ap-nanjing.myqcloud.com/flashduty/doc/jkb-4.png" />
|
|
3153
3162
|
|
|
@@ -3164,7 +3173,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3164
3173
|
|2|Info|Info|
|
|
3165
3174
|
|
|
3166
3175
|
</div>
|
|
3167
|
-
`,
|
|
3176
|
+
`,x=`---
|
|
3168
3177
|
title: "AWS EventBridge Alert Events"
|
|
3169
3178
|
description: "Sync AWS EventBridge alert events to Flashduty via webhook for automated alert noise reduction"
|
|
3170
3179
|
date: "2024-08-20T10:00:00+08:00"
|
|
@@ -3225,10 +3234,10 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3225
3234
|
|
|
3226
3235
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/aws-eb-3.png" />
|
|
3227
3236
|
|
|
3228
|
-
4. In the \`Connection details\` section, enter \`
|
|
3237
|
+
4. In the \`Connection details\` section, enter \`Flashduty\` for \`Connection name\`
|
|
3229
3238
|
5. In the \`Authorization\` section, select \`Other\` for \`Destination type\`
|
|
3230
3239
|
6. Select \`API Key\` for \`Authorization type\`
|
|
3231
|
-
7. Enter \`
|
|
3240
|
+
7. Enter \`Flashduty\` for \`API key name\`, and enter the \`integration_key\` from the integration push URL for \`Value\`
|
|
3232
3241
|
8. Click \`Create\` to save
|
|
3233
3242
|
|
|
3234
3243
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/aws-eb-4.png" />
|
|
@@ -3239,10 +3248,10 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3239
3248
|
|
|
3240
3249
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/aws-eb-5.png" />
|
|
3241
3250
|
|
|
3242
|
-
2. Fill in the information in the \`API destination detail\` editing interface, enter \`
|
|
3251
|
+
2. Fill in the information in the \`API destination detail\` editing interface, enter \`Flashduty\` for \`Name\`
|
|
3243
3252
|
3. Enter the integration push URL for \`API destination endpoint\`
|
|
3244
3253
|
4. Select \`POST\` for \`HTTP method\`
|
|
3245
|
-
5. Select \`Use an existing connection\` for \`Connection type\` and choose the \`
|
|
3254
|
+
5. Select \`Use an existing connection\` for \`Connection type\` and choose the \`Flashduty\` Connection added in Step 1
|
|
3246
3255
|
6. Click \`Create\` to save
|
|
3247
3256
|
|
|
3248
3257
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/aws-eb-6.png" />
|
|
@@ -3252,7 +3261,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3252
3261
|
2. Select \`Buses=>Rules\` from the left navigation bar, create or edit existing rules
|
|
3253
3262
|
3. Other configurations are omitted here
|
|
3254
3263
|
4. For \`Target types\`, select \`EventBridge API destination\` as the target type
|
|
3255
|
-
5. Under \`API destination\`, select \`Use an existing API destination\` and choose the \`
|
|
3264
|
+
5. Under \`API destination\`, select \`Use an existing API destination\` and choose the \`Flashduty\` API destination created in Step 2 from the dropdown
|
|
3256
3265
|
6. Click \`Next\`, configure as needed, and save
|
|
3257
3266
|
|
|
3258
3267
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/aws-eb-7.png" />
|
|
@@ -3261,12 +3270,12 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3261
3270
|
|
|
3262
3271
|
<div class="md-block">
|
|
3263
3272
|
|
|
3264
|
-
1. Since AWS EventBridge events don't have severity levels, all events pushed to
|
|
3265
|
-
2. AWS EventBridge events only have triggers without recovery states, so events received by
|
|
3273
|
+
1. Since AWS EventBridge events don't have severity levels, all events pushed to Flashduty will have a Warning severity
|
|
3274
|
+
2. AWS EventBridge events only have triggers without recovery states, so events received by Flashduty won't automatically associate with recovery
|
|
3266
3275
|
|
|
3267
3276
|
</div>
|
|
3268
3277
|
|
|
3269
|
-
`,
|
|
3278
|
+
`,F=`---
|
|
3270
3279
|
title: "Dynatrace Alert Events"
|
|
3271
3280
|
description: "Sync Dynatrace alert events to Flashduty via webhook to achieve automated alert noise reduction."
|
|
3272
3281
|
date: "2024-08-20T10:00:00+08:00"
|
|
@@ -3335,7 +3344,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3335
3344
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/dyn-3.png" />
|
|
3336
3345
|
|
|
3337
3346
|
5. Under \`Notification type\`, select \`Custom Integration\`
|
|
3338
|
-
6. Fill in \`Display name\` with \`
|
|
3347
|
+
6. Fill in \`Display name\` with \`Flashduty\`
|
|
3339
3348
|
7. In \`Webhook URL\`, enter the integration push URL (generated after saving the integration name on the current page)
|
|
3340
3349
|
8. Keep \`Call webhook if problem is closed\` enabled
|
|
3341
3350
|
|
|
@@ -3426,14 +3435,14 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3426
3435
|
|
|
3427
3436
|
## I. Huawei Cloud LTS Alert Push Configuration
|
|
3428
3437
|
|
|
3429
|
-
### Step 1: Create
|
|
3438
|
+
### Step 1: Create Flashduty Alert Channel
|
|
3430
3439
|
1. Log in to your Huawei Cloud Console, search for \`SMN\` (Simple Message Notification) service and enter its console
|
|
3431
3440
|
2. Select \`Topic Management=>Topics\` from the left navigation bar
|
|
3432
|
-
3. Click \`Create Topic\`, enter \`
|
|
3441
|
+
3. Click \`Create Topic\`, enter \`Flashduty\` as the topic name in the edit page and confirm
|
|
3433
3442
|
|
|
3434
3443
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-1.png" alt="drawing" width="500"/>
|
|
3435
3444
|
|
|
3436
|
-
4. Return to the topic list and click \`Add Subscription\` in the newly created
|
|
3445
|
+
4. Return to the topic list and click \`Add Subscription\` in the newly created Flashduty topic
|
|
3437
3446
|
|
|
3438
3447
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-2.png" alt="drawing" width="500"/>
|
|
3439
3448
|
|
|
@@ -3452,14 +3461,14 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3452
3461
|
|
|
3453
3462
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-5.png" alt="drawing" width="500"/>
|
|
3454
3463
|
|
|
3455
|
-
3. In the template edit page, enter **
|
|
3464
|
+
3. In the template edit page, enter **Flashduty** as the name, select \`English\` as the message header language
|
|
3456
3465
|
4. Select \`HTTP/HTTPS\` as notification type and \`JSON\` as data type
|
|
3457
3466
|
5. Click \`Confirm\` to save
|
|
3458
3467
|
|
|
3459
3468
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-6.png" alt="drawing" width="500"/>
|
|
3460
3469
|
|
|
3461
3470
|
6. Return to the \`Alert Action Rules\` list and click \`Create\`
|
|
3462
|
-
7. Enter **
|
|
3471
|
+
7. Enter **Flashduty** as the rule name, select the previously created **Flashduty** topic and template
|
|
3463
3472
|
|
|
3464
3473
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-7.png" alt="drawing" width="500"/>
|
|
3465
3474
|
|
|
@@ -3469,7 +3478,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3469
3478
|
2. Create or edit existing alert rules
|
|
3470
3479
|
3. Other configurations are omitted here
|
|
3471
3480
|
4. In \`Advanced Settings\`, check both \`Alert Trigger\` and \`Alert Recovery\` in notification scenarios
|
|
3472
|
-
5. Enable action rules and select the **
|
|
3481
|
+
5. Enable action rules and select the **Flashduty** rule created in \`Step 2\`
|
|
3473
3482
|
6. Select \`English\` as language, click \`Confirm\` to save after configuration is complete
|
|
3474
3483
|
|
|
3475
3484
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-8.png" alt="drawing" width="500"/>
|
|
@@ -3486,7 +3495,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3486
3495
|
|Info|Info|Info|
|
|
3487
3496
|
|
|
3488
3497
|
</div>
|
|
3489
|
-
`,
|
|
3498
|
+
`,R=`---
|
|
3490
3499
|
title: "Google Cloud Monitoring Alert Events"
|
|
3491
3500
|
description: "Sync Google Cloud Monitoring alert events to Flashduty via webhook for automated alert noise reduction"
|
|
3492
3501
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -3547,18 +3556,18 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3547
3556
|
|
|
3548
3557
|
3. Find \`Webhooks\` on the Notification channels page and click \`ADD NEW\`
|
|
3549
3558
|
4. Enter the integration push URL in the \`Endpoint URL\` field (the URL will be generated after saving the integration name on the current page)
|
|
3550
|
-
5. Enter **
|
|
3559
|
+
5. Enter **Flashduty** in the \`Display Name\` field
|
|
3551
3560
|
6. Click \`TEST CONNECTION\` and then \`SAVE\` to complete
|
|
3552
3561
|
|
|
3553
3562
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/google-cm-2.png" />
|
|
3554
3563
|
|
|
3555
|
-
### Step 2: Use
|
|
3564
|
+
### Step 2: Use Flashduty Alert Channel in Alert Policy
|
|
3556
3565
|
|
|
3557
3566
|
1. Return to the \`Alerting\` page
|
|
3558
3567
|
2. Create or edit an existing policy
|
|
3559
3568
|
3. Skip other policy configurations (configure alert conditions according to business requirements)
|
|
3560
3569
|
4. On the \`Notifications and name\` page, keep \`Use notification channel\` enabled
|
|
3561
|
-
5. Select the **
|
|
3570
|
+
5. Select the **Flashduty** channel created in **Step 1** from the \`Notification channels\` dropdown, and check \`Notify on incident closure\`
|
|
3562
3571
|
6. Complete other configurations and save the policy
|
|
3563
3572
|
|
|
3564
3573
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/google-cm-3.png" />
|
|
@@ -3577,7 +3586,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3577
3586
|
|No severity|Info|Info|
|
|
3578
3587
|
|
|
3579
3588
|
</div>
|
|
3580
|
-
`,
|
|
3589
|
+
`,L=`---
|
|
3581
3590
|
title: "Splunk Alert Events"
|
|
3582
3591
|
description: "Sync Splunk alert events to Flashduty via webhook for automated alert noise reduction"
|
|
3583
3592
|
date: "2024-08-20T10:00:00+08:00"
|
|
@@ -3705,14 +3714,14 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
3705
3714
|
|
|
3706
3715
|
## I. AppDynamics Alert Push Configuration
|
|
3707
3716
|
|
|
3708
|
-
### Step 1: Configure
|
|
3717
|
+
### Step 1: Configure Flashduty Alert Channel
|
|
3709
3718
|
|
|
3710
3719
|
1. Log in to your AppDynamics console
|
|
3711
3720
|
2. Find \`Alert Respond\`, select \`HTTP Request Templates\`, and click \`New\` to create an alert channel
|
|
3712
3721
|
|
|
3713
3722
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/appdyn-1.png" />
|
|
3714
3723
|
|
|
3715
|
-
3. In the template configuration, enter **
|
|
3724
|
+
3. In the template configuration, enter **Flashduty** as the \`Name\`
|
|
3716
3725
|
4. In the \`Request URL\` section, select **POST** as the \`Method\`, and enter the integration push URL in \`Raw URL\` (enter the integration name on this page, and the URL will be generated after saving)
|
|
3717
3726
|
|
|
3718
3727
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/appdyn-2.png" />
|
|
@@ -3785,7 +3794,7 @@ If you need to configure \`Custom Templating Variables\`, you can refer to the f
|
|
|
3785
3794
|
|
|
3786
3795
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/appdyn-6.png" />
|
|
3787
3796
|
|
|
3788
|
-
3. In the \`Create HTTP Action\` popup, enter a Name, select **
|
|
3797
|
+
3. In the \`Create HTTP Action\` popup, enter a Name, select **Flashduty** created in \`Step 1\` as the \`HTTP Request Template\`, and click \`SAVE\`
|
|
3789
3798
|
|
|
3790
3799
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/appdyn-7.png" />
|
|
3791
3800
|
|
|
@@ -3865,11 +3874,11 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3865
3874
|
|
|
3866
3875
|
## I. SolarWinds Alert Push Configuration
|
|
3867
3876
|
|
|
3868
|
-
### Step 1: Configure
|
|
3877
|
+
### Step 1: Configure Flashduty Alert Channel
|
|
3869
3878
|
|
|
3870
3879
|
**Prerequisites**
|
|
3871
3880
|
1. SolarWinds has five types of alerts (Anomaly, Entity, Event, Log, Metric Group), each requiring a different alert channel, so five alert channels need to be created
|
|
3872
|
-
2. When creating Webhook channels, it's recommended to name them using the format:
|
|
3881
|
+
2. When creating Webhook channels, it's recommended to name them using the format: Type_Flashduty, for example: Anomaly_Flashduty
|
|
3873
3882
|
3. When selecting **Select Custom Body Template Based On The Alert Types**, the system will generate a default **HTTP POST Body**. **Please do not modify the generated template content**
|
|
3874
3883
|
|
|
3875
3884
|
**Getting Started**
|
|
@@ -3879,7 +3888,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3879
3888
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/sw-1.png" />
|
|
3880
3889
|
|
|
3881
3890
|
3. Click \`CREATE CONFIGURATION\` to create the corresponding alert channel
|
|
3882
|
-
4. Select **POST** for \`Method\`, name it according to the prerequisites, e.g.,
|
|
3891
|
+
4. Select **POST** for \`Method\`, name it according to the prerequisites, e.g., Anomaly_Flashduty
|
|
3883
3892
|
5. Fill in the integration push URL in \`Destination URL\` (enter the integration name on the current page, save to generate the URL)
|
|
3884
3893
|
6. Select **application/json** for \`Content Type\`
|
|
3885
3894
|
7. Choose the type you need to create in \`Select Custom Body Template Based On The Alert Types\`, e.g., Anomaly Based Alert
|
|
@@ -3895,7 +3904,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3895
3904
|
1. Find \`Alerts\` in the left navigation bar, select \`Alert Settings\`
|
|
3896
3905
|
2. Create or edit existing policies (configure alert rules as needed, alert rule configuration is omitted here)
|
|
3897
3906
|
3. In the \`Actions\` section of the policy configuration page, select **Webhook** for \`Services\`
|
|
3898
|
-
4. Select the
|
|
3907
|
+
4. Select the Anomaly_Flashduty channel created in Step 1 for \`Configuration\`
|
|
3899
3908
|
5. Keep \`Send an additional notification when the Alert is cleared\` enabled
|
|
3900
3909
|
|
|
3901
3910
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/sw-4.png" />
|
|
@@ -3915,7 +3924,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
3915
3924
|
|Info|Info|Info|
|
|
3916
3925
|
|
|
3917
3926
|
</div>
|
|
3918
|
-
`,
|
|
3927
|
+
`,E=`---
|
|
3919
3928
|
title: "Volcengine Cloud Monitor Alert Events"
|
|
3920
3929
|
description: "Sync Volcengine Cloud Monitor alert events to Flashduty via webhook for automated alert noise reduction"
|
|
3921
3930
|
date: "2024-08-20T10:00:00+08:00"
|
|
@@ -3968,14 +3977,14 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
3968
3977
|
|
|
3969
3978
|
## I. Volcengine Cloud Monitor Alert Push Configuration
|
|
3970
3979
|
|
|
3971
|
-
### Step 1: Create
|
|
3980
|
+
### Step 1: Create Flashduty Alert Channel
|
|
3972
3981
|
1. Log in to your Volcengine console, search for \`Cloud Monitor\` product, and enter the corresponding product console
|
|
3973
3982
|
2. Select \`Notification Groups=>Callback\` from the left navigation bar
|
|
3974
3983
|
3. Click \`Create Callback URL\`
|
|
3975
3984
|
|
|
3976
3985
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/volcengine/event-1.png" alt="drawing" width="500"/>
|
|
3977
3986
|
|
|
3978
|
-
4. Fill in the information on the edit page, enter \`
|
|
3987
|
+
4. Fill in the information on the edit page, enter \`Flashduty_Metric\` as the callback URL name
|
|
3979
3988
|
5. Select \`General Callback URL\` as the callback URL type
|
|
3980
3989
|
6. Enter the **integration push URL** (enter the integration name on the current page, save to generate the URL)
|
|
3981
3990
|
7. Click \`Confirm\` to complete the creation (connectivity testing is not supported; even if the test shows connectivity failure, it won't affect alert reception)
|
|
@@ -3988,7 +3997,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
3988
3997
|
2. Create or edit existing alert policies (configure policies as needed, skipped here)
|
|
3989
3998
|
3. On the policy edit page, select \`Rules and Resources\` for \`Send Aggregation Policy\`
|
|
3990
3999
|
4. Keep \`Alert Recovery Notification\` enabled
|
|
3991
|
-
5. Check \`Alert Callback\` in \`Alert Channels\`, and select the \`
|
|
4000
|
+
5. Check \`Alert Callback\` in \`Alert Channels\`, and select the \`Flashduty_Metric\` channel created in **Step 1** from the dropdown menu
|
|
3992
4001
|
6. After completing other configurations, click \`Confirm\` to finish
|
|
3993
4002
|
|
|
3994
4003
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/volcengine/event-3.png" alt="drawing" width="500"/>
|
|
@@ -4004,7 +4013,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4004
4013
|
|Notice|Info|Info|
|
|
4005
4014
|
|
|
4006
4015
|
</div>
|
|
4007
|
-
`,
|
|
4016
|
+
`,P=`---
|
|
4008
4017
|
title: "Volcengine Cloud Monitor Event Center Alert Events"
|
|
4009
4018
|
description: "Sync Volcengine Cloud Monitor Event Center alert events to Flashduty via webhook for automated alert noise reduction"
|
|
4010
4019
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -4057,14 +4066,14 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4057
4066
|
|
|
4058
4067
|
## I. Volcengine Cloud Monitor Event Center Alert Push Configuration
|
|
4059
4068
|
|
|
4060
|
-
### Step 1: Create
|
|
4069
|
+
### Step 1: Create Flashduty Alert Channel
|
|
4061
4070
|
1. Log in to your Volcengine console, search for \`Cloud Monitor\` product, and enter the corresponding product console
|
|
4062
4071
|
2. Select \`Notification Groups=>Callback\` from the left navigation bar
|
|
4063
4072
|
3. Click \`Create Callback URL\`
|
|
4064
4073
|
|
|
4065
4074
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/volcengine/event-1.png" alt="drawing" width="500"/>
|
|
4066
4075
|
|
|
4067
|
-
4. Fill in the information on the edit page, enter \`
|
|
4076
|
+
4. Fill in the information on the edit page, enter \`Flashduty_Event\` as the callback URL name
|
|
4068
4077
|
5. Select \`General Callback URL\` as the callback URL type
|
|
4069
4078
|
6. Enter the **integration push URL** (enter the integration name on the current page, save to generate the URL)
|
|
4070
4079
|
7. Click \`Confirm\` to complete the creation (connectivity testing is not supported; even if the test shows connectivity failure, it won't affect alert reception)
|
|
@@ -4075,7 +4084,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4075
4084
|
|
|
4076
4085
|
1. Select \`Event Center=>Event Rules\` from the left navigation bar
|
|
4077
4086
|
2. Create or edit existing event rules (configure rules as needed, skipped here)
|
|
4078
|
-
3. On the rule editing page, check \`Alert Callback\` under delivery channels, and select the \`
|
|
4087
|
+
3. On the rule editing page, check \`Alert Callback\` under delivery channels, and select the \`Flashduty_Event\` channel created in **Step 1** from the alert callback dropdown
|
|
4079
4088
|
4. After completing other configurations, click \`Confirm\` to finish
|
|
4080
4089
|
|
|
4081
4090
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/volcengine/metric-3.png" alt="drawing" width="500"/>
|
|
@@ -4091,7 +4100,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4091
4100
|
|Notice|Info|Info|
|
|
4092
4101
|
|
|
4093
4102
|
</div>
|
|
4094
|
-
`,
|
|
4103
|
+
`,D=`---
|
|
4095
4104
|
title: "Volcengine Log Service (TLS) Alert Events"
|
|
4096
4105
|
description: "Sync Volcengine Log Service (TLS) alert events to Flashduty via webhook for automated alert noise reduction"
|
|
4097
4106
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -4144,14 +4153,14 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4144
4153
|
|
|
4145
4154
|
## I. Volcengine Log Service (TLS) Alert Push Configuration
|
|
4146
4155
|
|
|
4147
|
-
### Step 1: Create
|
|
4156
|
+
### Step 1: Create Flashduty Alert Channel
|
|
4148
4157
|
1. Log in to your Volcengine console, search for \`TLS\` Log Service product, and enter the corresponding product console
|
|
4149
4158
|
2. Select \`Alert=>Notification Management\` from the left navigation bar
|
|
4150
4159
|
3. Choose \`Webhook Alert Integration\` and click \`Create Webhook Alert Integration\`
|
|
4151
4160
|
|
|
4152
4161
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/volcengine/tls-1.png" alt="drawing" width="500"/>
|
|
4153
4162
|
|
|
4154
|
-
4. Fill in the information in the pop-up editor, enter \`
|
|
4163
|
+
4. Fill in the information in the pop-up editor, enter \`Flashduty\` as the name
|
|
4155
4164
|
5. Select \`Custom Webhook\` as type and \`POST\` as request method
|
|
4156
4165
|
6. Enter the **Integration Push URL** as the request URL (generated after saving the integration name on the current page)
|
|
4157
4166
|
7. Keep the request headers as default and click \`Create\`
|
|
@@ -4162,7 +4171,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4162
4171
|
|
|
4163
4172
|
1. Return to the \`Notification Management\` page
|
|
4164
4173
|
2. Select \`Content Templates\` and click \`Create Content Template\`
|
|
4165
|
-
3. Fill in the relevant information, enter \`
|
|
4174
|
+
3. Fill in the relevant information, enter \`Flashduty\` as the template name
|
|
4166
4175
|
4. Other channel content can be empty. In the \`Custom Webhook\` notification content, enter the following template:
|
|
4167
4176
|
|
|
4168
4177
|
\`\`\`
|
|
@@ -4195,11 +4204,11 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4195
4204
|
|
|
4196
4205
|
1. Return to the \`Notification Management\` page
|
|
4197
4206
|
2. Select \`Notification Groups\` and click \`Create Notification Group\`
|
|
4198
|
-
3. Fill in the relevant information, enter \`
|
|
4207
|
+
3. Fill in the relevant information, enter \`Flashduty\` as the group name
|
|
4199
4208
|
4. Configure notification rules and other settings as needed (skipped here)
|
|
4200
4209
|
5. In notification channel configuration, keep \`Custom Webhook\` checked
|
|
4201
|
-
6. Select the **
|
|
4202
|
-
7. Select the **
|
|
4210
|
+
6. Select the **Flashduty** channel created in **Step 1** for \`Webhook\`
|
|
4211
|
+
7. Select the **Flashduty** template created in **Step 2** for \`Content Template\`
|
|
4203
4212
|
8. Click \`Save\` after completing other configurations
|
|
4204
4213
|
|
|
4205
4214
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/volcengine/tls-4.png" alt="drawing" width="500"/>
|
|
@@ -4210,7 +4219,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4210
4219
|
2. Create a new or edit an existing alert policy
|
|
4211
4220
|
3. Configure alert rules as needed (skipped here)
|
|
4212
4221
|
4. Click \`Associate Notification Group\` in the \`Notification Group\` section
|
|
4213
|
-
5. In the pop-up selection box, choose the **
|
|
4222
|
+
5. In the pop-up selection box, choose the **Flashduty** notification group created in **Step 3**, then click \`Associate\`
|
|
4214
4223
|
6. Click \`Create/Save\` after configuring other settings
|
|
4215
4224
|
|
|
4216
4225
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/volcengine/tls-5.png" alt="drawing" width="500"/>
|
|
@@ -4228,7 +4237,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4228
4237
|
</div>
|
|
4229
4238
|
|
|
4230
4239
|
</div>
|
|
4231
|
-
`,
|
|
4240
|
+
`,N=`---
|
|
4232
4241
|
title: "OpManager Alert Events"
|
|
4233
4242
|
description: "Sync OpManager alert events to Flashduty via webhook for automated alert noise reduction"
|
|
4234
4243
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -4346,7 +4355,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4346
4355
|
|
|
4347
4356
|
10. Select the devices you want to apply this configuration to, move them to the selected devices window using the right arrow, then click next
|
|
4348
4357
|
11. Configure Time Window/Delayed Trigger/Recurring Trigger as needed, then click next
|
|
4349
|
-
12. Add the name \`
|
|
4358
|
+
12. Add the name \`Flashduty\` for this configuration profile, then click \`Save\` to complete the setup
|
|
4350
4359
|
|
|
4351
4360
|
</dev>
|
|
4352
4361
|
|
|
@@ -4418,7 +4427,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
4418
4427
|
1. Log in to your \`Meraki\` console and select the device you want to configure alerts for
|
|
4419
4428
|
2. On the \`Alerts\` page, configure \`Cellular gateway\` and other sections as needed
|
|
4420
4429
|
3. Under \`Webhooks\`, configure \`HTTPS receivers\`
|
|
4421
|
-
4. Enter \`
|
|
4430
|
+
4. Enter \`Flashduty\` for \`Name\`, and enter the **integration push URL** for \`URL\`
|
|
4422
4431
|
5. Leave \`Shared secret\` empty, and keep \`Payload template\` as the default \`Meraki(included)\`
|
|
4423
4432
|
6. Click \`Save\` to save the settings
|
|
4424
4433
|
|
|
@@ -4521,7 +4530,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
4521
4530
|
| North | Beijing2/Changchun/Harbin/North China/Inner Mongolia3/Qingdao/Shenyang3/Shijiazhuang/Taiyuan/Tianjin/Zhengzhou |
|
|
4522
4531
|
|
|
4523
4532
|
</div>
|
|
4524
|
-
`,
|
|
4533
|
+
`,q=`---
|
|
4525
4534
|
title: "Guance Alert Events"
|
|
4526
4535
|
description: "Sync Guance alert events to Flashduty via webhook for automated alert noise reduction"
|
|
4527
4536
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -4586,7 +4595,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
4586
4595
|
|
|
4587
4596
|
1. Log in to your \`Guance\` console, select \`Alert Strategies\` under \`Monitoring\`
|
|
4588
4597
|
2. Create new or modify existing alert policies on the \`Alert Strategies\` page
|
|
4589
|
-
3. In the notification configuration section of the alert strategies editing page, select \`severity\` and choose \`
|
|
4598
|
+
3. In the notification configuration section of the alert strategies editing page, select \`severity\` and choose \`Flashduty\` created in Step 1 as the \`Notification Tragets\`
|
|
4590
4599
|
4. Configure other options as needed and click \`Save\` to complete
|
|
4591
4600
|
|
|
4592
4601
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/guance-2.png" />
|
|
@@ -4606,7 +4615,7 @@ Choose this option when you need to route alerts to different channels based on
|
|
|
4606
4615
|
| Data Missing | Info | Info |
|
|
4607
4616
|
|
|
4608
4617
|
</div>
|
|
4609
|
-
`,
|
|
4618
|
+
`,G=`---
|
|
4610
4619
|
title: "Zilliz Alert Events"
|
|
4611
4620
|
description: "Sync Zilliz alert events to Flashduty via webhook for automated alert noise reduction"
|
|
4612
4621
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -4732,15 +4741,15 @@ When you need to route alerts to different channels based on alert payload infor
|
|
|
4732
4741
|
|
|
4733
4742
|
## I. Huawei Cloud APM Alert Push Configuration
|
|
4734
4743
|
|
|
4735
|
-
### Create
|
|
4744
|
+
### Create Flashduty Alert Channel
|
|
4736
4745
|
|
|
4737
4746
|
1. Log in to your Huawei Cloud Console, search for \`SMN\` (Simple Message Notification) service and enter its console
|
|
4738
4747
|
2. Select \`Topic Management=>Topics\` from the left navigation bar
|
|
4739
|
-
3. Click \`Create Topic\`, enter \`
|
|
4748
|
+
3. Click \`Create Topic\`, enter \`Flashduty\` as the topic name in the edit page and confirm
|
|
4740
4749
|
|
|
4741
4750
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-1.png" alt="drawing" width="500"/>
|
|
4742
4751
|
|
|
4743
|
-
4. Return to the topic list and click \`Add Subscription\` in the newly created
|
|
4752
|
+
4. Return to the topic list and click \`Add Subscription\` in the newly created Flashduty topic
|
|
4744
4753
|
|
|
4745
4754
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/hw/lts-2.png" alt="drawing" width="500"/>
|
|
4746
4755
|
|
|
@@ -4756,7 +4765,7 @@ When you need to route alerts to different channels based on alert payload infor
|
|
|
4756
4765
|
|
|
4757
4766
|
#### Step 1: Add Notification Configuration
|
|
4758
4767
|
1. Log in to your \`Huawei Cloud APM\` console, under \`Application Monitoring=>Metrics\`, click \`Notification\`
|
|
4759
|
-
2. Select the corresponding region, click \`Add\`, and select the created \`
|
|
4768
|
+
2. Select the corresponding region, click \`Add\`, and select the created \`Flashduty\` topic
|
|
4760
4769
|
3. Click \`Confirm\` to complete the configuration
|
|
4761
4770
|
|
|
4762
4771
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/hw/hw-apm-1.png" />
|
|
@@ -4766,7 +4775,7 @@ When you need to route alerts to different channels based on alert payload infor
|
|
|
4766
4775
|
2. Select \`Alarm Policy\`, click \`Add Custom Alarm Policy\` or edit an existing alarm policy
|
|
4767
4776
|
3. In the \`Alarm Policy\` edit page, configure alert metrics and conditions according to your business needs
|
|
4768
4777
|
4. In \`Notification Content\`, when referencing variables, it's recommended to use K:V format for easier alert parsing, such as host:\${hostInfo}
|
|
4769
|
-
5. In \`Notification Object\`, select the created \`
|
|
4778
|
+
5. In \`Notification Object\`, select the created \`Flashduty\` notification channel
|
|
4770
4779
|
6. Click \`Confirm\` to complete the configuration
|
|
4771
4780
|
|
|
4772
4781
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/hw/hw-apm-2.png" />
|
|
@@ -4785,7 +4794,7 @@ When you need to route alerts to different channels based on alert payload infor
|
|
|
4785
4794
|
|
|
4786
4795
|
</div>
|
|
4787
4796
|
|
|
4788
|
-
|
|
4797
|
+
`,H=`---
|
|
4789
4798
|
title: "zstack integration"
|
|
4790
4799
|
description: "Push ZStack alerts to Flashduty via webhook, to achieve automatic alert noise reduction."
|
|
4791
4800
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -4873,7 +4882,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4873
4882
|
|
|
4874
4883
|
</div>
|
|
4875
4884
|
|
|
4876
|
-
|
|
4885
|
+
`,$=`---
|
|
4877
4886
|
title: "Keep Alert Integration Guide"
|
|
4878
4887
|
description: "Push alert events to Flashduty through Keep's Provider to achieve automated alert noise reduction."
|
|
4879
4888
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -4954,7 +4963,7 @@ Field|Required|Type|Definition
|
|
|
4954
4963
|
|
|
4955
4964
|
<img alt="drawing" width="600" src="https://download.flashcat.cloud/flashduty/doc/en/fd/keep-2.png" />
|
|
4956
4965
|
|
|
4957
|
-
`,
|
|
4966
|
+
`,Y=`---
|
|
4958
4967
|
title: "ElastAlert2 Alert Integration Guide"
|
|
4959
4968
|
description: "Push alert events to Flashduty through ElastAlert2's Provider to achieve automated alert noise reduction."
|
|
4960
4969
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -5005,7 +5014,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
5005
5014
|
---
|
|
5006
5015
|
|
|
5007
5016
|
### Configure ElastAlert 2 Alerts
|
|
5008
|
-
Follow the [ElastAlert
|
|
5017
|
+
Follow the [ElastAlert Flashduty](https://elastalert2.readthedocs.io/en/latest/alerts.html#flashduty) push configuration document
|
|
5009
5018
|
|
|
5010
5019
|
1. Create or edit the alert rule file, for example \`rules/elastalert2_alert.yaml\`.
|
|
5011
5020
|
2. Fill in the \`flashduty\` alert type in the \`alert\` field.
|
|
@@ -5057,7 +5066,7 @@ filter:
|
|
|
5057
5066
|
query_string:
|
|
5058
5067
|
query: "created_at:*"
|
|
5059
5068
|
|
|
5060
|
-
# -------
|
|
5069
|
+
# ------- Flashduty ----------------
|
|
5061
5070
|
alert: flashduty
|
|
5062
5071
|
flashduty_integration_key: "xxxx"
|
|
5063
5072
|
flashduty_title: "elastalert2 alert"
|
|
@@ -5072,10 +5081,10 @@ flashduty_group: "group1"
|
|
|
5072
5081
|
flashduty_cluster: "bj"
|
|
5073
5082
|
flashduty_app: "app1"
|
|
5074
5083
|
flashduty_env: "dev"
|
|
5075
|
-
# -------
|
|
5084
|
+
# ------- Flashduty ----------------
|
|
5076
5085
|
\`\`\`
|
|
5077
5086
|
|
|
5078
|
-
5. Restart ElastAlert and wait for the alert to trigger.`,
|
|
5087
|
+
5. Restart ElastAlert and wait for the alert to trigger.`,j=`---
|
|
5079
5088
|
title: "Dingtalk Alert Integration"
|
|
5080
5089
|
description: "Generate a unique Dingtalk robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Dingtalk"
|
|
5081
5090
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -5157,7 +5166,7 @@ By default, the system always creates new alerts for each message, but you can s
|
|
|
5157
5166
|
---
|
|
5158
5167
|
|
|
5159
5168
|
Currently, all alerts pushed to Flashduty through the Dingtalk integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/flashduty/alert-pipelines).
|
|
5160
|
-
`,
|
|
5169
|
+
`,z=`---
|
|
5161
5170
|
title: "Feishu Alert Integration"
|
|
5162
5171
|
description: "Generate a unique Feishu robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Feishu"
|
|
5163
5172
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -5239,7 +5248,7 @@ By default, the system always creates new alerts for each message, but you can s
|
|
|
5239
5248
|
---
|
|
5240
5249
|
|
|
5241
5250
|
Currently, all alerts pushed to Flashduty through the Feishu(lark) integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/flashduty/alert-pipelines).
|
|
5242
|
-
`,
|
|
5251
|
+
`,B=`---
|
|
5243
5252
|
title: "Volcengine Cloud-Detect Alert Events"
|
|
5244
5253
|
description: "Sync Volcengine Cloud-Detect alert events to Flashduty via webhook for automated alert noise reduction"
|
|
5245
5254
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -5341,7 +5350,7 @@ Go to the \`Monit\` - \`Alert Rules\` - \`Rule Details\` page to configure monit
|
|
|
5341
5350
|

|
|
5342
5351
|
|
|
5343
5352
|
In some cases, you may want to route alerts generated by the same alert rule to different channels based on conditions. In this case, you can choose to deliver alerts directly to the integration rather than to the channels, and set routing rules under the current integration.
|
|
5344
|
-
`,
|
|
5353
|
+
`,K=`---
|
|
5345
5354
|
title: "RUM Alert Integration"
|
|
5346
5355
|
description: "Flashduty RUM alert integration, RUM service reports alerts through this integration"
|
|
5347
5356
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -5361,7 +5370,7 @@ Go to the \`RUM\` - \`Application Details\` - \`Alert Settings\` page to enable
|
|
|
5361
5370
|

|
|
5362
5371
|
|
|
5363
5372
|
For more information, please refer to [RUM Issue Alerting](https://docs.flashcat.cloud/en/flashduty/rum/issue-alerting?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5).
|
|
5364
|
-
`,
|
|
5373
|
+
`,J=`---
|
|
5365
5374
|
title: "Cloudflare Alert Events"
|
|
5366
5375
|
description: "Sync Cloudflaret alert events to Flashduty via webhook for automated alert noise reduction"
|
|
5367
5376
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -5433,6 +5442,232 @@ Currently, all alerts pushed to Flashduty through the Cloudflare integration are
|
|
|
5433
5442
|
</div>
|
|
5434
5443
|
|
|
5435
5444
|
`,Z=`---
|
|
5445
|
+
title: "Wecom Alert Integration"
|
|
5446
|
+
description: "Generate a unique Wecom robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Wecom"
|
|
5447
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
5448
|
+
url: "https://docs.flashcat.cloud/en/flashduty/Wecom-alert-integration-guide"
|
|
5449
|
+
---
|
|
5450
|
+
|
|
5451
|
+
Generate a unique Wecom robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Wecom.
|
|
5452
|
+
|
|
5453
|
+
<div class="hide">
|
|
5454
|
+
|
|
5455
|
+
## Operation Steps
|
|
5456
|
+
---
|
|
5457
|
+
|
|
5458
|
+
### Create Wecom Alert Integration
|
|
5459
|
+
|
|
5460
|
+
You can obtain a Wecom alert integration address through either of these two methods:
|
|
5461
|
+
|
|
5462
|
+
#### Using Dedicated Integration
|
|
5463
|
+
|
|
5464
|
+
Choose this method when you don't need to route alert events to different channels. It's simpler and recommended.
|
|
5465
|
+
|
|
5466
|
+
<details>
|
|
5467
|
+
<summary>Expand</summary>
|
|
5468
|
+
|
|
5469
|
+
1. Go to the Flashduty console, select **Channel**, and enter a specific channel's details page
|
|
5470
|
+
2. Select the **Integration** tab, click **Add Integration** to enter the integration page
|
|
5471
|
+
3. Choose **Wecom Alert** integration and click **Save** to generate a card
|
|
5472
|
+
4. Click the generated card to view the **Wecom Alert Integration URL**, copy it for later use, and you're done
|
|
5473
|
+
|
|
5474
|
+
</details>
|
|
5475
|
+
|
|
5476
|
+
#### Using Shared Integration
|
|
5477
|
+
|
|
5478
|
+
Choose this method when you need to route alerts to different channels based on the alert event's payload information.
|
|
5479
|
+
|
|
5480
|
+
<details>
|
|
5481
|
+
<summary>Expand</summary>
|
|
5482
|
+
|
|
5483
|
+
1. Go to the Flashduty console, select **Integration Center => Alert Events** to enter the integration selection page
|
|
5484
|
+
2. Select **Wecom Alert** integration:
|
|
5485
|
+
- **Integration Name**: Define a name for the current integration
|
|
5486
|
+
- **Message Type**: Select Wecom alert message type, currently only Text and Markdown are supported
|
|
5487
|
+
- **Push Mode**: Choose when to trigger or recover alerts for Wecom notifications
|
|
5488
|
+
3. Copy the **Wecom Alert Integration URL** for later use
|
|
5489
|
+
4. Configure the default route and select the corresponding channel (after integration creation, you can go to \`Routes\` to configure more routing rules)
|
|
5490
|
+
5. Done
|
|
5491
|
+
|
|
5492
|
+
</details>
|
|
5493
|
+
</div>
|
|
5494
|
+
|
|
5495
|
+
### Customize Wecom Alert Integration
|
|
5496
|
+
|
|
5497
|
+
#### Wecom Alert Integration URL
|
|
5498
|
+
|
|
5499
|
+
The system will generate a unique Wecom alert integration URL for you. This URL is compatible with Wecom robot message protocol. When platforms only support Wecom robot channels, you can use this URL to receive corresponding messages.
|
|
5500
|
+
|
|
5501
|
+
#### Push Mode
|
|
5502
|
+
|
|
5503
|
+
By default, the system always creates new alerts for each message, but you can switch to these modes:
|
|
5504
|
+
|
|
5505
|
+
**Trigger or Close Alert Based on Rules**: In this mode, when receiving a new message, the system matches messages according to your rules and triggers new alerts or closes existing alerts based on the matching results.
|
|
5506
|
+
|
|
5507
|
+
- You need to fill in at least one **trigger** rule
|
|
5508
|
+
- You must set up regex extraction rules for Alert Key. The system uses this field to find historical alerts for updates or closure. **If regex extraction fails, the system will use the message title to generate an Alert Key** to ensure alerts won't be lost due to configuration errors
|
|
5509
|
+
- You can choose whether to discard messages when none of the rules match
|
|
5510
|
+
|
|
5511
|
+
Configuration example:
|
|
5512
|
+
|
|
5513
|
+
- Receive all messages, close the alert when the message content contains **RESOLVED**, otherwise trigger a new alert
|
|
5514
|
+
- Extract Alert Key from messages using the rule **/(.*)/**.
|
|
5515
|
+
|
|
5516
|
+
|
|
5517
|
+
### Notes
|
|
5518
|
+
- Wecom alert integration URL only supports Text and Markdown message types; other message types cannot be received
|
|
5519
|
+
- Flashduty will generate a default alert title: "Wecom robot Alert , If you need to change the title, you can customize it using the [alert pipeline](https://docs.flashcat.cloud/en/flashduty/alert-pipelines)"
|
|
5520
|
+
|
|
5521
|
+
## Severity Mapping
|
|
5522
|
+
---
|
|
5523
|
+
|
|
5524
|
+
Currently, all alerts pushed to Flashduty through the Wecom integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/flashduty/alert-pipelines).
|
|
5525
|
+
|
|
5526
|
+
---
|
|
5527
|
+
title: "Wecom Alert Integration"
|
|
5528
|
+
description: "Generate a unique Wecom robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Wecom"
|
|
5529
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
5530
|
+
url: "https://docs.flashcat.cloud/en/flashduty/Wecom-alert-integration-guide"
|
|
5531
|
+
---
|
|
5532
|
+
|
|
5533
|
+
Generate a unique Wecom robot address in Flashduty, and synchronize the occurrence and recovery of alerts through Wecom.
|
|
5534
|
+
|
|
5535
|
+
<div class="hide">
|
|
5536
|
+
|
|
5537
|
+
## Operation Steps
|
|
5538
|
+
---
|
|
5539
|
+
|
|
5540
|
+
### Create Wecom Alert Integration
|
|
5541
|
+
|
|
5542
|
+
You can obtain a Wecom alert integration address through either of these two methods:
|
|
5543
|
+
|
|
5544
|
+
#### Using Dedicated Integration
|
|
5545
|
+
|
|
5546
|
+
Choose this method when you don't need to route alert events to different channels. It's simpler and recommended.
|
|
5547
|
+
|
|
5548
|
+
<details>
|
|
5549
|
+
<summary>Expand</summary>
|
|
5550
|
+
|
|
5551
|
+
1. Go to the Flashduty console, select **Channel**, and enter a specific channel's details page
|
|
5552
|
+
2. Select the **Integration** tab, click **Add Integration** to enter the integration page
|
|
5553
|
+
3. Choose **Wecom Alert** integration and click **Save** to generate a card
|
|
5554
|
+
4. Click the generated card to view the **Wecom Alert Integration URL**, copy it for later use, and you're done
|
|
5555
|
+
|
|
5556
|
+
</details>
|
|
5557
|
+
|
|
5558
|
+
#### Using Shared Integration
|
|
5559
|
+
|
|
5560
|
+
Choose this method when you need to route alerts to different channels based on the alert event's payload information.
|
|
5561
|
+
|
|
5562
|
+
<details>
|
|
5563
|
+
<summary>Expand</summary>
|
|
5564
|
+
|
|
5565
|
+
1. Go to the Flashduty console, select **Integration Center => Alert Events** to enter the integration selection page
|
|
5566
|
+
2. Select **Wecom Alert** integration:
|
|
5567
|
+
- **Integration Name**: Define a name for the current integration
|
|
5568
|
+
- **Message Type**: Select Wecom alert message type, currently only Text and Markdown are supported
|
|
5569
|
+
- **Push Mode**: Choose when to trigger or recover alerts for Wecom notifications
|
|
5570
|
+
3. Copy the **Wecom Alert Integration URL** for later use
|
|
5571
|
+
4. Configure the default route and select the corresponding channel (after integration creation, you can go to \`Routes\` to configure more routing rules)
|
|
5572
|
+
5. Done
|
|
5573
|
+
|
|
5574
|
+
</details>
|
|
5575
|
+
</div>
|
|
5576
|
+
|
|
5577
|
+
### Customize Wecom Alert Integration
|
|
5578
|
+
|
|
5579
|
+
#### Wecom Alert Integration URL
|
|
5580
|
+
|
|
5581
|
+
The system will generate a unique Wecom alert integration URL for you. This URL is compatible with Wecom robot message protocol. When platforms only support Wecom robot channels, you can use this URL to receive corresponding messages.
|
|
5582
|
+
|
|
5583
|
+
#### Push Mode
|
|
5584
|
+
|
|
5585
|
+
By default, the system always creates new alerts for each message, but you can switch to these modes:
|
|
5586
|
+
|
|
5587
|
+
**Trigger or Close Alert Based on Rules**: In this mode, when receiving a new message, the system matches messages according to your rules and triggers new alerts or closes existing alerts based on the matching results.
|
|
5588
|
+
|
|
5589
|
+
- You need to fill in at least one **trigger** rule
|
|
5590
|
+
- You must set up regex extraction rules for Alert Key. The system uses this field to find historical alerts for updates or closure. **If regex extraction fails, the system will use the random to generate an Alert Key** to ensure alerts won't be lost due to configuration errors
|
|
5591
|
+
- You can choose whether to discard messages when none of the rules match
|
|
5592
|
+
|
|
5593
|
+
Configuration example:
|
|
5594
|
+
|
|
5595
|
+
- Receive all messages, close the alert when the message content contains **RESOLVED**, otherwise trigger a new alert
|
|
5596
|
+
- Extract Alert Key from messages using the rule **/(.*)/**.
|
|
5597
|
+
|
|
5598
|
+
|
|
5599
|
+
### Notes
|
|
5600
|
+
- Wecom alert integration URL only supports Text and Markdown message types; other message types cannot be received
|
|
5601
|
+
- Flashduty will generate a default alert title: "Wecom robot Alert , If you need to change the title, you can customize it using the [alert pipeline](https://docs.flashcat.cloud/en/flashduty/alert-pipelines)"
|
|
5602
|
+
|
|
5603
|
+
## Severity Mapping
|
|
5604
|
+
---
|
|
5605
|
+
|
|
5606
|
+
Currently, all alerts pushed to Flashduty through the Wecom integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/flashduty/alert-pipelines).`,Q=`---
|
|
5607
|
+
title: "Harbor Alert Events"
|
|
5608
|
+
description: "Sync Harbor alert events to Flashduty via webhook for automated alert noise reduction"
|
|
5609
|
+
date: "2024-07-05T10:00:00+08:00"
|
|
5610
|
+
url: "https://docs.flashcat.cloud/en/flashduty/volcengine-tls-integration-guide"
|
|
5611
|
+
---
|
|
5612
|
+
|
|
5613
|
+
Sync Harbor alert events to Flashduty via webhook for automated alert noise reduction.
|
|
5614
|
+
|
|
5615
|
+
<div class="hide">
|
|
5616
|
+
|
|
5617
|
+
## In Flashduty
|
|
5618
|
+
---
|
|
5619
|
+
You can obtain an integration push URL through either of these two methods:
|
|
5620
|
+
|
|
5621
|
+
### Using Private Integration
|
|
5622
|
+
|
|
5623
|
+
Choose this method when you don't need to route alert events to different channels - it's simpler.
|
|
5624
|
+
|
|
5625
|
+
<details>
|
|
5626
|
+
<summary>Expand</summary>
|
|
5627
|
+
|
|
5628
|
+
1. Go to the Flashduty console, select **Channel**, and enter a channel's details page
|
|
5629
|
+
2. Select the **Integrations** tab, click **Add Integration** to enter the integration page
|
|
5630
|
+
3. Choose **Harbor** integration and click **Save** to generate a card
|
|
5631
|
+
4. Click the generated card to view the **Push URL**, copy it for later use, and you're done
|
|
5632
|
+
|
|
5633
|
+
</details>
|
|
5634
|
+
|
|
5635
|
+
### Using Shared Integration
|
|
5636
|
+
|
|
5637
|
+
Choose this method when you need to route alerts to different channels based on the alert event payload.
|
|
5638
|
+
|
|
5639
|
+
<details>
|
|
5640
|
+
<summary>Expand</summary>
|
|
5641
|
+
|
|
5642
|
+
1. Go to the Flashduty console, select **Integration Center=>Alert Events** to enter the integration selection page
|
|
5643
|
+
2. Select **Harbor** integration:
|
|
5644
|
+
- **Integration Name**: Define a name for this integration
|
|
5645
|
+
3. Configure the default route and select the corresponding channel (after the integration is created, you can go to \`Route\` to configure more routing rules)
|
|
5646
|
+
4. Click **Save** and copy the newly generated **push URL** for later use
|
|
5647
|
+
5. Done
|
|
5648
|
+
|
|
5649
|
+
</details>
|
|
5650
|
+
</div>
|
|
5651
|
+
|
|
5652
|
+
## In Harbor
|
|
5653
|
+
---
|
|
5654
|
+
|
|
5655
|
+
### Configure Webhooks
|
|
5656
|
+
|
|
5657
|
+
1. Log in to the Harbor interface with an account that has at least project administrator privileges.
|
|
5658
|
+
2. Go to \`Projects\`, select a project, and select \`Webhooks\`.
|
|
5659
|
+
3. Select notify type \`HTTP\`, so the webhook will be send to a HTTP endpoint.
|
|
5660
|
+
4. Select payload format as \`Default or CloudEvents\` when choose the HTTP notify type.
|
|
5661
|
+
5. Select events that you want to subscribe.
|
|
5662
|
+
6. Enter the alert integration's <span class='integration_url'>PUSH URL</span> in the Endpoint URL field.
|
|
5663
|
+
7. Click Add to create the webhook.
|
|
5664
|
+
|
|
5665
|
+
## Severity Mapping
|
|
5666
|
+
---
|
|
5667
|
+
|
|
5668
|
+
Currently, all alerts pushed to Flashduty through the Harbor integration are set to Warning severity. However, you can customize the severity using the [alert pipeline](https://docs.flashcat.cloud/en/flashduty/alert-pipelines).
|
|
5669
|
+
|
|
5670
|
+
`,X=`---
|
|
5436
5671
|
title: "Custom Change Event Integration Guide"
|
|
5437
5672
|
description: "Push change events from your own systems to Flashduty using standard protocols. Most incidents are caused by changes, and the correlation between changes and alerts helps quickly identify incident causes."
|
|
5438
5673
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -5489,7 +5724,7 @@ Labels are descriptions of events. You should enrich label content as much as po
|
|
|
5489
5724
|
|
|
5490
5725
|
</details>
|
|
5491
5726
|
|
|
5492
|
-
`,
|
|
5727
|
+
`,ee=`---
|
|
5493
5728
|
title: "Jira Issue Events"
|
|
5494
5729
|
description: "Sync Jira Issue events to Flashduty via webhooks to collect change events."
|
|
5495
5730
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -5563,7 +5798,7 @@ Flashduty extracts the status.name information from the webhook payload by defau
|
|
|
5563
5798
|
Please contact Flashduty if you wish to modify this mapping.
|
|
5564
5799
|
|
|
5565
5800
|
</div>
|
|
5566
|
-
`,
|
|
5801
|
+
`,ne=`---
|
|
5567
5802
|
title: "Feishu/Lark Integration"
|
|
5568
5803
|
description: "By integrating a custom Feishu/Lark application, you can receive and respond to alerts within Feishu/Lark."
|
|
5569
5804
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -5618,12 +5853,19 @@ For details, see the Feishu/Lark development documentation [Configure applicatio
|
|
|
5618
5853
|
|
|
5619
5854
|

|
|
5620
5855
|
|
|
5621
|
-
3. Go to Event Callbacks → **
|
|
5856
|
+
3. Go to Event Callbacks → **Event Configuration** page, configure the \`Request URL\` (using the **Message Card Request URL** from the integration details). Then, add the following two events:
|
|
5622
5857
|
|
|
5623
|
-
- \`im.message.receive_v1\`
|
|
5624
5858
|
- \`im.chat.disbanded_v1\`
|
|
5859
|
+
- \`im.message.receive_v1\`
|
|
5860
|
+
|
|
5861
|
+

|
|
5625
5862
|
|
|
5626
|
-
|
|
5863
|
+
4. Go to Event Callbacks → **Callback Configuration** page, configure the \`Request URL\` (using the **Message Card Request URL** from the integration details). Then, subscribe to the following two callbacks:
|
|
5864
|
+
|
|
5865
|
+
- \`card.action.trigger\`
|
|
5866
|
+
- \`card.action.trigger_v1\`
|
|
5867
|
+
|
|
5868
|
+

|
|
5627
5869
|
|
|
5628
5870
|
### 2. Add redirect URL to Feishu/Lark application
|
|
5629
5871
|
|
|
@@ -5639,7 +5881,7 @@ Go to the **Permission Management** page and apply for the following permissions
|
|
|
5639
5881
|
|
|
5640
5882
|
- \`im:chat\`: Get and update group information
|
|
5641
5883
|
- \`im:message\`: Get and send single chat and group messages
|
|
5642
|
-
- \`contact:user.id:readonly\`: Get user ID by phone number or email
|
|
5884
|
+
- \`contact:user.id:readonly\`: Get user ID by phone number or email <span id="war-room-scope"></span>
|
|
5643
5885
|
|
|
5644
5886
|

|
|
5645
5887
|
|
|
@@ -5702,7 +5944,7 @@ After completing the previous steps, in the **Enhanced Features** module of the
|
|
|
5702
5944
|
> After exceeding API call limits, the Feishu/Lark application will not be able to push messages normally. It is recommended to use notification channels reasonably. See [Feishu/Lark official documentation](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/platform-updates-/custom-app-api-call-limit) for details.
|
|
5703
5945
|
5. **Why is the war room feature not working as expected?**
|
|
5704
5946
|
- Please check again whether you have configured the [required permissions](#war-room-scope) for the war room feature.
|
|
5705
|
-
- Please refer to the **FAQ** section of the Flashduty [War Room Introduction](https://docs.flashcat.cloud/en/flashduty/war-room?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5).`,
|
|
5947
|
+
- Please refer to the **FAQ** section of the Flashduty [War Room Introduction](https://docs.flashcat.cloud/en/flashduty/war-room?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5).`,te=`---
|
|
5706
5948
|
title: "Dingtalk Integration"
|
|
5707
5949
|
description: "By integrating a custom Dingtalk application, you can receive and respond to alerts within Dingtalk."
|
|
5708
5950
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -5925,7 +6167,7 @@ After the application is published, you can access it via the **mobile client**
|
|
|
5925
6167
|
| Professional | 500,000 | 40 | 1st of each month |
|
|
5926
6168
|
| Exclusive | 5,500,000 | 60 | 1st of each month |
|
|
5927
6169
|
|
|
5928
|
-
> After exceeding the API call limit, the Dingtalk application will not be able to push messages normally. It is recommended to use notification channels reasonably. For details, see the [official Dingtalk documentation](https://open.dingtalk.com/document/orgapp/descriptions-about-adjusting-limit-and-frequency-of-api-calls?spm=ding_open_doc.document.0.0.6f6b21d9WtkxJI).`,
|
|
6170
|
+
> After exceeding the API call limit, the Dingtalk application will not be able to push messages normally. It is recommended to use notification channels reasonably. For details, see the [official Dingtalk documentation](https://open.dingtalk.com/document/orgapp/descriptions-about-adjusting-limit-and-frequency-of-api-calls?spm=ding_open_doc.document.0.0.6f6b21d9WtkxJI).`,ae=`---
|
|
5929
6171
|
title: "WeCom Integration"
|
|
5930
6172
|
description: "By integrating a WeCom application, you can receive and respond to alerts within WeCom."
|
|
5931
6173
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -5991,13 +6233,13 @@ This document supports both [integrating third-party applications](#third-party)
|
|
|
5991
6233
|
|
|
5992
6234
|
6. On the application details page, obtain the \`Secret\` and fill it in the Flashduty integration configuration page.
|
|
5993
6235
|
|
|
5994
|
-
7. On the application details page, go to **Web Authorization and JS-SDK** page, click **Set Trusted Domain
|
|
6236
|
+
7. On the application details page, go to **Web Authorization and JS-SDK** page, click **Set Trusted Domain**.
|
|
5995
6237
|
|
|
5996
6238
|
> The trusted domain needs to point to Flashduty's backend address \`{api_host}\` (can be achieved through CNAME or proxy forwarding).
|
|
5997
6239
|
>
|
|
5998
6240
|
> For trusted domain requirements, see the official WeCom documentation [《Internal Development Domain Configuration Guide》](https://open.work.weixin.qq.com/wwopen/common/readDocument/40754).
|
|
5999
6241
|
|
|
6000
|
-
|
|
6242
|
+

|
|
6001
6243
|
|
|
6002
6244
|
Return to the Flashduty integration configuration page, fill in this domain, and complete the verification.
|
|
6003
6245
|
|
|
@@ -6011,6 +6253,21 @@ This document supports both [integrating third-party applications](#third-party)
|
|
|
6011
6253
|
|
|
6012
6254
|

|
|
6013
6255
|
|
|
6256
|
+
|
|
6257
|
+
10. Configure **Frontend Trusted Domain**
|
|
6258
|
+
|
|
6259
|
+
> The trusted domain needs to point to Flashduty's frontend address \`console.flashcat.cloud\` (can be implemented through CNAME or proxy forwarding).
|
|
6260
|
+
>
|
|
6261
|
+
> For requirements regarding trusted domains, please refer to the WeCom official documentation ['Enterprise Internal Development Domain Configuration Guide'](https://open.work.weixin.qq.com/wwopen/common/readDocument/40754).
|
|
6262
|
+
|
|
6263
|
+
After the frontend trusted domain verification passes, configure the generated **homepage address** to the WeCom application's **workbench application homepage**.
|
|
6264
|
+
|
|
6265
|
+

|
|
6266
|
+
|
|
6267
|
+
11. Configure **Trusted IP Address**: \`47.93.12.134\`
|
|
6268
|
+
|
|
6269
|
+

|
|
6270
|
+
|
|
6014
6271
|
## 3. Configure war room
|
|
6015
6272
|
|
|
6016
6273
|
---
|
|
@@ -6050,7 +6307,9 @@ After completing the previous steps, in the **Enhanced Features** module of the
|
|
|
6050
6307
|
7. **Incident notification failed with prompt \`WeCom license not activated\`?**
|
|
6051
6308
|
- Please contact Flashduty customer service or your dedicated technical support to purchase and activate the license for you.
|
|
6052
6309
|
8. **Why is the war room feature not working as expected?**
|
|
6053
|
-
- Please refer to the **FAQ** section of the Flashduty [War Room Introduction](https://docs.flashcat.cloud/en/flashduty/war-room?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5)
|
|
6310
|
+
- Please refer to the **FAQ** section of the Flashduty [War Room Introduction](https://docs.flashcat.cloud/en/flashduty/war-room?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5).
|
|
6311
|
+
9. **Why does it prompt "redirect_uri needs to use the application's trusted domain" when opening the app in the WeCom workspace?**
|
|
6312
|
+
- Please confirm whether the domain in the \`redirect_uri\` parameter of the **App Homepage** URL has completed the domain ownership verification required by WeCom. For details, see the WeCom official documentation ['Enterprise Internal Development Domain Configuration Guide'](https://open.work.weixin.qq.com/wwopen/common/readDocument/40754).`,oe=`---
|
|
6054
6313
|
title: "Slack Integration"
|
|
6055
6314
|
description: "By integrating the Slack third-party application, you can receive and respond to alerts within Slack."
|
|
6056
6315
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -6104,7 +6363,7 @@ After completing the previous steps, in the **Enhanced Features** module of the
|
|
|
6104
6363
|
- If the error persists after retrying, please contact customer service to record and resolve new issues.
|
|
6105
6364
|
9. **Why is the war room feature not working as expected?**
|
|
6106
6365
|
- For previously authorized Slack IM integrations, you need to manually reauthorize Slack in the Flashduty integration configuration page to grant the application the additional permissions required for the war room feature.
|
|
6107
|
-
- Please refer to the **FAQ** section of the Flashduty [War Room Introduction](https://docs.flashcat.cloud/en/flashduty/war-room?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5).`,
|
|
6366
|
+
- Please refer to the **FAQ** section of the Flashduty [War Room Introduction](https://docs.flashcat.cloud/en/flashduty/war-room?nav=01JCQ7A4N4WRWNXW8EWEHXCMF5).`,ie=`---
|
|
6108
6367
|
title: "Microsoft Teams Integration"
|
|
6109
6368
|
description: "By integrating the Microsoft Teams third-party application, you can receive and respond to alerts within Microsoft Teams."
|
|
6110
6369
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -6122,10 +6381,10 @@ This step needs to be completed by a Microsoft Teams administrator.
|
|
|
6122
6381
|
:::
|
|
6123
6382
|
|
|
6124
6383
|
### 1. Download application
|
|
6125
|
-
Download [
|
|
6384
|
+
Download [FlashdutyBot-v1.0.3.zip](https://flashduty-docs.oss-cn-beijing.aliyuncs.com/docs/FlashdutyBot-v1.0.3.zip) to your local device.
|
|
6126
6385
|
|
|
6127
6386
|
### 2. Install application
|
|
6128
|
-
In Microsoft Teams, navigate to +Apps → Manage your apps → Upload an app → **Upload an app to your org's app catalog**, then upload the application package \`
|
|
6387
|
+
In Microsoft Teams, navigate to +Apps → Manage your apps → Upload an app → **Upload an app to your org's app catalog**, then upload the application package \`FlashdutyBot.zip\`.
|
|
6129
6388
|
|
|
6130
6389
|

|
|
6131
6390
|
|
|
@@ -6141,7 +6400,7 @@ If the application status is "Blocked", please wait a moment and refresh the pag
|
|
|
6141
6400
|
#### Check if successfully added
|
|
6142
6401
|
After waiting a few minutes, organization members can find this application in +Apps → **Built for your org**.
|
|
6143
6402
|
|
|
6144
|
-

|
|
6145
6404
|
|
|
6146
6405
|
### 3. Update application
|
|
6147
6406
|
::: caution
|
|
@@ -6163,14 +6422,14 @@ If your installed application version is lower than 1.0.3, please follow this pr
|
|
|
6163
6422
|
1. Find the Flashduty application in the app marketplace.
|
|
6164
6423
|
> If there is no application, please contact your Microsoft Teams organization administrator.
|
|
6165
6424
|
|
|
6166
|
-

|
|
6167
6426
|
|
|
6168
6427
|
2. Add the application to the target Team.
|
|
6169
6428
|
::: caution
|
|
6170
6429
|
This step must select the General Channel of the target Team, otherwise incidents cannot be sent to the Team.
|
|
6171
6430
|
:::
|
|
6172
6431
|
|
|
6173
|
-

|
|
6174
6433
|
|
|
6175
6434
|
### 2. Send link command
|
|
6176
6435
|
In the Team, @Flashduty and send the command \`linkTeam {ID}\`, then click **Link Now**.
|
|
@@ -6183,11 +6442,11 @@ In the Team, @Flashduty and send the command \`linkTeam {ID}\`, then click **Lin
|
|
|
6183
6442
|
1. Find the Flashduty application in the app marketplace.
|
|
6184
6443
|
> If there is no application, please contact your Microsoft Teams organization administrator.
|
|
6185
6444
|
|
|
6186
|
-

|
|
6187
6446
|
|
|
6188
6447
|
2. Add the application to the target Chat.
|
|
6189
6448
|
|
|
6190
|
-

|
|
6191
6450
|
|
|
6192
6451
|
### 2. Send link command
|
|
6193
6452
|
In the Chat, @Flashduty and send the command \`linkChat {ID} {ChatName}\`, then click **Link Now**.
|
|
@@ -6200,7 +6459,7 @@ In the Chat, @Flashduty and send the command \`linkChat {ID} {ChatName}\`, then
|
|
|
6200
6459
|
1. Find the Flashduty application in the app marketplace.
|
|
6201
6460
|
> If there is no application, please contact your Microsoft Teams organization administrator.
|
|
6202
6461
|
|
|
6203
|
-

|
|
6204
6463
|
|
|
6205
6464
|
2. Click **Open Application**.
|
|
6206
6465
|
|
|
@@ -6219,7 +6478,7 @@ Copy and send the command \`linkUser {}\` to the chat, then click **Link Now**.
|
|
|
6219
6478
|
2. **How to view linked teams and users?**
|
|
6220
6479
|
- Please go to Integration Center → IM → **Microsoft Teams** to view in **Linked Teams** and **Linked Users**.
|
|
6221
6480
|
3. **How to cancel linked teams and users?**
|
|
6222
|
-
- This feature is not currently supported.`,
|
|
6481
|
+
- This feature is not currently supported.`,se=`Configure alert webhooks to receive HTTP callbacks at your specified URL when alerts have specific actions (such as triggering or closing). The callback content includes the latest key information about the alert, allowing integration with your custom tools.
|
|
6223
6482
|
|
|
6224
6483
|
<span id="EventTypes"></span>
|
|
6225
6484
|
|
|
@@ -6285,13 +6544,11 @@ email | string | Yes | Email address
|
|
|
6285
6544
|
| alert_key | string | Yes | Alert correlation basis |
|
|
6286
6545
|
| alert_severity | string | Yes | Severity level, enum: Critical, Warning, Info |
|
|
6287
6546
|
| alert_status | string | Yes | Alert status, enum: Critical, Warning, Info, Ok |
|
|
6288
|
-
| progress | string | Yes | Processing progress, enum: Triggered, Closed |
|
|
6289
6547
|
| created_at | int64 | Yes | Creation time |
|
|
6290
6548
|
| updated_at | int64 | Yes | Update time |
|
|
6291
6549
|
| start_time | int64 | Yes | First trigger time (time of first event received by platform), Unix timestamp in seconds |
|
|
6292
6550
|
| last_time | int64 | Yes | Latest event time (time of most recent event received by platform), Unix timestamp in seconds |
|
|
6293
6551
|
| end_time | int64 | No | Alert recovery time (time when platform last received end-type event), Unix timestamp in seconds, defaults to 0 |
|
|
6294
|
-
| close_time | int64 | No | Closure time, different from end_time, this indicates progress closure, not actual alert recovery. Unix timestamp in seconds, defaults to 0 |
|
|
6295
6552
|
| labels | map[string]string | No | Label key-value pairs, both Key and Value are strings |
|
|
6296
6553
|
| event_cnt | int64 | No | Number of associated events |
|
|
6297
6554
|
| incident | [Incident](#Incident) | No | Associated incident |
|
|
@@ -6324,13 +6581,12 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \\
|
|
|
6324
6581
|
"alert_status":"Warning",
|
|
6325
6582
|
"channel_id":1163577812973,
|
|
6326
6583
|
"channel_name":"Order System",
|
|
6327
|
-
"close_time":0,
|
|
6328
6584
|
"created_at":1683766015,
|
|
6329
6585
|
"data_source_id":1571358104973,
|
|
6330
6586
|
"data_source_name":"Aliyun SLS",
|
|
6331
6587
|
"data_source_ref_id":"",
|
|
6332
6588
|
"data_source_type":"aliyun-sls.alert",
|
|
6333
|
-
"description":"Test alert trigger to
|
|
6589
|
+
"description":"Test alert trigger to Flashduty",
|
|
6334
6590
|
"end_time":0,
|
|
6335
6591
|
"event_cnt":1,
|
|
6336
6592
|
"incident":{
|
|
@@ -6342,7 +6598,7 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \\
|
|
|
6342
6598
|
"alert_type":"sls_alert",
|
|
6343
6599
|
"alert_url":"https://sls.console.aliyun.com/lognext/project/sls-api-testing/alert/alert-1683548531-071659",
|
|
6344
6600
|
"aliuid":"1082109605037616",
|
|
6345
|
-
"check":"Test send to
|
|
6601
|
+
"check":"Test send to Flashduty",
|
|
6346
6602
|
"fire_results":"{\\"_col0\\":\\"true\\"}",
|
|
6347
6603
|
"fire_results_count":"1",
|
|
6348
6604
|
"project":"sls-api-testing",
|
|
@@ -6352,9 +6608,8 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \\
|
|
|
6352
6608
|
"severity":"6"
|
|
6353
6609
|
},
|
|
6354
6610
|
"last_time":1683809153,
|
|
6355
|
-
"progress":"Triggered",
|
|
6356
6611
|
"start_time":1683766013,
|
|
6357
|
-
"title":"Test alert trigger to
|
|
6612
|
+
"title":"Test alert trigger to Flashduty",
|
|
6358
6613
|
"title_rule":"$resource::$check",
|
|
6359
6614
|
"updated_at":1683809170
|
|
6360
6615
|
},
|
|
@@ -6373,11 +6628,14 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \\
|
|
|
6373
6628
|
|
|
6374
6629
|
1. **Is there a response timeout for the service?**
|
|
6375
6630
|
|
|
6376
|
-
-
|
|
6631
|
+
- Services must respond within 2 second, responses after 2 second are considered failed
|
|
6377
6632
|
|
|
6378
6633
|
2. **Will failed pushes continue to be pushed?**
|
|
6379
6634
|
|
|
6380
|
-
|
|
6635
|
+
For specific network errors, retries will be attempted up to a maximum of 2 times:
|
|
6636
|
+
- context deadline exceeded (excluding cases involving "awaiting headers")
|
|
6637
|
+
- i/o timeout
|
|
6638
|
+
- eof
|
|
6381
6639
|
|
|
6382
6640
|
3. **How is push order guaranteed?**
|
|
6383
6641
|
|
|
@@ -6387,7 +6645,7 @@ curl -X POST 'https://example.com/alert/webhook?a=a' \\
|
|
|
6387
6645
|
4. **Trusted IP whitelist for push sources?**
|
|
6388
6646
|
- {ip_whitelist}
|
|
6389
6647
|
- May be updated in the future, please check periodically
|
|
6390
|
-
`,
|
|
6648
|
+
`,re=`Configure incident webhooks to receive HTTP callbacks at your specified URL when incidents have specific actions (such as triggering or closing). The callback content includes the latest key information about the incident, allowing integration with your custom tools.
|
|
6391
6649
|
|
|
6392
6650
|
<span id="EventTypes"></span>
|
|
6393
6651
|
|
|
@@ -6581,11 +6839,14 @@ curl -X POST 'https://example.com/incident/webhook?a=a' \\
|
|
|
6581
6839
|
|
|
6582
6840
|
1. **Is there a response timeout for the service?**
|
|
6583
6841
|
|
|
6584
|
-
- Services must respond within
|
|
6842
|
+
- Services must respond within 2 second, responses after 2 second are considered failed
|
|
6585
6843
|
|
|
6586
6844
|
2. **Will failed pushes continue to be pushed?**
|
|
6587
6845
|
|
|
6588
|
-
|
|
6846
|
+
For specific network errors, retries will be attempted up to a maximum of 2 times:
|
|
6847
|
+
- context deadline exceeded (excluding cases involving "awaiting headers")
|
|
6848
|
+
- i/o timeout
|
|
6849
|
+
- eof
|
|
6589
6850
|
|
|
6590
6851
|
3. **How is push order guaranteed?**
|
|
6591
6852
|
|
|
@@ -6594,11 +6855,11 @@ curl -X POST 'https://example.com/incident/webhook?a=a' \\
|
|
|
6594
6855
|
|
|
6595
6856
|
4. **Trusted IP whitelist for push sources?**
|
|
6596
6857
|
- {ip_whitelist}
|
|
6597
|
-
- May be updated in the future, please check periodically`,
|
|
6858
|
+
- May be updated in the future, please check periodically`,le=`Custom incident actions allow you to quickly invoke external interfaces during incident troubleshooting for incident self-healing, information enrichment, and other custom operations.
|
|
6598
6859
|
|
|
6599
6860
|
## I. Creating Actions
|
|
6600
6861
|
|
|
6601
|
-
1. Log in to the
|
|
6862
|
+
1. Log in to the Flashduty console and navigate to [Integration Center-Webhook]
|
|
6602
6863
|
2. Click to add a Custom Action integration
|
|
6603
6864
|
3. Configure the action name, which will appear as a button in the incident details
|
|
6604
6865
|
4. Configure channels (multiple can be configured, but each channel can have up to three custom actions)
|
|
@@ -6691,13 +6952,11 @@ acknowledged_at | int64| No | Acknowledgment time
|
|
|
6691
6952
|
| alert_key | string | Yes | Alert correlation basis |
|
|
6692
6953
|
| alert_severity | string | Yes | Severity level, enum: Critical, Warning, Info |
|
|
6693
6954
|
| alert_status | string | Yes | Alert status, enum: Critical, Warning, Info, Ok |
|
|
6694
|
-
| progress | string | Yes | Processing progress, enum: Triggered, Closed |
|
|
6695
6955
|
| created_at | int64 | Yes | Creation time |
|
|
6696
6956
|
| updated_at | int64 | Yes | Update time |
|
|
6697
6957
|
| start_time | int64 | Yes | First trigger time (time of first event received by platform), Unix timestamp in seconds |
|
|
6698
6958
|
| last_time | int64 | Yes | Latest event time (time of latest event received by platform), Unix timestamp in seconds |
|
|
6699
6959
|
| end_time | int64 | No | Alert recovery time (time of last end-type event received by platform), Unix timestamp in seconds, default 0 |
|
|
6700
|
-
| close_time | int64 | No | Close time, different from end_time, this is processing progress closure, doesn't mean alert actually recovered. Unix timestamp in seconds, default 0 |
|
|
6701
6960
|
| labels | map[string]string | No | Label KV pairs, both Key and Value are strings |
|
|
6702
6961
|
|
|
6703
6962
|
</div>
|
|
@@ -6728,7 +6987,6 @@ curl -X POST 'https://example.com/incident/action?a=a' \\
|
|
|
6728
6987
|
"alert_key": "asdflasdfl2xzasd112621",
|
|
6729
6988
|
"alert_severity": "Critical",
|
|
6730
6989
|
"alert_status": "Critical",
|
|
6731
|
-
"close_time": 0,
|
|
6732
6990
|
"created_at": 1699869567,
|
|
6733
6991
|
"data_source_id": 2398086111504,
|
|
6734
6992
|
"description": "cpu.idle < 20%",
|
|
@@ -6744,10 +7002,6 @@ curl -X POST 'https://example.com/incident/action?a=a' \\
|
|
|
6744
7002
|
"v": "v"
|
|
6745
7003
|
},
|
|
6746
7004
|
"last_time": 1699869562,
|
|
6747
|
-
"progress": "Triggered",
|
|
6748
|
-
"responder_email": "",
|
|
6749
|
-
"responder_id": 0,
|
|
6750
|
-
"responder_name": "",
|
|
6751
7005
|
"start_time": 1699869562,
|
|
6752
7006
|
"title": "nj / es.nj.01 - 自定义字段测试",
|
|
6753
7007
|
"title_rule": "$cluster::$resource::$check",
|
|
@@ -6833,7 +7087,7 @@ When host memory or CPU is maxed out, trigger host restart scripts for quick rec
|
|
|
6833
7087
|
|
|
6834
7088
|
### Information Enrichment
|
|
6835
7089
|
|
|
6836
|
-
When an incident occurs, callback to your service to retrieve Tracing, Logging, topology, and other information based on alert details. Actively call
|
|
7090
|
+
When an incident occurs, callback to your service to retrieve Tracing, Logging, topology, and other information based on alert details. Actively call Flashduty Open API to update incident information, such as adding labels or setting custom fields to assist troubleshooting.
|
|
6837
7091
|
|
|
6838
7092
|
### Rollback Changes
|
|
6839
7093
|
|
|
@@ -6841,7 +7095,7 @@ When an incident occurs and is confirmed to be caused by a change, directly trig
|
|
|
6841
7095
|
|
|
6842
7096
|
### Update Status Page
|
|
6843
7097
|
|
|
6844
|
-
When an incident is confirmed to affect online services, trigger external status page updates to prompt`,
|
|
7098
|
+
When an incident is confirmed to affect online services, trigger external status page updates to prompt`,de=`---
|
|
6845
7099
|
title: "Jira Sync"
|
|
6846
7100
|
description: "Sync incidents with Jira issues through Jira Sync Webhook."
|
|
6847
7101
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -6923,7 +7177,7 @@ In the Integration Center, select **Webhook**, choose **Jira Sync** integration,
|
|
|
6923
7177
|
|
|
6924
7178
|
- Flashduty syncs information according to default field mappings and your custom field configurations. If your Jira issue type has required fields without mapping relationships, Jira issue creation may fail.
|
|
6925
7179
|
- Jira issue details are accessed using project KEY + number format. If you modify the project KEY, saved issue URLs in Flashduty may become inaccessible, so please modify project KEYs with caution.
|
|
6926
|
-
`,
|
|
7180
|
+
`,ce=`---
|
|
6927
7181
|
title: "ServiceNow Sync"
|
|
6928
7182
|
description: "Sync incidents with ServiceNow Incidents through ServiceNow sync webhook."
|
|
6929
7183
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -6935,6 +7189,7 @@ Through ServiceNow sync webhook, Flashduty incidents are associated and synchron
|
|
|
6935
7189
|
## In ServiceNow
|
|
6936
7190
|
|
|
6937
7191
|
### Create User
|
|
7192
|
+
Create a user to connect to the ServiceNow instance for Incident sync and updates. Skip this step if you already have an available user.
|
|
6938
7193
|
|
|
6939
7194
|
1. Log in to the ServiceNow instance console, select \`ALL\`, enter \`USERS\` and select \`Organization\`-\`Users\`.
|
|
6940
7195
|
2. Click \`New\` to create a new user.
|
|
@@ -6946,14 +7201,20 @@ Through ServiceNow sync webhook, Flashduty incidents are associated and synchron
|
|
|
6946
7201
|
|
|
6947
7202
|
### Configure User
|
|
6948
7203
|
|
|
6949
|
-
|
|
7204
|
+
> **User Role Description**
|
|
7205
|
+
> **itil:** The main usage scope of this role in Flashduty is limited to field retrieval in ServiceNow Incident Table and does not involve any other operations.
|
|
7206
|
+
>
|
|
7207
|
+
> **personalize_dictionary:** This role in Flashduty is primarily used only for field retrieval from ServiceNow Incident Tables, and does not involve any other operations.
|
|
7208
|
+
>
|
|
7209
|
+
> For more information about the permission scope of these two roles, please refer to the ServiceNow [official documentation](https://www.servicenow.com/docs/bundle/washingtondc-platform-administration/page/administer/roles/reference/r_BaseSystemRoles.html#d130465e3182)
|
|
6950
7210
|
|
|
6951
7211
|
1. On the user list page, find the newly created \`flashduty\` user and go to the configuration page.
|
|
6952
7212
|
2. In the edit page, click \`Set Password\` to set a password.
|
|
6953
7213
|
3. Click \`Roles\` to add **personalize_dictionary and itil** roles (If custom field mapping configuration is not required, the personalize_dictionary permission does not need to be retained).
|
|
6954
7214
|
4. Click \`Update\` to update the configuration.
|
|
6955
7215
|
|
|
6956
|
-
|
|
7216
|
+

|
|
7217
|
+

|
|
6957
7218
|
|
|
6958
7219
|
## In Flashduty
|
|
6959
7220
|
|
|
@@ -6965,14 +7226,27 @@ Enter the username/password and instance name configured above into the integrat
|
|
|
6965
7226
|
- **Management Team:** When a management team is selected, only team members and tenant administrators can edit this integration.
|
|
6966
7227
|
- **Channel:** Select the channel where this integration takes effect.
|
|
6967
7228
|
- **Sync Direction:**
|
|
7229
|
+
|
|
6968
7230
|
- To_ServiceNow: Sync Flashduty incidents to ServiceNow.
|
|
6969
7231
|
- From_ServiceNow: Sync ServiceNow Incidents to Flashduty.
|
|
6970
7232
|
- Two-way: Bidirectional sync between Flashduty and ServiceNow.
|
|
6971
|
-
|
|
7233
|
+
|
|
7234
|
+
- **Trigger Mode:**
|
|
7235
|
+
|
|
6972
7236
|
- Auto Trigger: Requires configuration of corresponding conditions, Flashduty will automatically sync incidents that meet the conditions to ServiceNow.
|
|
6973
7237
|
- Manual Trigger: Requires manual triggering of ServiceNow sync in the More Actions section of the incident details page (the integration configuration name is the trigger name).
|
|
6974
|
-
|
|
6975
|
-
- **
|
|
7238
|
+
|
|
7239
|
+
- **Severity Mapping:**
|
|
7240
|
+
- ServiceNow's Priority is determined by the combined values of Impact and Urgency, so you can refer to ServiceNow's \`Priority Lookup Rules\` for configuration.
|
|
7241
|
+
- Only when the Urgency of a ServiceNow Incident changes will it trigger an update to the Flashduty incident severity.
|
|
7242
|
+
- Since Flashduty cannot obtain ServiceNow's Impact and Urgency lists while following the principle of least privilege, only default values are provided. If you need to customize the mapping relationship, please contact technical support.
|
|
7243
|
+
|
|
7244
|
+
- **Custom Field Mapping:** You can map tags or custom fields from incidents to corresponding text fields in ServiceNow tickets, enabling automatic information filling. This feature supports synchronizing common contextual information (such as service name, instance address, metric name, etc.) to ServiceNow for easier subsequent troubleshooting and tracking.
|
|
7245
|
+
|
|
7246
|
+
- Only supports target fields of single-line text or multi-line text types.
|
|
7247
|
+
- Supports extracting values from incident tags (such as service, instance) or custom attributes.
|
|
7248
|
+
- If the source field is empty, the target field will also remain empty and will not overwrite existing content.
|
|
7249
|
+
- Mapping configurations are managed centrally in integration settings, eliminating the need for manual entry each time.
|
|
6976
7250
|
|
|
6977
7251
|
## In ServiceNow
|
|
6978
7252
|
|
|
@@ -7180,34 +7454,216 @@ Note: The body configures default receiving fields. If you have custom fields th
|
|
|
7180
7454
|
|
|
7181
7455
|
| ServiceNow | Flashduty | Notes |
|
|
7182
7456
|
| ------------------- | ------------- | ----- |
|
|
7183
|
-
| Short_description | Title |
|
|
7457
|
+
| Short_description | Title | Title |
|
|
7458
|
+
| Description | Description | Description |
|
|
7459
|
+
| Additional comments | Comments | Comments |
|
|
7460
|
+
| State | Progress | Progress |
|
|
7461
|
+
| Urgency | Severity | Severity |
|
|
7462
|
+
| Others | Custom Fields | Custom Fields |
|
|
7463
|
+
|
|
7464
|
+
### Status Mapping
|
|
7465
|
+
|
|
7466
|
+
| ServiceNow | Flashduty | Notes |
|
|
7467
|
+
| ----------- | ---------- | ---------------------- |
|
|
7468
|
+
| New | Trigger | Trigger |
|
|
7469
|
+
| In Progress | Processing | Processing |
|
|
7470
|
+
| On Hold | Snoozed | Default snooze 2 hours |
|
|
7471
|
+
| Resolved | CLosed | CLosed |
|
|
7472
|
+
| Closed | CLosed | CLosed |
|
|
7473
|
+
| Canceled | CLosed | CLosed |
|
|
7474
|
+
|
|
7475
|
+
### Priority Mapping
|
|
7476
|
+
|
|
7477
|
+
Only when ServiceNow's Urgency value changes will it affect Flashduty's Severity
|
|
7478
|
+
|
|
7479
|
+
| ServiceNow | Flashduty | Notes |
|
|
7480
|
+
| ---------- | --------- | ----- |
|
|
7481
|
+
| Low | Info | Info |
|
|
7482
|
+
| Medium | Warning | Warning |
|
|
7483
|
+
| High | Critical | Critical |
|
|
7484
|
+
|
|
7485
|
+
|
|
7486
|
+
## QA
|
|
7487
|
+
|
|
7488
|
+
<details>
|
|
7489
|
+
<summary>Can the UserID be customized when creating a new ServiceNow user?</summary>
|
|
7490
|
+
Yes, it can be customized. The documentation uses "flashduty" as the UserID to better identify that this user is used for Incident synchronization.
|
|
7491
|
+
</details>
|
|
7492
|
+
|
|
7493
|
+
<details>
|
|
7494
|
+
<summary>Getting 401 error when configuring integration</summary>
|
|
7495
|
+
A 401 error is generally caused by an incorrect password. Please check if the password is correct, or reset a new password (when setting the password, do not check the "Password needs reset" option).
|
|
7496
|
+
</details>`,ue=`---
|
|
7497
|
+
title: "ServiceDesk Plus Sync"
|
|
7498
|
+
description: "Sync incidents with ServiceDesk Plus requests through ServiceDesk Plus sync webhook."
|
|
7499
|
+
date: "2025-05-19T10:00:00+08:00"
|
|
7500
|
+
url: "https://docs.flashcat.cloud/en/flashduty/servicedesk-plus-sync"
|
|
7501
|
+
---
|
|
7502
|
+
|
|
7503
|
+
Through ServiceDesk Plus sync webhook, Flashduty incidents are associated and synchronized with ServiceDesk Plus requests to achieve integration between Flashduty and ServiceDesk Plus.
|
|
7504
|
+
|
|
7505
|
+
This integration is based on the official v3 API protocol provided by ServiceDesk Plus and is compatible with its interface specifications. If you are using an on-premises deployment version, please confirm whether its API supports the v3 version. Additionally, there are differences in authorization configuration between the cloud and on-premises of ServiceDesk Plus. Please refer to the relevant documentation for specific configurations.
|
|
7506
|
+
|
|
7507
|
+
- [Cloud](#cloud-version)
|
|
7508
|
+
- [On-premises](#on-premises)
|
|
7509
|
+
|
|
7510
|
+
When configuring this integration, if you choose the sync direction as From_ServiceDesk_Plus, you can skip the authorization-related configuration and directly refer to [Configure Sync](#configure-sync).
|
|
7511
|
+
|
|
7512
|
+
## Cloud <span id="cloud-version"></span>
|
|
7513
|
+
|
|
7514
|
+
### In ServiceDesk Plus
|
|
7515
|
+
#### Step 1 Create Authorization Application
|
|
7516
|
+
Please select the corresponding Developer Console address according to your ServiceDesk Plus service region: [Data Centres](https://www.manageengine.com/products/service-desk/sdpod-v3-api/getting-started/data-centers.html)
|
|
7517
|
+
|
|
7518
|
+
1. Log in to the Developer Console, select \`Self Client\` type Client and create it.
|
|
7519
|
+
2. Click \`Generate Code\`, fill in the \`Scope\`: **SDPOnDemand.requests.ALL,SDPOnDemand.setup.READ,SDPOnDemand.custommodule.READ**. Refer to [official documentation](https://www.manageengine.com/products/service-desk/sdpod-v3-api/getting-started/oauth-2.0.html#scopes) for permission scope.
|
|
7520
|
+
|
|
7521
|
+
3. Select the maximum **10 minutes** for \`Time Duration\`, fill in the \`Scope Description\` as customizable, for example: For Flashduty sync use, and create.
|
|
7522
|
+
4. Copy the generated **Code**, **Client ID** and **Client Secret** for backup.
|
|
7523
|
+
|
|
7524
|
+

|
|
7525
|
+

|
|
7526
|
+
|
|
7527
|
+
###### Note: The Code is only valid for 10 minutes and can only be used once, so after obtaining the Code, please complete the [Integration Authorization](#integration-authorization) as soon as possible within the validity period.
|
|
7528
|
+
|
|
7529
|
+
### In Flashduty
|
|
7530
|
+
#### Step 2 Integration Authorization <span id="integration-authorization"></span>
|
|
7531
|
+
Please select the corresponding API Endpoint and Accounts Server URL according to your ServiceDesk Plus service region: [Data Centres](https://www.manageengine.com/products/service-desk/sdpod-v3-api/getting-started/data-centers.html)
|
|
7532
|
+
|
|
7533
|
+
1. Select **Cloud** for \`Platform Type\`, fill in \`API Endpoint\` and \`Accounts Server URL\`.
|
|
7534
|
+
2. Fill in the \`Code\`, \`Client ID\` and \`Client Secret\` generated in the **Create Authorization Application** step into the corresponding edit boxes and click Next to complete [Integration Configuration](#integration-configuration) (if an error occurs, please re-obtain the Code or contact technical support to troubleshoot the problem).
|
|
7535
|
+
|
|
7536
|
+
## On-premises <span id="on-premises"></span>
|
|
7537
|
+
### In ServiceDesk Plus
|
|
7538
|
+
#### Step 1 Generate API Key
|
|
7539
|
+
1. Log in to the ServiceDesk Plus console, click \`Generate API Key\` in the personal center.
|
|
7540
|
+
2. Select **Never Expires** for \`Token Expiration Time\`, copy the generated **Token** for backup, and complete [Integration Authorization](#on-premises-integration-authorization).
|
|
7541
|
+
|
|
7542
|
+
###### Note: The user who generates the API key needs to have relevant permissions, such as create/update requests, obtain template/priority/custom field lists and other permissions. If the permissions are insufficient, it will cause the integration configuration to fail. It is recommended to use an administrator role to generate.
|
|
7543
|
+
|
|
7544
|
+
### In Flashduty
|
|
7545
|
+
#### Step 2 Integration Authorization <span id="on-premises-integration-authorization"></span>
|
|
7546
|
+
1. Select **On-premises** for \`Platform Type\`, fill in \`API Endpoint\`.
|
|
7547
|
+
2. Fill in the generated **Token** into the corresponding edit box and click Next to complete [Integration Configuration](#integration-configuration).
|
|
7548
|
+
|
|
7549
|
+
|
|
7550
|
+
## General Configuration
|
|
7551
|
+
|
|
7552
|
+
### In Flashduty
|
|
7553
|
+
#### Step 1 Integration Configuration <span id="integration-configuration"></span>
|
|
7554
|
+
|
|
7555
|
+
1. **Integration Name:** Define a name for the current integration.
|
|
7556
|
+
2. **Management Team:** When a management team is selected, only team members and tenant administrators can edit this integration.
|
|
7557
|
+
3. **Sync Direction:**
|
|
7558
|
+
|
|
7559
|
+
- To_ServiceDesk_Plus: Sync Flashduty incidents to ServiceDesk Plus.
|
|
7560
|
+
- From_ServiceDesk_Plus: Sync ServiceDesk Plus requests to Flashduty.
|
|
7561
|
+
- Two-way: Bidirectional sync between Flashduty and ServiceDesk Plus.
|
|
7562
|
+
|
|
7563
|
+
4. **Trigger Mode**:
|
|
7564
|
+
- Auto Trigger: Requires configuration of corresponding conditions, Flashduty will automatically sync incidents that meet the conditions to ServiceDesk Plus.
|
|
7565
|
+
- Manual Trigger: Requires manual triggering of ServiceDesk Plus sync in the More Actions section of the incident details page (the integration configuration name is the trigger name).
|
|
7566
|
+
|
|
7567
|
+
5. **Channel:** Select the channel where this integration takes effect.
|
|
7568
|
+
6. **Request Template:** Select the template to use when creating requests. If empty, the default template will be used to create the request.
|
|
7569
|
+
7. **Severity Mapping:** You can choose to map the values of severity, incident labels, or custom fields to the Priority field in ServiceDesk Plus. If empty, this field will not be passed when creating requests.
|
|
7570
|
+
8. **Custom Field Mapping:** You can map labels or custom fields in incidents to corresponding text fields in ServiceDesk Plus tickets to achieve automatic information filling. This feature supports syncing common context information (such as service name, instance address, metric name, etc.) to ServiceDesk Plus for subsequent troubleshooting and tracking.
|
|
7571
|
+
- Only supports target fields of single-line text or multi-line text type.
|
|
7572
|
+
- Supports extracting values from incident labels (such as service, instance) or custom attributes.
|
|
7573
|
+
- If the source field is empty, the target field will also remain empty and will not overwrite existing content.
|
|
7574
|
+
|
|
7575
|
+
9. **Assignee Mapping:** When Flashduty incidents are synced to ServiceDesk Plus and need to be automatically assigned to Technician or Group, you can get the value of Flashduty incident labels as the assignee (if the corresponding assignee does not exist, it will cause sync failure, please choose carefully).
|
|
7576
|
+
10. **Requester:** The requester to be specified when creating a request. This needs to be configured if the field is mandatory when creating requests.
|
|
7577
|
+
11. Click \`Save\` to complete the configuration.
|
|
7578
|
+
|
|
7579
|
+
### In ServiceDesk Plus
|
|
7580
|
+
#### Step 2 Configure Sync <span id="configure-sync"></span>
|
|
7581
|
+
To achieve synchronization of ServiceDesk Plus requests to Flashduty, please refer to this configuration item. **Note:** Different versions may have slightly different paths, but the configuration method is the same.
|
|
7582
|
+
##### Create Webhook
|
|
7583
|
+
1. Log in to the ServiceDesk Plus console and find the \`Setup\` configuration page.
|
|
7584
|
+
2. Select \`Automation\`, then enter the \`Custom Actions\` page and select \`Webhooks\`.
|
|
7585
|
+
3. Click \`New Webhook\`, fill in **to_Flashduty** for \`Webhook Name\` in the edit page.
|
|
7586
|
+
4. Fill in the integration's <span class='integration_url'>push URL</span> for \`URL\`.
|
|
7587
|
+
5. Select **Requests** for \`Applies to\`, select **POST** for \`Method\`, fill in **Content-Type application/json** in \`Headers\`.
|
|
7588
|
+
6. Select **JSON** for \`Message Body\` Type and fill in the following content:
|
|
7589
|
+
|
|
7590
|
+
\`\`\`
|
|
7591
|
+
# Cloud
|
|
7592
|
+
{
|
|
7593
|
+
"subject":"\${subject}",
|
|
7594
|
+
"request_id":"\${id}",
|
|
7595
|
+
"description":"\${udf_fields.txt_destination}",
|
|
7596
|
+
"priority":"\${priority.name}",
|
|
7597
|
+
"status":"\${status.name}",
|
|
7598
|
+
"txt_test_field":"\${udf_fields.txt_test_field}"
|
|
7599
|
+
|
|
7600
|
+
}
|
|
7601
|
+
\`\`\`
|
|
7602
|
+
|
|
7603
|
+
\`\`\`
|
|
7604
|
+
# On-premises
|
|
7605
|
+
{
|
|
7606
|
+
"suject":"\${{request.subject}}",
|
|
7607
|
+
"request_id":"\${{request.id}}",
|
|
7608
|
+
"description":"\${{request.description}}",
|
|
7609
|
+
"status":"\${{request.status.name}}",
|
|
7610
|
+
"priority":"\${{request.priority.name}}",
|
|
7611
|
+
"udf_sline_301":"\${{request.udf_fields.udf_sline_301}}"
|
|
7612
|
+
}
|
|
7613
|
+
|
|
7614
|
+
\`\`\`
|
|
7615
|
+
7. Click \`Save\` to complete the configuration.
|
|
7616
|
+
|
|
7617
|
+

|
|
7618
|
+
|
|
7619
|
+
##### Step 3 Create Trigger
|
|
7620
|
+
1. Log in to the ServiceDesk Plus console and find the \`Setup\` configuration page.
|
|
7621
|
+
2. Select \`Automation\`, then enter the \`Triggers\` page and select \`Request\`.
|
|
7622
|
+
3. Click \`New Trigger\`, fill in **to_Flashduty** for \`Name\` in the edit page.
|
|
7623
|
+
4. Select **Request** for \`Trigger applies to\`, check **Create and Edited** for \`Execute when a request is\`.
|
|
7624
|
+
5. Select **Any time** for \`Execute during\` and check **Enable Trigger**.
|
|
7625
|
+
6. Select \`Without condition\` for \`Conditions\` or configure according to actual needs.
|
|
7626
|
+
7. Select **Webhook** in \`Actions\` and check **to_Flashduty** channel.
|
|
7627
|
+
8. Click \`Save\` to complete the configuration.
|
|
7628
|
+
|
|
7629
|
+

|
|
7630
|
+
|
|
7631
|
+
|
|
7632
|
+
## Sync Information
|
|
7633
|
+
|
|
7634
|
+
### Form Fields
|
|
7635
|
+
|
|
7636
|
+
| ServiceDesk Plus | Flashduty | Notes |
|
|
7637
|
+
| ------------------- | ------------- | ----- |
|
|
7638
|
+
| Subject | Title | |
|
|
7184
7639
|
| Description | Description | |
|
|
7185
|
-
|
|
|
7186
|
-
|
|
|
7187
|
-
| Urgency | Severity | |
|
|
7640
|
+
| Status | Progress | |
|
|
7641
|
+
| Priority | Severity | |
|
|
7188
7642
|
| Others | Custom Fields | |
|
|
7189
7643
|
|
|
7190
7644
|
### Status Mapping
|
|
7191
7645
|
|
|
7192
|
-
|
|
|
7646
|
+
| ServiceDesk Plus | Flashduty | Notes |
|
|
7193
7647
|
| ----------- | ---------- | ---------------------- |
|
|
7194
|
-
|
|
|
7648
|
+
| Open | Trigger | |
|
|
7195
7649
|
| In Progress | Processing | |
|
|
7650
|
+
| Assigned | Processing | |
|
|
7651
|
+
| Pending Verification | Processing | |
|
|
7652
|
+
| Staging | Processing | |
|
|
7196
7653
|
| On Hold | Snoozed | Default snooze 2 hours |
|
|
7197
7654
|
| Resolved | CLosed | |
|
|
7198
7655
|
| Closed | CLosed | |
|
|
7199
7656
|
| Canceled | CLosed | |
|
|
7657
|
+
| Rejected | CLosed | |
|
|
7200
7658
|
|
|
7201
|
-
### Priority Mapping
|
|
7202
7659
|
|
|
7203
|
-
|
|
7660
|
+
## FAQ
|
|
7204
7661
|
|
|
7205
|
-
|
|
7206
|
-
|
|
7207
|
-
|
|
7208
|
-
|
|
7209
|
-
|
|
7210
|
-
`,de=`---
|
|
7662
|
+
<details>
|
|
7663
|
+
<summary> Can the Scope be changed</summary>
|
|
7664
|
+
No, the Scope currently used is already the smallest unit. Flashduty needs to perform get/create/update operations when syncing requests with ServiceDesk Plus, and needs to obtain priority/custom field lists when configuring integration, so corresponding permission support is required.
|
|
7665
|
+
</details>
|
|
7666
|
+
`,he=`---
|
|
7211
7667
|
title: "Configure Notification Templates"
|
|
7212
7668
|
description: "Customize notification content through template configuration"
|
|
7213
7669
|
date: "2024-05-10T10:00:00+08:00"
|
|
@@ -7341,10 +7797,8 @@ Title | string | Yes | Alert title
|
|
|
7341
7797
|
Description | string | Yes | Alert description, can be empty
|
|
7342
7798
|
AlertSeverity | string | Yes | Severity level, enum values: Critical, Warning, Info
|
|
7343
7799
|
AlertStatus | string | Yes | Alert status, enum values: Critical, Warning, Info, Ok
|
|
7344
|
-
Progress | string | Yes | Processing progress, enum values: Triggered, Processing, Closed
|
|
7345
7800
|
StartTime | int64 | Yes | Trigger time, Unix timestamp in seconds
|
|
7346
7801
|
EndTime | int64 | No | Recovery time, Unix timestamp in seconds, default 0
|
|
7347
|
-
CloseTime | int64 | No | Close time, EndTime is alert recovery time, CloseTime is processing progress close time. Alert automatically closes upon recovery, manual closure doesn't affect alert recovery. Unix timestamp in seconds, default 0
|
|
7348
7802
|
\`Labels\` | map[string]string | No | Label key-value pairs, both Key and Value are strings
|
|
7349
7803
|
|
|
7350
7804
|
## Common Questions
|
|
@@ -8294,80 +8748,319 @@ If no custom content is set, the system default template will be used for notifi
|
|
|
8294
8748
|
|
|
8295
8749
|
<head data-id="__react-email-head">
|
|
8296
8750
|
<style>
|
|
8297
|
-
|
|
8298
|
-
|
|
8299
|
-
|
|
8300
|
-
|
|
8301
|
-
|
|
8302
|
-
|
|
8303
|
-
|
|
8304
|
-
|
|
8305
|
-
|
|
8306
|
-
|
|
8751
|
+
/* Light mode colors */
|
|
8752
|
+
:root {
|
|
8753
|
+
--bg-color: rgb(255, 255, 255);
|
|
8754
|
+
--text-color: rgb(55, 65, 81);
|
|
8755
|
+
--label-key-color: #000;
|
|
8756
|
+
--section-bg: rgb(255, 255, 255);
|
|
8757
|
+
--border-color: rgb(229, 231, 235);
|
|
8758
|
+
}
|
|
8759
|
+
|
|
8760
|
+
/* Dark mode colors */
|
|
8761
|
+
@media (prefers-color-scheme: dark) {
|
|
8762
|
+
:root {
|
|
8763
|
+
--bg-color: rgb(31, 41, 55);
|
|
8764
|
+
--text-color: rgb(209, 213, 219);
|
|
8765
|
+
--label-key-color: rgb(229, 231, 235);
|
|
8766
|
+
--section-bg: rgb(17, 24, 39);
|
|
8767
|
+
--border-color: rgb(75, 85, 99);
|
|
8768
|
+
}
|
|
8769
|
+
}
|
|
8770
|
+
|
|
8771
|
+
/* Severity background colors */
|
|
8772
|
+
.severity-Critical {
|
|
8773
|
+
background-color: #C80000;
|
|
8774
|
+
color: #ffffff;
|
|
8775
|
+
padding: 4px 12px;
|
|
8776
|
+
border-radius: 12px;
|
|
8777
|
+
display: inline-block;
|
|
8778
|
+
font-weight: 600;
|
|
8779
|
+
font-size: 13px;
|
|
8780
|
+
}
|
|
8781
|
+
.severity-Warning {
|
|
8782
|
+
background-color: #fef3c7;
|
|
8783
|
+
color: #92400e;
|
|
8784
|
+
padding: 4px 12px;
|
|
8785
|
+
border-radius: 12px;
|
|
8786
|
+
display: inline-block;
|
|
8787
|
+
font-weight: 600;
|
|
8788
|
+
font-size: 13px;
|
|
8789
|
+
}
|
|
8790
|
+
.severity-Info {
|
|
8791
|
+
background-color: rgb(108,83,177);
|
|
8792
|
+
color: #ffffff;
|
|
8793
|
+
padding: 0.25rem 0.75rem;
|
|
8794
|
+
border-radius: 0.25rem;
|
|
8795
|
+
display: inline-block;
|
|
8796
|
+
font-weight: 500;
|
|
8797
|
+
}
|
|
8798
|
+
.severity-Ok {
|
|
8799
|
+
background-color: rgb(132 204 22);
|
|
8800
|
+
color:rgb(100, 239, 73);
|
|
8801
|
+
padding: 0.25rem 0.75rem;
|
|
8802
|
+
border-radius: 0.25rem;
|
|
8803
|
+
display: inline-block;
|
|
8804
|
+
font-weight: 500;
|
|
8805
|
+
}
|
|
8806
|
+
|
|
8807
|
+
/* Progress status colors */
|
|
8808
|
+
.progress-Triggered {
|
|
8809
|
+
background-color: #dbeafe;
|
|
8810
|
+
color: #1e40af;
|
|
8811
|
+
padding: 4px 12px;
|
|
8812
|
+
border-radius: 12px;
|
|
8813
|
+
display: inline-block;
|
|
8814
|
+
font-weight: 600;
|
|
8815
|
+
font-size: 13px;
|
|
8816
|
+
}
|
|
8817
|
+
.progress-Acknowledged {
|
|
8818
|
+
background-color: #ede9fe;
|
|
8819
|
+
color: #6b21a8;
|
|
8820
|
+
padding: 4px 12px;
|
|
8821
|
+
border-radius: 12px;
|
|
8822
|
+
display: inline-block;
|
|
8823
|
+
font-weight: 600;
|
|
8824
|
+
font-size: 13px;
|
|
8825
|
+
}
|
|
8826
|
+
.progress-Resolved {
|
|
8827
|
+
background-color: #d1fae5;
|
|
8828
|
+
color: #065f46;
|
|
8829
|
+
padding: 4px 12px;
|
|
8830
|
+
border-radius: 12px;
|
|
8831
|
+
display: inline-block;
|
|
8832
|
+
font-weight: 600;
|
|
8833
|
+
font-size: 13px;
|
|
8834
|
+
}
|
|
8835
|
+
.progress-Closed {
|
|
8836
|
+
background-color: #f3f4f6;
|
|
8837
|
+
color: #374151;
|
|
8838
|
+
padding: 4px 12px;
|
|
8839
|
+
border-radius: 12px;
|
|
8840
|
+
display: inline-block;
|
|
8841
|
+
font-weight: 600;
|
|
8842
|
+
font-size: 13px;
|
|
8843
|
+
}
|
|
8844
|
+
|
|
8845
|
+
/* Field row styles */
|
|
8846
|
+
.field-row {
|
|
8847
|
+
padding: 1rem 0;
|
|
8848
|
+
border-bottom: 1px solid var(--border-color);
|
|
8849
|
+
}
|
|
8850
|
+
.field-row:first-child {
|
|
8851
|
+
padding-top: 0;
|
|
8852
|
+
}
|
|
8853
|
+
.field-row:last-child {
|
|
8854
|
+
border-bottom: none;
|
|
8855
|
+
}
|
|
8856
|
+
.field-label {
|
|
8857
|
+
color: #6b7280;
|
|
8858
|
+
font-size: 0.875rem;
|
|
8859
|
+
margin-bottom: 0.25rem;
|
|
8860
|
+
}
|
|
8861
|
+
.field-value {
|
|
8862
|
+
color: var(--text-color);
|
|
8863
|
+
word-break: break-word;
|
|
8864
|
+
overflow-wrap: break-word;
|
|
8865
|
+
}
|
|
8866
|
+
|
|
8867
|
+
body {
|
|
8868
|
+
background-color: var(--bg-color);
|
|
8869
|
+
color: var(--text-color);
|
|
8870
|
+
}
|
|
8871
|
+
|
|
8872
|
+
.labels-section {
|
|
8873
|
+
background-color: #f3f4f6;
|
|
8874
|
+
padding: 1rem;
|
|
8875
|
+
border-radius: 0.375rem;
|
|
8876
|
+
margin-top: 0.5rem;
|
|
8877
|
+
}
|
|
8878
|
+
@media (prefers-color-scheme: dark) {
|
|
8879
|
+
.labels-section {
|
|
8880
|
+
background-color: rgb(55, 65, 81);
|
|
8881
|
+
}
|
|
8882
|
+
}
|
|
8307
8883
|
</style>
|
|
8308
8884
|
</head>
|
|
8309
8885
|
|
|
8310
|
-
<body data-id="__react-email-body" style="
|
|
8311
|
-
|
|
8312
|
-
<
|
|
8313
|
-
<
|
|
8314
|
-
|
|
8315
|
-
|
|
8316
|
-
|
|
8317
|
-
|
|
8318
|
-
|
|
8319
|
-
|
|
8320
|
-
|
|
8321
|
-
|
|
8322
|
-
|
|
8323
|
-
|
|
8324
|
-
|
|
8325
|
-
|
|
8326
|
-
|
|
8327
|
-
|
|
8328
|
-
|
|
8329
|
-
|
|
8330
|
-
|
|
8331
|
-
|
|
8332
|
-
|
|
8333
|
-
|
|
8334
|
-
|
|
8335
|
-
|
|
8336
|
-
|
|
8337
|
-
|
|
8338
|
-
|
|
8339
|
-
|
|
8340
|
-
|
|
8341
|
-
|
|
8342
|
-
|
|
8343
|
-
|
|
8344
|
-
|
|
8345
|
-
|
|
8346
|
-
|
|
8347
|
-
|
|
8348
|
-
|
|
8349
|
-
|
|
8350
|
-
|
|
8351
|
-
|
|
8352
|
-
|
|
8353
|
-
|
|
8354
|
-
|
|
8355
|
-
|
|
8356
|
-
|
|
8357
|
-
|
|
8358
|
-
|
|
8359
|
-
|
|
8360
|
-
|
|
8361
|
-
|
|
8362
|
-
|
|
8363
|
-
|
|
8364
|
-
|
|
8365
|
-
|
|
8366
|
-
|
|
8367
|
-
|
|
8368
|
-
|
|
8886
|
+
<body data-id="__react-email-body" style="margin:0;padding:0;background-color:#f3f4f6;font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji">
|
|
8887
|
+
<!-- Outer wrapper table for centering -->
|
|
8888
|
+
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="background-color:#f3f4f6">
|
|
8889
|
+
<tr>
|
|
8890
|
+
<td align="center" style="padding:40px 20px">
|
|
8891
|
+
<!-- Main container table with fixed width -->
|
|
8892
|
+
<table width="600" cellpadding="0" cellspacing="0" border="0" style="background-color:#ffffff;max-width:600px">
|
|
8893
|
+
<!-- Purple header bar with logo -->
|
|
8894
|
+
<tr>
|
|
8895
|
+
<td style="padding:32px 0 32px 32px;text-align:left">
|
|
8896
|
+
<img data-id="react-email-img" src="https://flashduty-public.oss-cn-beijing.aliyuncs.com/icons/flashduty-20251216.png" height="70" style="display:block;outline:none;border:none;text-decoration:none;height:70px;width:auto" alt="Flashduty" />
|
|
8897
|
+
</td>
|
|
8898
|
+
</tr>
|
|
8899
|
+
|
|
8900
|
+
<!-- Divider after logo -->
|
|
8901
|
+
<tr>
|
|
8902
|
+
<td style="padding:0 32px">
|
|
8903
|
+
<div style="border-top:1px solid #e5e7eb"></div>
|
|
8904
|
+
</td>
|
|
8905
|
+
</tr>
|
|
8906
|
+
|
|
8907
|
+
<!-- Main content -->
|
|
8908
|
+
<tr>
|
|
8909
|
+
<td style="padding:16px 32px 32px 32px">
|
|
8910
|
+
<!-- Title and Description -->
|
|
8911
|
+
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
8912
|
+
<tr>
|
|
8913
|
+
<td>
|
|
8914
|
+
<h1 style="margin:0;font-size:24px;font-weight:600;color:#111827;line-height:1.5">{{.Title}}</h1>
|
|
8915
|
+
{{if .Description}}
|
|
8916
|
+
<p style="margin:8px 0 0 0;font-size:16px;color:#6b7280;line-height:1.5">{{toHtml .Description}}</p>
|
|
8917
|
+
{{end}}
|
|
8918
|
+
</td>
|
|
8919
|
+
</tr>
|
|
8920
|
+
</table>
|
|
8921
|
+
|
|
8922
|
+
<!-- Divider after title -->
|
|
8923
|
+
<div style="border-top:1px solid #e5e7eb;margin:32px 0"></div>
|
|
8924
|
+
|
|
8925
|
+
<!-- Fields section -->
|
|
8926
|
+
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin-bottom:30px">
|
|
8927
|
+
<tr>
|
|
8928
|
+
<td style="padding:16px 0;border-bottom:1px solid #e5e7eb;background-color:#ffffff">
|
|
8929
|
+
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
8930
|
+
<tr>
|
|
8931
|
+
<td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Severity</td>
|
|
8932
|
+
<td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px"><span class="severity-{{.IncidentSeverity}}">{{.IncidentSeverity}}</span></td>
|
|
8933
|
+
</tr>
|
|
8934
|
+
</table>
|
|
8935
|
+
</td>
|
|
8936
|
+
</tr>
|
|
8937
|
+
|
|
8938
|
+
<tr>
|
|
8939
|
+
<td style="padding:16px 0;border-bottom:1px solid #e5e7eb;background-color:#ffffff">
|
|
8940
|
+
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
8941
|
+
<tr>
|
|
8942
|
+
<td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Channel</td>
|
|
8943
|
+
<td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px">{{if .ChannelName}}{{.ChannelName}}{{else}}None{{end}}</td>
|
|
8944
|
+
</tr>
|
|
8945
|
+
</table>
|
|
8946
|
+
</td>
|
|
8947
|
+
</tr>
|
|
8948
|
+
|
|
8949
|
+
<tr>
|
|
8950
|
+
<td style="padding:16px 0;border-bottom:1px solid #e5e7eb;background-color:#ffffff">
|
|
8951
|
+
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
8952
|
+
<tr>
|
|
8953
|
+
<td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Triggered at</td>
|
|
8954
|
+
<td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px">{{date "2006-01-02 15:04:05" .StartTime}}</td>
|
|
8955
|
+
</tr>
|
|
8956
|
+
</table>
|
|
8957
|
+
</td>
|
|
8958
|
+
</tr>
|
|
8959
|
+
|
|
8960
|
+
{{if .CreatorID}}
|
|
8961
|
+
<tr>
|
|
8962
|
+
<td style="padding:16px 0;border-bottom:1px solid #e5e7eb;background-color:#ffffff">
|
|
8963
|
+
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
8964
|
+
<tr>
|
|
8965
|
+
<td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Creator</td>
|
|
8966
|
+
<td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px">{{.Creator.PersonName}}</td>
|
|
8967
|
+
</tr>
|
|
8968
|
+
</table>
|
|
8969
|
+
</td>
|
|
8970
|
+
</tr>
|
|
8971
|
+
{{end}}
|
|
8972
|
+
|
|
8973
|
+
{{if gt (len .Responders) 0}}
|
|
8974
|
+
<tr>
|
|
8975
|
+
<td style="padding:16px 0;border-bottom:1px solid #e5e7eb;background-color:#ffffff">
|
|
8976
|
+
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
8977
|
+
<tr>
|
|
8978
|
+
<td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Responders</td>
|
|
8979
|
+
<td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px">{{range .Responders}}@{{.PersonName}} {{end}}</td>
|
|
8980
|
+
</tr>
|
|
8981
|
+
</table>
|
|
8982
|
+
</td>
|
|
8983
|
+
</tr>
|
|
8984
|
+
{{end}}
|
|
8985
|
+
|
|
8986
|
+
<tr>
|
|
8987
|
+
<td style="padding:16px 0;border-bottom:1px solid #e5e7eb;background-color:#ffffff">
|
|
8988
|
+
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
8989
|
+
<tr>
|
|
8990
|
+
<td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Progress</td>
|
|
8991
|
+
<td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px"><span class="progress-{{.Progress}}">{{.Progress}}</span></td>
|
|
8992
|
+
</tr>
|
|
8993
|
+
</table>
|
|
8994
|
+
</td>
|
|
8995
|
+
</tr>
|
|
8996
|
+
|
|
8997
|
+
{{if .Labels.resource}}
|
|
8998
|
+
<tr>
|
|
8999
|
+
<td style="padding:16px 0;border-bottom:1px solid #e5e7eb;background-color:#ffffff">
|
|
9000
|
+
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
9001
|
+
<tr>
|
|
9002
|
+
<td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Resource</td>
|
|
9003
|
+
<td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px">{{(joinAlertLabels . "resource" ", ")}}</td>
|
|
9004
|
+
</tr>
|
|
9005
|
+
</table>
|
|
9006
|
+
</td>
|
|
9007
|
+
</tr>
|
|
9008
|
+
{{end}}
|
|
9009
|
+
|
|
9010
|
+
{{if gt (len .Labels) 0}}
|
|
9011
|
+
<tr>
|
|
9012
|
+
<td style="padding:16px 0">
|
|
9013
|
+
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
9014
|
+
<tr>
|
|
9015
|
+
<td width="120" style="font-weight:600;color:#374151;font-size:14px;vertical-align:top;padding-left:16px">Labels</td>
|
|
9016
|
+
<td style="color:#6b7280;font-size:14px;word-break:break-word;padding-right:16px;background-color:#f9fafb;padding:16px">
|
|
9017
|
+
<pre style="margin:0;font-family:'Courier New',monospace;font-size:13px;color:#374151;white-space:pre-wrap;word-break:break-word">{{mustToPrettyJson .Labels}}</pre>
|
|
9018
|
+
</td>
|
|
9019
|
+
</tr>
|
|
9020
|
+
</table>
|
|
9021
|
+
</td>
|
|
9022
|
+
</tr>
|
|
9023
|
+
{{end}}
|
|
9024
|
+
</table>
|
|
9025
|
+
|
|
9026
|
+
<!-- Action buttons -->
|
|
9027
|
+
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin-top:32px">
|
|
9028
|
+
<tr>
|
|
9029
|
+
<td width="48%" align="center" style="padding:0">
|
|
9030
|
+
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
|
|
9031
|
+
<tr>
|
|
9032
|
+
<td align="center" style="background-color:rgb(108,83,177);border-radius:6px;padding:14px 32px">
|
|
9033
|
+
<a href="{{.DetailUrl}}?ack=1" data-id="react-email-button" target="_blank" style="color:#ffffff;font-size:16px;font-weight:600;text-decoration:none;display:block">Acknowledge Now</a>
|
|
9034
|
+
</td>
|
|
9035
|
+
</tr>
|
|
9036
|
+
</table>
|
|
9037
|
+
</td>
|
|
9038
|
+
<td width="4%" style="padding:0"></td>
|
|
9039
|
+
<td width="48%" align="center" style="padding:0">
|
|
9040
|
+
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
|
|
9041
|
+
<tr>
|
|
9042
|
+
<td align="center" style="background-color:#ffffff;border:2px solid rgb(108,83,177);border-radius:6px;padding:14px 32px">
|
|
9043
|
+
<a href="{{.DetailUrl}}" data-id="react-email-button" target="_blank" style="color:rgb(108,83,177);font-size:16px;font-weight:600;text-decoration:none;display:block">View Details</a>
|
|
9044
|
+
</td>
|
|
9045
|
+
</tr>
|
|
9046
|
+
</table>
|
|
9047
|
+
</td>
|
|
9048
|
+
</tr>
|
|
9049
|
+
</table>
|
|
9050
|
+
</td>
|
|
9051
|
+
</tr>
|
|
9052
|
+
|
|
9053
|
+
<!-- Footer -->
|
|
9054
|
+
<tr>
|
|
9055
|
+
<td style="background-color:#f9fafb;padding:20px;text-align:center">
|
|
9056
|
+
<p style="margin:0;font-size:12px;color:#9ca3af">ALL RIGHTS RESERVED © FLASHCAT.CLOUD</p>
|
|
9057
|
+
</td>
|
|
9058
|
+
</tr>
|
|
9059
|
+
</table>
|
|
9060
|
+
</td>
|
|
9061
|
+
</tr>
|
|
9062
|
+
</table>
|
|
8369
9063
|
</body>
|
|
8370
|
-
|
|
8371
9064
|
</html>
|
|
8372
9065
|
\`\`\`
|
|
8373
9066
|
|
|
@@ -8375,7 +9068,7 @@ As shown in the image below:
|
|
|
8375
9068
|
|
|
8376
9069
|
<img src="https://download.flashcat.cloud/flashduty/changelog/20230720/email_render.png" alt="drawing" style="display: block; margin: 0 auto;" width="500"/>
|
|
8377
9070
|
|
|
8378
|
-
</div>`,
|
|
9071
|
+
</div>`,ge=`---
|
|
8379
9072
|
title: "Link Integration"
|
|
8380
9073
|
description: "Through Link integration, you can quickly access external links by obtaining key parameters from incident attributes, labels, and other information"
|
|
8381
9074
|
date: "2025-05-19T10:00:00+08:00"
|
|
@@ -8432,4 +9125,208 @@ https://cmdb.com/vm?sn=VM123456
|
|
|
8432
9125
|
1. When referenced content does not exist, Link integration will still generate the corresponding link but will not be able to retrieve the value
|
|
8433
9126
|
2. Each channel can bind up to three Link integrations
|
|
8434
9127
|
3. Pay attention to reference syntax; improper variable reference formatting will result in failure to retrieve corresponding values
|
|
8435
|
-
`,
|
|
9128
|
+
`,pe=`Configure Label Mapping API to automatically call your external API when alert events arrive, enabling dynamic enrichment and correlation of alert information. With this feature, you can automatically attach information from external data sources such as CMDB, HR systems, and more to your alerts.
|
|
9129
|
+
|
|
9130
|
+
## I. Overview
|
|
9131
|
+
|
|
9132
|
+
The Label Mapping API allows you to build custom external services to enrich alert labels. The workflow is as follows:
|
|
9133
|
+
|
|
9134
|
+
1. Flashduty receives an alert event
|
|
9135
|
+
2. The system sends event information and the list of expected labels to your API based on configuration
|
|
9136
|
+
3. Your API queries external data sources (such as CMDB, databases, etc.)
|
|
9137
|
+
4. The API returns the computed enrichment labels
|
|
9138
|
+
5. Flashduty attaches the returned labels to the alert
|
|
9139
|
+
|
|
9140
|
+
<span id="ApiSpec"></span>
|
|
9141
|
+
|
|
9142
|
+
## II. API Specification
|
|
9143
|
+
|
|
9144
|
+
### Request Method
|
|
9145
|
+
|
|
9146
|
+
<div class="md-block">
|
|
9147
|
+
|
|
9148
|
+
POST, Content-Type:"application/json"
|
|
9149
|
+
|
|
9150
|
+
</div>
|
|
9151
|
+
|
|
9152
|
+
### Request Payload:
|
|
9153
|
+
|
|
9154
|
+
<div class="md-block">
|
|
9155
|
+
|
|
9156
|
+
| Field | Type | Required | Description |
|
|
9157
|
+
| :--------: | :-------------------: | :--: | :--------- |
|
|
9158
|
+
| result_label_keys | []string | Yes | List of expected label keys to return, configured by users in Flashduty |
|
|
9159
|
+
| event | [Event](#Event) | Yes | Complete information of the current alert event |
|
|
9160
|
+
|
|
9161
|
+
<span id="Event"></span>
|
|
9162
|
+
**Event**:
|
|
9163
|
+
|
|
9164
|
+
| Field | Type | Required | Description |
|
|
9165
|
+
| :--------: | :-------------------: | :--: | :--------- |
|
|
9166
|
+
| account_id | int64 | Yes | Account ID |
|
|
9167
|
+
| channel_id | int64 | Yes | Channel ID |
|
|
9168
|
+
| data_source_id | int64 | Yes | Data source ID |
|
|
9169
|
+
| data_source_type | string | Yes | Data source type, e.g., prometheus, zabbix, etc. |
|
|
9170
|
+
| title | string | Yes | Alert title |
|
|
9171
|
+
| title_rule | string | No | Title rule |
|
|
9172
|
+
| description | string | No | Alert description |
|
|
9173
|
+
| alert_key | string | Yes | Alert unique identifier |
|
|
9174
|
+
| alert_id | string | Yes | Alert ID |
|
|
9175
|
+
| event_severity | string | Yes | Event severity, enum: Critical, Warning, Info |
|
|
9176
|
+
| event_status | string | Yes | Event status, enum: Critical, Warning, Info, Ok |
|
|
9177
|
+
| event_time | int64 | Yes | Event time, Unix timestamp in seconds |
|
|
9178
|
+
| labels | map[string]string | No | Alert original label key-value pairs |
|
|
9179
|
+
| images | []string | No | List of alert-related images |
|
|
9180
|
+
|
|
9181
|
+
</div>
|
|
9182
|
+
|
|
9183
|
+
### Request Example
|
|
9184
|
+
|
|
9185
|
+
<div class="md-block">
|
|
9186
|
+
|
|
9187
|
+
\`\`\`json
|
|
9188
|
+
{
|
|
9189
|
+
"result_label_keys": ["owner_team", "service_tier", "host_ip"],
|
|
9190
|
+
"event": {
|
|
9191
|
+
"account_id": 1,
|
|
9192
|
+
"channel_id": 20,
|
|
9193
|
+
"data_source_id": 15,
|
|
9194
|
+
"data_source_type": "prometheus",
|
|
9195
|
+
"description": "CPU usage for instance '10.0.1.101:9100' is over 95%",
|
|
9196
|
+
"title": "High CPU Usage on instance 10.0.1.101:9100",
|
|
9197
|
+
"title_rule": "",
|
|
9198
|
+
"alert_key": "d41d8cd98f00b204e9800998ecf8427e",
|
|
9199
|
+
"alert_id": "62d6c0f6b8f1b2b3c4d5e6f7",
|
|
9200
|
+
"event_severity": "Critical",
|
|
9201
|
+
"event_status": "Critical",
|
|
9202
|
+
"event_time": 1678886400,
|
|
9203
|
+
"labels": {
|
|
9204
|
+
"region": "us-east-1",
|
|
9205
|
+
"service": "service-A",
|
|
9206
|
+
"env": "production",
|
|
9207
|
+
"instance": "10.0.1.101:9100"
|
|
9208
|
+
},
|
|
9209
|
+
"images": []
|
|
9210
|
+
}
|
|
9211
|
+
}
|
|
9212
|
+
\`\`\`
|
|
9213
|
+
|
|
9214
|
+
</div>
|
|
9215
|
+
|
|
9216
|
+
### Response Specification
|
|
9217
|
+
|
|
9218
|
+
<div class="md-block">
|
|
9219
|
+
|
|
9220
|
+
**Successful Response:**
|
|
9221
|
+
|
|
9222
|
+
| Field | Type | Required | Description |
|
|
9223
|
+
| :--------: | :-------------------: | :--: | :--------- |
|
|
9224
|
+
| result_labels | map[string]string | Yes | Returned enrichment label key-value object |
|
|
9225
|
+
|
|
9226
|
+
- HTTP Status Code: \`200 OK\`
|
|
9227
|
+
- Response body must be a JSON object containing the \`result_labels\` field
|
|
9228
|
+
- Keys in \`result_labels\` must be label names specified in the request's \`result_label_keys\`
|
|
9229
|
+
- If a label cannot be retrieved, it **should not** be included in the response
|
|
9230
|
+
|
|
9231
|
+
**Successful Response Example:**
|
|
9232
|
+
|
|
9233
|
+
\`\`\`json
|
|
9234
|
+
{
|
|
9235
|
+
"result_labels": {
|
|
9236
|
+
"owner_team": "team-database",
|
|
9237
|
+
"service_tier": "tier-1",
|
|
9238
|
+
"host_ip": "10.0.1.101"
|
|
9239
|
+
}
|
|
9240
|
+
}
|
|
9241
|
+
\`\`\`
|
|
9242
|
+
|
|
9243
|
+
**Failure Response:**
|
|
9244
|
+
|
|
9245
|
+
| Status Code | Meaning |
|
|
9246
|
+
| :--------: | :--------- |
|
|
9247
|
+
| 404 Not Found | No data available for enrichment based on the event information |
|
|
9248
|
+
| 400 Bad Request | Request body format error or event object missing required fields |
|
|
9249
|
+
| 5xx | Unexpected internal API error (e.g., database connection failure) |
|
|
9250
|
+
|
|
9251
|
+
> **Note:** Returning \`200 OK\` status code with an empty \`result_labels: {}\` object will also be treated as "no results", but using the \`404\` status code is the more standard approach.
|
|
9252
|
+
|
|
9253
|
+
</div>
|
|
9254
|
+
|
|
9255
|
+
<span id="ServiceConfig"></span>
|
|
9256
|
+
|
|
9257
|
+
## III. Configure Mapping Service
|
|
9258
|
+
|
|
9259
|
+
When configuring label mapping in Flashduty, you need to first create a mapping service, then reference that service in your label enrichment rules.
|
|
9260
|
+
|
|
9261
|
+
### Mapping Service Field Description
|
|
9262
|
+
|
|
9263
|
+
<div class="md-block">
|
|
9264
|
+
|
|
9265
|
+
| Field | Type | Required | Description |
|
|
9266
|
+
| :--------: | :-------------------: | :--: | :--------- |
|
|
9267
|
+
| api_name | string | Yes | Human-readable service name for selection and reference in the UI, e.g., "CMDB Asset Query API" |
|
|
9268
|
+
| description | string | No | Detailed description of the service |
|
|
9269
|
+
| url | string | Yes | API request URL, supports template variables |
|
|
9270
|
+
| headers | map[string]string | No | HTTP request headers for passing custom authentication, subject to [security blacklist](#HeaderBlacklist) restrictions |
|
|
9271
|
+
| timeout | int | No | Request timeout (in seconds),scope: 1~3 |
|
|
9272
|
+
| retry_count | int | No | Number of retries after request failure, ,scope: 0~1 |
|
|
9273
|
+
| insecure_skip_verify | bool | No | Skip certificate verification for HTTPS requests |
|
|
9274
|
+
| status | string | No | Service status, e.g., enabled, disabled |
|
|
9275
|
+
|
|
9276
|
+
</div>
|
|
9277
|
+
|
|
9278
|
+
### Label Enrichment Rule Configuration
|
|
9279
|
+
|
|
9280
|
+
When configuring label enrichment rules, you only need to focus on the following settings:
|
|
9281
|
+
|
|
9282
|
+
1. **result_label_keys**: Specify the list of labels you expect to retrieve from the API. Flashduty will automatically combine this list with the current \`event\` object into a request body and send it to your API
|
|
9283
|
+
2. **Mapping Service**: Select or configure the API service URL, Headers, and other information
|
|
9284
|
+
|
|
9285
|
+
<span id="HeaderBlacklist"></span>
|
|
9286
|
+
|
|
9287
|
+
## IV. Header Security Constraints
|
|
9288
|
+
|
|
9289
|
+
To prevent security bypasses, request smuggling, IP spoofing, and cache poisoning, the following Headers are **prohibited** when customizing API request headers. The system gateway will automatically filter or reject requests containing these Headers.
|
|
9290
|
+
|
|
9291
|
+
<div class="md-block">
|
|
9292
|
+
|
|
9293
|
+
| Category | Blacklisted Headers | Risk Description |
|
|
9294
|
+
| :--- | :--- | :--- |
|
|
9295
|
+
| **Authentication & Authorization** | \`authorization\`, \`proxy-authorization\`, \`cookie\`, \`x-api-key\`, \`x-access-token\` | Prevents credential leakage or unauthorized hijacking of existing authentication contexts |
|
|
9296
|
+
| **IP & Geolocation Spoofing** | \`x-forwarded-for\`, \`x-real-ip\`, \`true-client-ip\`, \`x-client-ip\` | Prevents clients from spoofing source IP to bypass rate limits or allowlists/blocklists |
|
|
9297
|
+
| **Host & Routing Manipulation** | \`host\`, \`x-forwarded-host\`, \`x-forwarded-proto\`, \`x-internal-id\`, \`x-user-id\` | Prevents Host injection attacks, redirect loops, or spoofing internal system IDs |
|
|
9298
|
+
| **Protocol & Request Smuggling** | \`transfer-encoding\`, \`upgrade\`, \`connection\` | Prevents request smuggling attacks exploiting HTTP protocol differences |
|
|
9299
|
+
|
|
9300
|
+
</div>
|
|
9301
|
+
|
|
9302
|
+
### Header Best Practices
|
|
9303
|
+
|
|
9304
|
+
1. **Allowlist Mode**: It is recommended to only allow custom Headers prefixed with \`X-Custom-\` or \`X-Enrich-\`
|
|
9305
|
+
2. **Length Limits**: The Key or Value length of a single Header should not exceed 1024 bytes
|
|
9306
|
+
3. **Format Validation**: Header Values must not contain line breaks (\`\\r\`, \`\\n\`) to prevent Header injection attacks
|
|
9307
|
+
|
|
9308
|
+
## V. Best Practices
|
|
9309
|
+
|
|
9310
|
+
1. **Performance First:** This API is on the critical path of alert processing and must ensure low latency. Queries to external data sources should be as fast as possible, and implementing caching is recommended.
|
|
9311
|
+
|
|
9312
|
+
2. **Clear Error Handling:** Make good use of HTTP status codes (especially \`404\`) to convey clear execution results.
|
|
9313
|
+
|
|
9314
|
+
3. **Idempotency:** The API design should be as idempotent as possible. Multiple calls for the same \`event\` should return the same result.
|
|
9315
|
+
|
|
9316
|
+
4. **Security:** The API must be protected through authentication and authorization mechanisms. Using custom Headers (e.g., \`X-Custom-Auth\`) for passing authentication information is recommended.
|
|
9317
|
+
|
|
9318
|
+
## VI. FAQ
|
|
9319
|
+
|
|
9320
|
+
1. **Is there a response timeout for the service?**
|
|
9321
|
+
|
|
9322
|
+
- The service must respond within the configured timeout period; exceeding this is considered a failure
|
|
9323
|
+
|
|
9324
|
+
2. **What happens if the API returns a failure?**
|
|
9325
|
+
|
|
9326
|
+
- The alert will be processed normally, but no enrichment labels will be attached
|
|
9327
|
+
- Based on the configured retry count, the system may retry the request
|
|
9328
|
+
|
|
9329
|
+
3. **Can result_label_keys be changed dynamically?**
|
|
9330
|
+
|
|
9331
|
+
- Yes, you can modify the list of expected labels in Flashduty at any time without modifying the API code
|
|
9332
|
+
`,me={CustomAlert:n,Email:t,N9e:a,Prometheus:o,Grafana:i,Zabbix:s,UptimeKuma:r,AliyunARMS:l,AliyunCmEvent:d,AliyunCm:c,AliyunSLS:e,AWSCW:e,AzureMonitor:u,BaiDuBCM:h,HuaWeiCES:g,InfluxDB:p,OpenFalcon:m,PagerDuty:f,TencentBK:y,TencentCLS:b,TencentCm:v,TencentEb:w,OceanBase:C,Graylog:k,Skywalking:I,Sentry:S,Jiankongbao:A,AWSEventBridge:x,Dynatrace:F,HuaweiyunLTS:_,GoogleCM:R,Zilliz:G,Splunk:L,AppDynamics:T,SolarWinds:U,VolcEngineMetric:E,VolcEngineEvent:P,VolcEngineTLS:D,OpManager:N,Meraki:M,StateCloud:W,Guance:q,CustomChange:X,Jira:ee,Lark:ne,Dingtalk:te,Wecom:ae,Slack:oe,MicrosoftTeams:ie,AlertWebhook:se,IncidentWebhook:re,CustomAction:le,Templates:he,HuaweiyunAPM:O,JiraSync:de,ZStack:H,Keep:$,ElastAlert2:Y,DingtalkAlert:j,FeishuAlert:z,VolcEngineDetect:B,Link:ge,ServiceNowSync:ce,Monit:V,Rum:K,Cloudflare:J,WecomAlert:Z,ServiceDeskPlusSync:ue,Harbor:Q,LabelMappingAPI:pe};module.exports=me;
|