flashduty-knowledge-base 1.0.9 → 1.1.1
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/dist/en.cjs +128 -82
- package/dist/en.js +131 -85
- package/dist/zh.cjs +69 -45
- package/dist/zh.js +71 -47
- package/package.json +1 -1
package/dist/en.cjs
CHANGED
|
@@ -1,115 +1,131 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=`---
|
|
2
|
-
title: "Standard Alert Integration Guide"
|
|
3
|
-
description: "Push
|
|
4
|
-
date: "
|
|
2
|
+
title: "Standard Alert Event Integration Guide"
|
|
3
|
+
description: "Push alert events from your own system to Flashduty through standard protocols to achieve automated alert noise reduction."
|
|
4
|
+
date: "2025-01-20T10:00:00+08:00"
|
|
5
5
|
url: "https://docs.flashcat.cloud/en/flashduty/custom-alert-integration-guide"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
Push
|
|
8
|
+
Push alert events from your own system to Flashduty through standard protocols to achieve automated alert noise reduction.
|
|
9
9
|
|
|
10
10
|
:::tips
|
|
11
|
-
Flashduty has already adapted webhook protocols for most common alert systems. For these systems, you should first use
|
|
11
|
+
Flashduty has already adapted webhook protocols for most common alert systems. For these systems, you should first use the corresponding integration for simplicity. This integration provides a standard HTTP interface that requires your development for adaptation. The advantage is that you can push any alert events you want to handle through on-call.
|
|
12
12
|
:::
|
|
13
13
|
|
|
14
|
-
<div class="hide">
|
|
15
|
-
|
|
16
14
|
## Steps
|
|
17
15
|
---
|
|
18
16
|
|
|
19
17
|
### In Flashduty
|
|
20
18
|
|
|
21
|
-
You can obtain
|
|
19
|
+
You can obtain an integration push URL through either of the following two methods:
|
|
22
20
|
|
|
23
|
-
#### Using
|
|
21
|
+
#### Using Dedicated Integration
|
|
24
22
|
|
|
25
|
-
|
|
23
|
+
When you don't need to route alert events to different collaboration spaces, this method is preferred as it's simpler.
|
|
26
24
|
|
|
27
25
|
<details>
|
|
28
26
|
<summary>Expand</summary>
|
|
29
27
|
|
|
30
|
-
1.
|
|
31
|
-
2. Select the **
|
|
32
|
-
3.
|
|
33
|
-
4. Click the generated card to view the **
|
|
28
|
+
1. Enter the Flashduty console, select **Collaboration Space**, and enter the details page of a space
|
|
29
|
+
2. Select the **Integrations** tab, click **Add Integration**, and enter the add integration page
|
|
30
|
+
3. Select **Standard Alert Event** integration, click **Save** to generate a card
|
|
31
|
+
4. Click the generated card to view the **Push URL**, copy it for later use, and you're done
|
|
34
32
|
|
|
35
33
|
</details>
|
|
36
34
|
|
|
37
35
|
#### Using Shared Integration
|
|
38
36
|
|
|
39
|
-
|
|
37
|
+
When you need to route alert events to different collaboration spaces based on the alert event's Payload information, this method is preferred.
|
|
40
38
|
|
|
41
39
|
<details>
|
|
42
40
|
<summary>Expand</summary>
|
|
43
41
|
|
|
44
|
-
1.
|
|
45
|
-
2. Select **Standard Alert** integration:
|
|
46
|
-
- **Integration Name**: Define a name for
|
|
47
|
-
3. Click **Save** and copy the newly generated **
|
|
48
|
-
4. Click **Create Route** to configure routing rules for the integration. You can match different alerts to different
|
|
42
|
+
1. Enter the Flashduty console, select **Integration Center => Alert Events** to enter the integration selection page
|
|
43
|
+
2. Select **Standard Alert Event** integration:
|
|
44
|
+
- **Integration Name**: Define a name for the current integration
|
|
45
|
+
3. Click **Save** and copy the newly generated **Push URL** on the current page for later use
|
|
46
|
+
4. Click **Create Route** to configure routing rules for the integration. You can match different alerts to different collaboration spaces based on conditions, or set a default collaboration space as a fallback, and adjust as needed later
|
|
49
47
|
5. Complete
|
|
50
48
|
|
|
51
49
|
</details>
|
|
52
|
-
</div>
|
|
53
50
|
|
|
54
51
|
## I. Request Description
|
|
52
|
+
---
|
|
55
53
|
|
|
56
54
|
### Request Method
|
|
57
55
|
|
|
56
|
+
<div class="md-block">
|
|
57
|
+
|
|
58
58
|
POST, Content-Type:"application/json"
|
|
59
59
|
|
|
60
|
+
</div>
|
|
61
|
+
|
|
60
62
|
### Request Parameters:
|
|
61
63
|
|
|
62
|
-
|
|
64
|
+
<div class="md-block">
|
|
63
65
|
|
|
64
|
-
|
|
66
|
+
#### Headers:
|
|
67
|
+
Field|Required|Type|Description
|
|
68
|
+
:-:|:-:|:-:|:---
|
|
69
|
+
| Content-Type | Yes | string | Fixed value: \`application/json\`
|
|
65
70
|
|
|
66
|
-
|
|
67
|
-
|
|
|
68
|
-
|
|
69
|
-
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
| labels | No | map | Alert label collection, key is the label name, value is the label value. Labels are event descriptions, crucial for subsequent correlation and noise reduction. 1. Label keys and values are case-sensitive strings. 2. Label keys should not exceed 128 characters. 3. Maximum 50 labels allowed. \`Label content reference\` [Best Practices](#Best-Practices) |
|
|
71
|
+
#### Query Strings:
|
|
72
|
+
Field|Required|Type|Description
|
|
73
|
+
:-:|:-:|:-:|:---
|
|
74
|
+
| integration_key | Yes | string | Integration key for access control. Obtained after adding integration.
|
|
75
|
+
|
|
76
|
+
#### Payload:
|
|
73
77
|
|
|
78
|
+
Field|Required|Type|Description
|
|
79
|
+
:-:|:-:|:-:|:---
|
|
80
|
+
| title_rule | Yes | string | Alert title, no more than \`512\` characters, will be truncated if exceeded.<br><br>Supports dynamic title generation based on alert content, see [Customizing Incidents](https://docs.flashcat.cloud/en/flashduty/customize-incident-attrs) for generation rules.
|
|
81
|
+
| event_status | Yes | string | Alert status.<br><br>Enumerated values (case-sensitive): *Critical*, *Warning*, *Info*, *Ok*.<br><br>When specified as Ok, it means automatic recovery of the alert.
|
|
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
|
+
| description | No | string | Alert description, no more than \`2048\` characters, will be truncated if exceeded.
|
|
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
|
+
|
|
74
86
|
</div>
|
|
75
87
|
|
|
76
88
|
### Response
|
|
77
89
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
Parameter|Required|Type|Description
|
|
83
|
-
----------|---|---|---
|
|
84
|
-
request_id|Yes|string|Request trace id for issue tracking
|
|
90
|
+
Field Name|Required|Type|Description
|
|
91
|
+
:-:|:-:|:-:|:---
|
|
92
|
+
request_id|Yes|string|Request ID for trace tracking
|
|
85
93
|
error|No|[Error](#Error)|Error description, returned only when an error occurs
|
|
94
|
+
data|No|[Data](#Data)|Report information
|
|
95
|
+
|
|
96
|
+
<span id="Data"></span>
|
|
97
|
+
Data:
|
|
98
|
+
|
|
99
|
+
| Field Name | Required | Type | Description |
|
|
100
|
+
:-:|:-:|:-:|:---
|
|
101
|
+
| alert_key | No | string | Alert identifier, can be used to report recovery events. If you specified an alert_key when reporting the event, this value remains unchanged. Otherwise, it's automatically generated by the system. |
|
|
86
102
|
|
|
87
103
|
<span id="Error"></span>
|
|
88
104
|
Error:
|
|
89
105
|
|
|
90
|
-
|
|
|
91
|
-
|
|
92
|
-
| code
|
|
93
|
-
| message
|
|
106
|
+
| Field Name | Required | Type | Description |
|
|
107
|
+
:-:|:-:|:-:|:---
|
|
108
|
+
| code | Yes | string | Error code, see [Code](#Code) for enumerated values |
|
|
109
|
+
| message | No | string | Error description |
|
|
94
110
|
|
|
95
111
|
<span id="Code"></span>
|
|
96
112
|
Code:
|
|
97
113
|
|
|
98
|
-
| Error Code
|
|
99
|
-
|
|
|
100
|
-
| InvalidParameter
|
|
101
|
-
| InvalidContentType
|
|
102
|
-
| MethodNotAllowed
|
|
103
|
-
| Unauthorized
|
|
104
|
-
| AccessDenied
|
|
105
|
-
| RequestTooFrequently | 429
|
|
106
|
-
| RouteNotFound
|
|
107
|
-
| ResourceNotFound
|
|
108
|
-
|
|
|
114
|
+
| Error Code | HTTP Status | Description |
|
|
115
|
+
| :-:|:-:| ------------------ |
|
|
116
|
+
| InvalidParameter | 400 | Parameter error |
|
|
117
|
+
| InvalidContentType | 400 | Content-Type not supported |
|
|
118
|
+
| MethodNotAllowed | 400 | HTTP Method not supported |
|
|
119
|
+
| Unauthorized | 401 | Login authentication failed |
|
|
120
|
+
| AccessDenied | 403 | Permission authentication failed |
|
|
121
|
+
| RequestTooFrequently | 429 | Request too frequent |
|
|
122
|
+
| RouteNotFound | 404 | Request Method+Path not matched |
|
|
123
|
+
| ResourceNotFound | 400 | Account hasn't purchased resources, please go to the cost center to place an order |
|
|
124
|
+
| NoLicense | 400 | Account has insufficient subscription licenses, please upgrade or purchase subscription in the cost center |
|
|
125
|
+
| InternalError | 500 | Internal or unknown error |
|
|
109
126
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
### Request Example
|
|
127
|
+
### II. Request Example
|
|
128
|
+
---
|
|
113
129
|
|
|
114
130
|
Request:
|
|
115
131
|
|
|
@@ -118,9 +134,7 @@ curl -X POST '{api_host}/event/push/alert/standard?integration_key={integration_
|
|
|
118
134
|
-H 'Content-Type: application/json' \\
|
|
119
135
|
-d '{
|
|
120
136
|
"event_status": "Warning",
|
|
121
|
-
"
|
|
122
|
-
"description": "cpu idle low than 20%",
|
|
123
|
-
"title_rule": "$cluster::$resource::$check",
|
|
137
|
+
"title_rule": "cpu idle low than 20%",
|
|
124
138
|
"labels": {
|
|
125
139
|
"service": "engine",
|
|
126
140
|
"cluster":"nj",
|
|
@@ -131,15 +145,18 @@ curl -X POST '{api_host}/event/push/alert/standard?integration_key={integration_
|
|
|
131
145
|
}' -v
|
|
132
146
|
\`\`\`
|
|
133
147
|
|
|
134
|
-
Successful
|
|
148
|
+
Successful Response:
|
|
135
149
|
|
|
136
150
|
\`\`\`
|
|
137
151
|
{
|
|
138
|
-
"request_id": "0ace00116215ab4ca0ec5244b8fc54b0"
|
|
152
|
+
"request_id": "0ace00116215ab4ca0ec5244b8fc54b0",
|
|
153
|
+
"data": {
|
|
154
|
+
"alert_key": "9qJ798NJoXS4UMVB5SHsNj"
|
|
155
|
+
}
|
|
139
156
|
}
|
|
140
157
|
\`\`\`
|
|
141
158
|
|
|
142
|
-
Failed
|
|
159
|
+
Failed Response:
|
|
143
160
|
|
|
144
161
|
\`\`\`
|
|
145
162
|
{
|
|
@@ -151,20 +168,49 @@ Failed response:
|
|
|
151
168
|
}
|
|
152
169
|
\`\`\`
|
|
153
170
|
|
|
154
|
-
<span id="
|
|
155
|
-
|
|
156
|
-
## II. Best Practices
|
|
171
|
+
## III. Best Practices <span id="best-practices"></span>
|
|
172
|
+
---
|
|
157
173
|
|
|
158
|
-
1. Send events to
|
|
174
|
+
1. Send events to Flashduty when alert status changes
|
|
159
175
|
2. When an alert recovers, send an event with status Ok to close the alert. Otherwise, the alert will remain open. If your alert system doesn't have recovery events, we recommend manually sending recovery events
|
|
160
|
-
3. Labels are event descriptions
|
|
161
|
-
- Alert source
|
|
162
|
-
- Alert ownership information
|
|
163
|
-
- Alert category information
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
176
|
+
3. Labels are event descriptions, and label content should be as rich as possible (specified when sending, or generated through enrichment rules), such as:
|
|
177
|
+
- Alert source, like host, cluster, check, or metric
|
|
178
|
+
- Alert ownership information, like team, owner
|
|
179
|
+
- Alert category information, like class (api, db, net)
|
|
180
|
+
|
|
181
|
+
## IV. FAQ
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
<details>
|
|
185
|
+
<summary>Why haven't I received alerts in Flashduty?</summary>
|
|
186
|
+
|
|
187
|
+
#### In Flashduty
|
|
188
|
+
|
|
189
|
+
1. Check if the integration shows **Latest Event Time**? If not, it means Flashduty hasn't received the push, prioritize checking your system.
|
|
190
|
+
2. If you're using **Shared Integration**, first confirm if you've configured **Routing Rules**. Without routing rules, the system will directly reject new pushes as there's no collaboration space to handle your alerts. In this case, simply configure routing rules to your desired space.
|
|
191
|
+
|
|
192
|
+
#### In Your System
|
|
193
|
+
|
|
194
|
+
1. Confirm that your request URL exactly matches the URL in the integration details.
|
|
195
|
+
2. Confirm that your service can access the external domain api.flashcat.cloud. If not, you need to enable external network access for the server or specifically for Flashduty's domain.
|
|
196
|
+
3. Print Flashduty service's response to check for clear information.
|
|
197
|
+
|
|
198
|
+
If you still can't find the root cause after these steps, please contact us with the **request_id** from the request response.
|
|
199
|
+
|
|
200
|
+
</details>
|
|
201
|
+
|
|
202
|
+
<details>
|
|
203
|
+
<summary>Why was the push request successful but no new alerts or incidents were generated?</summary>
|
|
204
|
+
|
|
205
|
+
Flashduty uses a 2-layer noise reduction mechanism:
|
|
206
|
+
|
|
207
|
+
1. First, it checks for duplicate alert events. If your pushed event is identical to a previously pushed event, the new event will be discarded.
|
|
208
|
+
2. If the new event's status and description match the status, title, and description of the last event of its corresponding alert, the new event will be discarded while updating the alert's attributes.
|
|
209
|
+
3. The new event might be discarded due to matching exclusion, discard, suppression, or silence rules.
|
|
210
|
+
4. When a new event triggers a new alert, the system enters the second layer of noise reduction check, determining if the new alert can be merged into an active incident. If possible, it will only merge into the existing incident without generating a new one.
|
|
211
|
+
|
|
212
|
+
For more information, please refer to [Alert Noise Reduction](https://docs.flashcat.cloud/en/flashduty/what-is-noise-reduction).
|
|
213
|
+
</details> `,t=`---
|
|
168
214
|
title: "Email Integration"
|
|
169
215
|
description: "Generate a unique email address in Flashduty to synchronize alert triggers and recoveries through email"
|
|
170
216
|
date: "2024-05-11T10:00:00+08:00"
|
|
@@ -423,7 +469,7 @@ Nightingale/Flashcat to Flashduty alert severity mapping:
|
|
|
423
469
|
|
|
424
470
|
</details>
|
|
425
471
|
|
|
426
|
-
`,
|
|
472
|
+
`,i=`---
|
|
427
473
|
title: "Prometheus Integration Guide"
|
|
428
474
|
description: "Push Prometheus alert events to Flashduty through AlertManager using webhooks. When an alert is triggered, it sends a trigger event to Flashduty, and when the alert recovers, it sends a recovery event."
|
|
429
475
|
date: "2024-05-11T10:00:00+08:00"
|
|
@@ -605,7 +651,7 @@ Prometheus to Flashduty severity mapping:
|
|
|
605
651
|
|
|
606
652
|
|
|
607
653
|
|
|
608
|
-
`,
|
|
654
|
+
`,o=`---
|
|
609
655
|
title: "Grafana Integration"
|
|
610
656
|
description: "Sync Grafana alert events to Flashduty via webhook to achieve automated alert noise reduction."
|
|
611
657
|
date: "2024-05-11T10:00:00+08:00"
|
|
@@ -781,7 +827,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
781
827
|
1. Media type is a transport channel used for sending notifications and alerts in Zabbix. Enter the terminal and download the complete configuration using the following command:
|
|
782
828
|
|
|
783
829
|
\`\`\`
|
|
784
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v7.yml
|
|
830
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v7.yml
|
|
785
831
|
|
|
786
832
|
\`\`\`
|
|
787
833
|
2. Log in to the Zabbix console, select \`Alert > Media Types\`, click the Import button in the top right corner, enter the editing page, select the configuration file downloaded above, and click Import to complete the import
|
|
@@ -855,10 +901,10 @@ Log in to the Zabbix console, select \`Monitoring > Problems\` to view the lates
|
|
|
855
901
|
|
|
856
902
|
\`\`\`
|
|
857
903
|
// 5.x version XML configuration:
|
|
858
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v5.xml
|
|
904
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v5.xml
|
|
859
905
|
|
|
860
906
|
// 6.x version YAML configuration:
|
|
861
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v6.yml
|
|
907
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v6.yml
|
|
862
908
|
\`\`\`
|
|
863
909
|
|
|
864
910
|
2. Log in to the Zabbix console, select \`Administration > Media Types\`, click the Import button in the top right corner, enter the editing page, select the configuration file downloaded above, and click Import to complete the import
|
|
@@ -945,7 +991,7 @@ Log in to the Zabbix console, select \`Monitoring > Problems\` to view the lates
|
|
|
945
991
|
cd /usr/lib/zabbix/alertscripts
|
|
946
992
|
|
|
947
993
|
#2. Download script
|
|
948
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/send-to-flashduty.sh
|
|
994
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/send-to-flashduty.sh
|
|
949
995
|
|
|
950
996
|
#3. Change script to executable status
|
|
951
997
|
chmod +x send-to-flashduty.sh
|
|
@@ -4005,7 +4051,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4005
4051
|
|Notice|Info|Info|
|
|
4006
4052
|
|
|
4007
4053
|
</div>
|
|
4008
|
-
`,
|
|
4054
|
+
`,N=`---
|
|
4009
4055
|
title: "Volcengine Log Service (TLS) Alert Events"
|
|
4010
4056
|
description: "Sync Volcengine Log Service (TLS) alert events to Flashduty via webhook for automated alert noise reduction"
|
|
4011
4057
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -4142,7 +4188,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4142
4188
|
</div>
|
|
4143
4189
|
|
|
4144
4190
|
</div>
|
|
4145
|
-
`,
|
|
4191
|
+
`,P=`---
|
|
4146
4192
|
title: "OpManager Alert Events"
|
|
4147
4193
|
description: "Sync OpManager alert events to Flashduty via webhook for automated alert noise reduction"
|
|
4148
4194
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -6467,4 +6513,4 @@ If custom content is not set, the system default template will be used for notif
|
|
|
6467
6513
|
As shown below:
|
|
6468
6514
|
<img src="https://download.flashcat.cloud/flashduty/doc/en/fd/template-mail-1.png" width="800">
|
|
6469
6515
|
|
|
6470
|
-
`;exports.AWSCW=e;exports.AWSEventBridge=A;exports.AlertWebhook=z;exports.AliyunARMS=l;exports.AliyunCm=c;exports.AliyunCmEvent=d;exports.AliyunSLS=e;exports.AppDynamics=T;exports.AzureMonitor=h;exports.BaiDuBCM=u;exports.CustomAction=Z;exports.CustomAlert=n;exports.CustomChange=q;exports.Dingtalk=$;exports.Dynatrace=L;exports.Email=t;exports.GoogleCM=x;exports.Grafana=
|
|
6516
|
+
`;exports.AWSCW=e;exports.AWSEventBridge=A;exports.AlertWebhook=z;exports.AliyunARMS=l;exports.AliyunCm=c;exports.AliyunCmEvent=d;exports.AliyunSLS=e;exports.AppDynamics=T;exports.AzureMonitor=h;exports.BaiDuBCM=u;exports.CustomAction=Z;exports.CustomAlert=n;exports.CustomChange=q;exports.Dingtalk=$;exports.Dynatrace=L;exports.Email=t;exports.GoogleCM=x;exports.Grafana=o;exports.Graylog=k;exports.Guance=G;exports.HuaWeiCES=g;exports.HuaweiyunLTS=F;exports.IncidentWebhook=K;exports.InfluxDB=p;exports.Jiankongbao=_;exports.Jira=O;exports.Lark=j;exports.Meraki=M;exports.MicrosoftTeams=V;exports.N9e=a;exports.OceanBase=C;exports.OpManager=P;exports.OpenFalcon=m;exports.PagerDuty=f;exports.Prometheus=i;exports.Sentry=S;exports.Skywalking=I;exports.Slack=B;exports.SolarWinds=U;exports.Splunk=R;exports.StateCloud=W;exports.Templates=J;exports.TencentBK=y;exports.TencentCLS=v;exports.TencentCm=b;exports.TencentEb=w;exports.UptimeKuma=r;exports.VolcEngineEvent=D;exports.VolcEngineMetric=E;exports.VolcEngineTLS=N;exports.Wecom=H;exports.Zabbix=s;exports.Zilliz=Y;
|
package/dist/en.js
CHANGED
|
@@ -1,115 +1,131 @@
|
|
|
1
1
|
const e = `---
|
|
2
|
-
title: "Standard Alert Integration Guide"
|
|
3
|
-
description: "Push
|
|
4
|
-
date: "
|
|
2
|
+
title: "Standard Alert Event Integration Guide"
|
|
3
|
+
description: "Push alert events from your own system to Flashduty through standard protocols to achieve automated alert noise reduction."
|
|
4
|
+
date: "2025-01-20T10:00:00+08:00"
|
|
5
5
|
url: "https://docs.flashcat.cloud/en/flashduty/custom-alert-integration-guide"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
Push
|
|
8
|
+
Push alert events from your own system to Flashduty through standard protocols to achieve automated alert noise reduction.
|
|
9
9
|
|
|
10
10
|
:::tips
|
|
11
|
-
Flashduty has already adapted webhook protocols for most common alert systems. For these systems, you should first use
|
|
11
|
+
Flashduty has already adapted webhook protocols for most common alert systems. For these systems, you should first use the corresponding integration for simplicity. This integration provides a standard HTTP interface that requires your development for adaptation. The advantage is that you can push any alert events you want to handle through on-call.
|
|
12
12
|
:::
|
|
13
13
|
|
|
14
|
-
<div class="hide">
|
|
15
|
-
|
|
16
14
|
## Steps
|
|
17
15
|
---
|
|
18
16
|
|
|
19
17
|
### In Flashduty
|
|
20
18
|
|
|
21
|
-
You can obtain
|
|
19
|
+
You can obtain an integration push URL through either of the following two methods:
|
|
22
20
|
|
|
23
|
-
#### Using
|
|
21
|
+
#### Using Dedicated Integration
|
|
24
22
|
|
|
25
|
-
|
|
23
|
+
When you don't need to route alert events to different collaboration spaces, this method is preferred as it's simpler.
|
|
26
24
|
|
|
27
25
|
<details>
|
|
28
26
|
<summary>Expand</summary>
|
|
29
27
|
|
|
30
|
-
1.
|
|
31
|
-
2. Select the **
|
|
32
|
-
3.
|
|
33
|
-
4. Click the generated card to view the **
|
|
28
|
+
1. Enter the Flashduty console, select **Collaboration Space**, and enter the details page of a space
|
|
29
|
+
2. Select the **Integrations** tab, click **Add Integration**, and enter the add integration page
|
|
30
|
+
3. Select **Standard Alert Event** integration, click **Save** to generate a card
|
|
31
|
+
4. Click the generated card to view the **Push URL**, copy it for later use, and you're done
|
|
34
32
|
|
|
35
33
|
</details>
|
|
36
34
|
|
|
37
35
|
#### Using Shared Integration
|
|
38
36
|
|
|
39
|
-
|
|
37
|
+
When you need to route alert events to different collaboration spaces based on the alert event's Payload information, this method is preferred.
|
|
40
38
|
|
|
41
39
|
<details>
|
|
42
40
|
<summary>Expand</summary>
|
|
43
41
|
|
|
44
|
-
1.
|
|
45
|
-
2. Select **Standard Alert** integration:
|
|
46
|
-
- **Integration Name**: Define a name for
|
|
47
|
-
3. Click **Save** and copy the newly generated **
|
|
48
|
-
4. Click **Create Route** to configure routing rules for the integration. You can match different alerts to different
|
|
42
|
+
1. Enter the Flashduty console, select **Integration Center => Alert Events** to enter the integration selection page
|
|
43
|
+
2. Select **Standard Alert Event** integration:
|
|
44
|
+
- **Integration Name**: Define a name for the current integration
|
|
45
|
+
3. Click **Save** and copy the newly generated **Push URL** on the current page for later use
|
|
46
|
+
4. Click **Create Route** to configure routing rules for the integration. You can match different alerts to different collaboration spaces based on conditions, or set a default collaboration space as a fallback, and adjust as needed later
|
|
49
47
|
5. Complete
|
|
50
48
|
|
|
51
49
|
</details>
|
|
52
|
-
</div>
|
|
53
50
|
|
|
54
51
|
## I. Request Description
|
|
52
|
+
---
|
|
55
53
|
|
|
56
54
|
### Request Method
|
|
57
55
|
|
|
56
|
+
<div class="md-block">
|
|
57
|
+
|
|
58
58
|
POST, Content-Type:"application/json"
|
|
59
59
|
|
|
60
|
+
</div>
|
|
61
|
+
|
|
60
62
|
### Request Parameters:
|
|
61
63
|
|
|
62
|
-
|
|
64
|
+
<div class="md-block">
|
|
63
65
|
|
|
64
|
-
|
|
66
|
+
#### Headers:
|
|
67
|
+
Field|Required|Type|Description
|
|
68
|
+
:-:|:-:|:-:|:---
|
|
69
|
+
| Content-Type | Yes | string | Fixed value: \`application/json\`
|
|
65
70
|
|
|
66
|
-
|
|
67
|
-
|
|
|
68
|
-
|
|
69
|
-
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
| labels | No | map | Alert label collection, key is the label name, value is the label value. Labels are event descriptions, crucial for subsequent correlation and noise reduction. 1. Label keys and values are case-sensitive strings. 2. Label keys should not exceed 128 characters. 3. Maximum 50 labels allowed. \`Label content reference\` [Best Practices](#Best-Practices) |
|
|
71
|
+
#### Query Strings:
|
|
72
|
+
Field|Required|Type|Description
|
|
73
|
+
:-:|:-:|:-:|:---
|
|
74
|
+
| integration_key | Yes | string | Integration key for access control. Obtained after adding integration.
|
|
75
|
+
|
|
76
|
+
#### Payload:
|
|
73
77
|
|
|
78
|
+
Field|Required|Type|Description
|
|
79
|
+
:-:|:-:|:-:|:---
|
|
80
|
+
| title_rule | Yes | string | Alert title, no more than \`512\` characters, will be truncated if exceeded.<br><br>Supports dynamic title generation based on alert content, see [Customizing Incidents](https://docs.flashcat.cloud/en/flashduty/customize-incident-attrs) for generation rules.
|
|
81
|
+
| event_status | Yes | string | Alert status.<br><br>Enumerated values (case-sensitive): *Critical*, *Warning*, *Info*, *Ok*.<br><br>When specified as Ok, it means automatic recovery of the alert.
|
|
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
|
+
| description | No | string | Alert description, no more than \`2048\` characters, will be truncated if exceeded.
|
|
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
|
+
|
|
74
86
|
</div>
|
|
75
87
|
|
|
76
88
|
### Response
|
|
77
89
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
Parameter|Required|Type|Description
|
|
83
|
-
----------|---|---|---
|
|
84
|
-
request_id|Yes|string|Request trace id for issue tracking
|
|
90
|
+
Field Name|Required|Type|Description
|
|
91
|
+
:-:|:-:|:-:|:---
|
|
92
|
+
request_id|Yes|string|Request ID for trace tracking
|
|
85
93
|
error|No|[Error](#Error)|Error description, returned only when an error occurs
|
|
94
|
+
data|No|[Data](#Data)|Report information
|
|
95
|
+
|
|
96
|
+
<span id="Data"></span>
|
|
97
|
+
Data:
|
|
98
|
+
|
|
99
|
+
| Field Name | Required | Type | Description |
|
|
100
|
+
:-:|:-:|:-:|:---
|
|
101
|
+
| alert_key | No | string | Alert identifier, can be used to report recovery events. If you specified an alert_key when reporting the event, this value remains unchanged. Otherwise, it's automatically generated by the system. |
|
|
86
102
|
|
|
87
103
|
<span id="Error"></span>
|
|
88
104
|
Error:
|
|
89
105
|
|
|
90
|
-
|
|
|
91
|
-
|
|
92
|
-
| code
|
|
93
|
-
| message
|
|
106
|
+
| Field Name | Required | Type | Description |
|
|
107
|
+
:-:|:-:|:-:|:---
|
|
108
|
+
| code | Yes | string | Error code, see [Code](#Code) for enumerated values |
|
|
109
|
+
| message | No | string | Error description |
|
|
94
110
|
|
|
95
111
|
<span id="Code"></span>
|
|
96
112
|
Code:
|
|
97
113
|
|
|
98
|
-
| Error Code
|
|
99
|
-
|
|
|
100
|
-
| InvalidParameter
|
|
101
|
-
| InvalidContentType
|
|
102
|
-
| MethodNotAllowed
|
|
103
|
-
| Unauthorized
|
|
104
|
-
| AccessDenied
|
|
105
|
-
| RequestTooFrequently | 429
|
|
106
|
-
| RouteNotFound
|
|
107
|
-
| ResourceNotFound
|
|
108
|
-
|
|
|
114
|
+
| Error Code | HTTP Status | Description |
|
|
115
|
+
| :-:|:-:| ------------------ |
|
|
116
|
+
| InvalidParameter | 400 | Parameter error |
|
|
117
|
+
| InvalidContentType | 400 | Content-Type not supported |
|
|
118
|
+
| MethodNotAllowed | 400 | HTTP Method not supported |
|
|
119
|
+
| Unauthorized | 401 | Login authentication failed |
|
|
120
|
+
| AccessDenied | 403 | Permission authentication failed |
|
|
121
|
+
| RequestTooFrequently | 429 | Request too frequent |
|
|
122
|
+
| RouteNotFound | 404 | Request Method+Path not matched |
|
|
123
|
+
| ResourceNotFound | 400 | Account hasn't purchased resources, please go to the cost center to place an order |
|
|
124
|
+
| NoLicense | 400 | Account has insufficient subscription licenses, please upgrade or purchase subscription in the cost center |
|
|
125
|
+
| InternalError | 500 | Internal or unknown error |
|
|
109
126
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
### Request Example
|
|
127
|
+
### II. Request Example
|
|
128
|
+
---
|
|
113
129
|
|
|
114
130
|
Request:
|
|
115
131
|
|
|
@@ -118,9 +134,7 @@ curl -X POST '{api_host}/event/push/alert/standard?integration_key={integration_
|
|
|
118
134
|
-H 'Content-Type: application/json' \\
|
|
119
135
|
-d '{
|
|
120
136
|
"event_status": "Warning",
|
|
121
|
-
"
|
|
122
|
-
"description": "cpu idle low than 20%",
|
|
123
|
-
"title_rule": "$cluster::$resource::$check",
|
|
137
|
+
"title_rule": "cpu idle low than 20%",
|
|
124
138
|
"labels": {
|
|
125
139
|
"service": "engine",
|
|
126
140
|
"cluster":"nj",
|
|
@@ -131,15 +145,18 @@ curl -X POST '{api_host}/event/push/alert/standard?integration_key={integration_
|
|
|
131
145
|
}' -v
|
|
132
146
|
\`\`\`
|
|
133
147
|
|
|
134
|
-
Successful
|
|
148
|
+
Successful Response:
|
|
135
149
|
|
|
136
150
|
\`\`\`
|
|
137
151
|
{
|
|
138
|
-
"request_id": "0ace00116215ab4ca0ec5244b8fc54b0"
|
|
152
|
+
"request_id": "0ace00116215ab4ca0ec5244b8fc54b0",
|
|
153
|
+
"data": {
|
|
154
|
+
"alert_key": "9qJ798NJoXS4UMVB5SHsNj"
|
|
155
|
+
}
|
|
139
156
|
}
|
|
140
157
|
\`\`\`
|
|
141
158
|
|
|
142
|
-
Failed
|
|
159
|
+
Failed Response:
|
|
143
160
|
|
|
144
161
|
\`\`\`
|
|
145
162
|
{
|
|
@@ -151,20 +168,49 @@ Failed response:
|
|
|
151
168
|
}
|
|
152
169
|
\`\`\`
|
|
153
170
|
|
|
154
|
-
<span id="
|
|
155
|
-
|
|
156
|
-
## II. Best Practices
|
|
171
|
+
## III. Best Practices <span id="best-practices"></span>
|
|
172
|
+
---
|
|
157
173
|
|
|
158
|
-
1. Send events to
|
|
174
|
+
1. Send events to Flashduty when alert status changes
|
|
159
175
|
2. When an alert recovers, send an event with status Ok to close the alert. Otherwise, the alert will remain open. If your alert system doesn't have recovery events, we recommend manually sending recovery events
|
|
160
|
-
3. Labels are event descriptions
|
|
161
|
-
- Alert source
|
|
162
|
-
- Alert ownership information
|
|
163
|
-
- Alert category information
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
176
|
+
3. Labels are event descriptions, and label content should be as rich as possible (specified when sending, or generated through enrichment rules), such as:
|
|
177
|
+
- Alert source, like host, cluster, check, or metric
|
|
178
|
+
- Alert ownership information, like team, owner
|
|
179
|
+
- Alert category information, like class (api, db, net)
|
|
180
|
+
|
|
181
|
+
## IV. FAQ
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
<details>
|
|
185
|
+
<summary>Why haven't I received alerts in Flashduty?</summary>
|
|
186
|
+
|
|
187
|
+
#### In Flashduty
|
|
188
|
+
|
|
189
|
+
1. Check if the integration shows **Latest Event Time**? If not, it means Flashduty hasn't received the push, prioritize checking your system.
|
|
190
|
+
2. If you're using **Shared Integration**, first confirm if you've configured **Routing Rules**. Without routing rules, the system will directly reject new pushes as there's no collaboration space to handle your alerts. In this case, simply configure routing rules to your desired space.
|
|
191
|
+
|
|
192
|
+
#### In Your System
|
|
193
|
+
|
|
194
|
+
1. Confirm that your request URL exactly matches the URL in the integration details.
|
|
195
|
+
2. Confirm that your service can access the external domain api.flashcat.cloud. If not, you need to enable external network access for the server or specifically for Flashduty's domain.
|
|
196
|
+
3. Print Flashduty service's response to check for clear information.
|
|
197
|
+
|
|
198
|
+
If you still can't find the root cause after these steps, please contact us with the **request_id** from the request response.
|
|
199
|
+
|
|
200
|
+
</details>
|
|
201
|
+
|
|
202
|
+
<details>
|
|
203
|
+
<summary>Why was the push request successful but no new alerts or incidents were generated?</summary>
|
|
204
|
+
|
|
205
|
+
Flashduty uses a 2-layer noise reduction mechanism:
|
|
206
|
+
|
|
207
|
+
1. First, it checks for duplicate alert events. If your pushed event is identical to a previously pushed event, the new event will be discarded.
|
|
208
|
+
2. If the new event's status and description match the status, title, and description of the last event of its corresponding alert, the new event will be discarded while updating the alert's attributes.
|
|
209
|
+
3. The new event might be discarded due to matching exclusion, discard, suppression, or silence rules.
|
|
210
|
+
4. When a new event triggers a new alert, the system enters the second layer of noise reduction check, determining if the new alert can be merged into an active incident. If possible, it will only merge into the existing incident without generating a new one.
|
|
211
|
+
|
|
212
|
+
For more information, please refer to [Alert Noise Reduction](https://docs.flashcat.cloud/en/flashduty/what-is-noise-reduction).
|
|
213
|
+
</details> `, n = `---
|
|
168
214
|
title: "Email Integration"
|
|
169
215
|
description: "Generate a unique email address in Flashduty to synchronize alert triggers and recoveries through email"
|
|
170
216
|
date: "2024-05-11T10:00:00+08:00"
|
|
@@ -605,7 +651,7 @@ Prometheus to Flashduty severity mapping:
|
|
|
605
651
|
|
|
606
652
|
|
|
607
653
|
|
|
608
|
-
`,
|
|
654
|
+
`, i = `---
|
|
609
655
|
title: "Grafana Integration"
|
|
610
656
|
description: "Sync Grafana alert events to Flashduty via webhook to achieve automated alert noise reduction."
|
|
611
657
|
date: "2024-05-11T10:00:00+08:00"
|
|
@@ -718,7 +764,7 @@ The system extracts the \`severity\`, \`priority\`, and \`level\` labels from al
|
|
|
718
764
|
| ok | Ok | Resolved |
|
|
719
765
|
|
|
720
766
|
</div>
|
|
721
|
-
`,
|
|
767
|
+
`, o = `---
|
|
722
768
|
title: "Zabbix Integration"
|
|
723
769
|
description: "Synchronize Zabbix alert events to Flashduty via webhook (supports Zabbix 3.x ~ 6.x versions, with different configuration requirements) to achieve automated alert noise reduction"
|
|
724
770
|
date: "2024-05-11T10:00:00+08:00"
|
|
@@ -781,7 +827,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
781
827
|
1. Media type is a transport channel used for sending notifications and alerts in Zabbix. Enter the terminal and download the complete configuration using the following command:
|
|
782
828
|
|
|
783
829
|
\`\`\`
|
|
784
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v7.yml
|
|
830
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v7.yml
|
|
785
831
|
|
|
786
832
|
\`\`\`
|
|
787
833
|
2. Log in to the Zabbix console, select \`Alert > Media Types\`, click the Import button in the top right corner, enter the editing page, select the configuration file downloaded above, and click Import to complete the import
|
|
@@ -855,10 +901,10 @@ Log in to the Zabbix console, select \`Monitoring > Problems\` to view the lates
|
|
|
855
901
|
|
|
856
902
|
\`\`\`
|
|
857
903
|
// 5.x version XML configuration:
|
|
858
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v5.xml
|
|
904
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v5.xml
|
|
859
905
|
|
|
860
906
|
// 6.x version YAML configuration:
|
|
861
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v6.yml
|
|
907
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v6.yml
|
|
862
908
|
\`\`\`
|
|
863
909
|
|
|
864
910
|
2. Log in to the Zabbix console, select \`Administration > Media Types\`, click the Import button in the top right corner, enter the editing page, select the configuration file downloaded above, and click Import to complete the import
|
|
@@ -945,7 +991,7 @@ Log in to the Zabbix console, select \`Monitoring > Problems\` to view the lates
|
|
|
945
991
|
cd /usr/lib/zabbix/alertscripts
|
|
946
992
|
|
|
947
993
|
#2. Download script
|
|
948
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/send-to-flashduty.sh
|
|
994
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/send-to-flashduty.sh
|
|
949
995
|
|
|
950
996
|
#3. Change script to executable status
|
|
951
997
|
chmod +x send-to-flashduty.sh
|
|
@@ -4005,7 +4051,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4005
4051
|
|Notice|Info|Info|
|
|
4006
4052
|
|
|
4007
4053
|
</div>
|
|
4008
|
-
`,
|
|
4054
|
+
`, N = `---
|
|
4009
4055
|
title: "Volcengine Log Service (TLS) Alert Events"
|
|
4010
4056
|
description: "Sync Volcengine Log Service (TLS) alert events to Flashduty via webhook for automated alert noise reduction"
|
|
4011
4057
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -4142,7 +4188,7 @@ Choose this method when you need to route alerts to different channels based on
|
|
|
4142
4188
|
</div>
|
|
4143
4189
|
|
|
4144
4190
|
</div>
|
|
4145
|
-
`,
|
|
4191
|
+
`, P = `---
|
|
4146
4192
|
title: "OpManager Alert Events"
|
|
4147
4193
|
description: "Sync OpManager alert events to Flashduty via webhook for automated alert noise reduction"
|
|
4148
4194
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -6486,7 +6532,7 @@ export {
|
|
|
6486
6532
|
L as Dynatrace,
|
|
6487
6533
|
n as Email,
|
|
6488
6534
|
x as GoogleCM,
|
|
6489
|
-
|
|
6535
|
+
i as Grafana,
|
|
6490
6536
|
k as Graylog,
|
|
6491
6537
|
G as Guance,
|
|
6492
6538
|
g as HuaWeiCES,
|
|
@@ -6500,7 +6546,7 @@ export {
|
|
|
6500
6546
|
V as MicrosoftTeams,
|
|
6501
6547
|
t as N9e,
|
|
6502
6548
|
C as OceanBase,
|
|
6503
|
-
|
|
6549
|
+
P as OpManager,
|
|
6504
6550
|
m as OpenFalcon,
|
|
6505
6551
|
f as PagerDuty,
|
|
6506
6552
|
a as Prometheus,
|
|
@@ -6518,8 +6564,8 @@ export {
|
|
|
6518
6564
|
s as UptimeKuma,
|
|
6519
6565
|
D as VolcEngineEvent,
|
|
6520
6566
|
E as VolcEngineMetric,
|
|
6521
|
-
|
|
6567
|
+
N as VolcEngineTLS,
|
|
6522
6568
|
H as Wecom,
|
|
6523
|
-
|
|
6569
|
+
o as Zabbix,
|
|
6524
6570
|
Y as Zilliz
|
|
6525
6571
|
};
|
package/dist/zh.cjs
CHANGED
|
@@ -67,55 +67,67 @@ POST, Content-Type:"application/json"
|
|
|
67
67
|
|
|
68
68
|
<div class="md-block">
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
#### Headers:
|
|
71
|
+
字段|必含|类型|释义
|
|
72
|
+
:-:|:-:|:-:|:---
|
|
73
|
+
| Content-Type | 是 | string | 固定值:\`application/json\`。
|
|
71
74
|
|
|
72
|
-
|
|
75
|
+
#### Query Strings:
|
|
76
|
+
字段|必含|类型|释义
|
|
77
|
+
:-:|:-:|:-:|:---
|
|
78
|
+
| integration_key | 是 | string | 集成秘钥,用于访问控制。添加集成后获得。
|
|
73
79
|
|
|
74
|
-
|
|
75
|
-
| :----------: | :--: | :----: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
76
|
-
| event_status | 是 | string | 告警 event 状态,枚举值:Critical:严重,Warning:警告,Info:提醒,Ok:恢复 |
|
|
77
|
-
| alert_key | 是 | string | event 合并依据,不同告警 event 根据该字段和时间窗口合并为一个 alert |
|
|
78
|
-
| title_rule | 否 | string | 告警 title 生成规则,形如\`$a::b::$c\`,用\`::\`分割子串,每一个子串可以是一个固定字符串或用\`$\`作为前缀的变量,变量内容将从 labels 参数中提取,提取不到将会报错。缺省时,系统将提取 labels 字段中的 service、cluster、resource 和 check 等标签生成规则 |
|
|
79
|
-
| description | 否 | string | 告警描述,不超过 2048 个字符 |
|
|
80
|
-
| labels | 否 | map | 告警标签集合,key 为标签名称,value 为标签值。标签是事件的描述,用于后续的关联和降噪,非常重要。1. 标签的 key 和 value 均为 string 类型,区分大小写。2. 标签的 key 不要超过 128 个字符。3. 至多传入 50 个标签。\`标签内容参考\`[最佳实践](#最佳实践) |
|
|
80
|
+
#### Payload:
|
|
81
81
|
|
|
82
|
+
字段|必含|类型|释义
|
|
83
|
+
:-:|:-:|:-:|:---
|
|
84
|
+
| title_rule | 是 | string | 告警标题,不超过\`512\`个字符,超出后将自动截断。<br><br>支持根据告警内容动态生成标题,生成规则请参考 [定制故障标题](https://docs.flashcat.cloud/zh/flashduty/customize-incident-attrs)。
|
|
85
|
+
| event_status | 是 | string | 告警状态。<br><br>枚举值(\`首字母大写\`):*Critical*:严重,*Warning*:警告,*Info*:提醒,*Ok*:恢复。<br><br>当指定为Ok时,意味着对告警进行自动恢复。
|
|
86
|
+
| alert_key | 否 | string | 告警标识,用于对已经存在的告警进行更新或自动恢复。<br><br>您可以自定义此值,但不可超过\`255\`个字符。您也可以依赖系统自动生成,该值会在响应中返回。<br><br>如果您上报的是恢复事件,则此值必须存在。
|
|
87
|
+
| description | 否 | string | 告警描述,不超过\`2048\`个字符,超出后将自动截断。
|
|
88
|
+
| labels | 否 | map | 告警标签集合,key 为标签名称,value 为标签值:<br><br>1. 标签的 key 和 value 均为 string 类型,区分大小写。<br>2. 标签的 key 不要超过\`128\`个字符,遵循Prometheus标签命名规范。value 不超过\`2048\`个字符,超出后将自动截断。<br>3. 至多传入\`50\`个标签。\`标签内容参考\`[最佳实践](#最佳实践)。<br><br>示例:"resource": "171.26.23.22", "check": "api latency > 500ms"
|
|
89
|
+
|
|
82
90
|
</div>
|
|
83
91
|
|
|
84
92
|
### 请求响应
|
|
85
93
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
+
字段名称|必选|类型|描述
|
|
95
|
+
:-:|:-:|:-:|:---
|
|
96
|
+
request_id|是|string|请求 ID,用于链路追踪
|
|
97
|
+
error |否|[Error](#Error)|错误描述,仅当出现错误时返回
|
|
98
|
+
data |否|[Data](#Data)| 上报信息
|
|
99
|
+
|
|
100
|
+
<span id="Data"></span>
|
|
101
|
+
Data:
|
|
102
|
+
|
|
103
|
+
| 字段名称 | 必选 | 类型 | 描述 |
|
|
104
|
+
:-:|:-:|:-:|:---
|
|
105
|
+
| alert_key| 否 | string | 告警标识,可依据此值上报恢复事件。如果您上报事件时,已经指定了 alert_key,则此值不变。否则,系统自动生成。 |
|
|
94
106
|
|
|
95
107
|
<span id="Error"></span>
|
|
96
108
|
Error:
|
|
97
109
|
|
|
98
|
-
|
|
|
99
|
-
|
|
100
|
-
| code | 是 | string |
|
|
101
|
-
| message |
|
|
110
|
+
| 字段名称 | 必选 | 类型 | 描述 |
|
|
111
|
+
:-:|:-:|:-:|:---
|
|
112
|
+
| code | 是 | string | 错误码,枚举值参考 [Code](#Code) |
|
|
113
|
+
| message | 否 | string | 错误描述 |
|
|
102
114
|
|
|
103
115
|
<span id="Code"></span>
|
|
104
116
|
Code:
|
|
105
117
|
|
|
106
|
-
| 错误码 | HTTP Status | 描述
|
|
107
|
-
|
|
|
108
|
-
| InvalidParameter | 400 | 参数错误
|
|
109
|
-
| InvalidContentType | 400 | Conten-Type 不支持
|
|
110
|
-
| MethodNotAllowed | 400 |
|
|
111
|
-
| Unauthorized | 401 |
|
|
112
|
-
| AccessDenied | 403 |
|
|
113
|
-
| RequestTooFrequently | 429 | 请求过于频繁
|
|
114
|
-
| RouteNotFound | 404 | 请求 Method+Path 未匹配
|
|
115
|
-
| ResourceNotFound | 400 |
|
|
116
|
-
|
|
|
118
|
+
| 错误码 | HTTP Status | 描述 |
|
|
119
|
+
| :-:|:-:| ------------------ |
|
|
120
|
+
| InvalidParameter | 400 | 参数错误 |
|
|
121
|
+
| InvalidContentType | 400 | Conten-Type 不支持 |
|
|
122
|
+
| MethodNotAllowed | 400 | HTTP Method 不支持 |
|
|
123
|
+
| Unauthorized | 401 | 登录认证未通过 |
|
|
124
|
+
| AccessDenied | 403 | 权限认证未通过 |
|
|
125
|
+
| RequestTooFrequently | 429 | 请求过于频繁 |
|
|
126
|
+
| RouteNotFound | 404 | 请求 Method+Path 未匹配 |
|
|
127
|
+
| ResourceNotFound | 400 | 账户未购买资源,先前往费用中心线操作下单|
|
|
128
|
+
| NoLicense | 400 | 账户无充足订阅 License,先前往费用中心升级或购买订阅
|
|
129
|
+
| InternalError | 500 | 内部或未知错误 |
|
|
117
130
|
|
|
118
|
-
</div>
|
|
119
131
|
|
|
120
132
|
### 二、请求示例
|
|
121
133
|
---
|
|
@@ -127,9 +139,7 @@ curl -X POST '{api_host}/event/push/alert/standard?integration_key={integration_
|
|
|
127
139
|
-H 'Content-Type: application/json' \\
|
|
128
140
|
-d '{
|
|
129
141
|
"event_status": "Warning",
|
|
130
|
-
"
|
|
131
|
-
"description": "cpu idle low than 20%",
|
|
132
|
-
"title_rule": "$cluster::$resource::$check",
|
|
142
|
+
"title_rule": "cpu idle low than 20%",
|
|
133
143
|
"labels": {
|
|
134
144
|
"service": "engine",
|
|
135
145
|
"cluster":"nj",
|
|
@@ -145,7 +155,10 @@ curl -X POST '{api_host}/event/push/alert/standard?integration_key={integration_
|
|
|
145
155
|
|
|
146
156
|
\`\`\`
|
|
147
157
|
{
|
|
148
|
-
"request_id": "0ace00116215ab4ca0ec5244b8fc54b0"
|
|
158
|
+
"request_id": "0ace00116215ab4ca0ec5244b8fc54b0",
|
|
159
|
+
"data": {
|
|
160
|
+
"alert_key": "9qJ798NJoXS4UMVB5SHsNj"
|
|
161
|
+
}
|
|
149
162
|
}
|
|
150
163
|
\`\`\`
|
|
151
164
|
|
|
@@ -193,7 +206,18 @@ curl -X POST '{api_host}/event/push/alert/standard?integration_key={integration_
|
|
|
193
206
|
|
|
194
207
|
</details>
|
|
195
208
|
|
|
209
|
+
<details>
|
|
210
|
+
<summary>为什么推送请求成功?但是没有看到新告警或故障产生?</summary>
|
|
211
|
+
|
|
212
|
+
Flashduty 使用2层降噪机制:
|
|
213
|
+
|
|
214
|
+
1. 首先对告警event进行去重检查,如果您推送的event和之前推送的event内容完全一致,则新的event将被直接丢弃。
|
|
215
|
+
2. 如果新的event的状态和描述和其对应的告警的上一条event的状态、标题、描述均一致,则新的event将被直接丢弃,同时更新归属告警属性。
|
|
216
|
+
3. 新的event可能由于匹配到排除、丢弃、抑制或静默规则,而被丢弃。
|
|
217
|
+
4. 当新的event触发了新告警,则系统会进入第二层降噪检查,判断新告警是否可以被合并到某个活跃的故障中,如果可以,则只会并入已有的故障,而不会产生新故障。
|
|
196
218
|
|
|
219
|
+
更多内容请参考 [告警降噪](https://docs.flashcat.cloud/zh/flashduty/what-is-noise-reduction)。
|
|
220
|
+
</details>
|
|
197
221
|
|
|
198
222
|
`,t=`---
|
|
199
223
|
title: "邮件Email集成"
|
|
@@ -818,7 +842,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/zabbix-integration-guide"
|
|
|
818
842
|
1. media type 是 Zabbix 中用于发送通知和告警的传输通道。进入终端,通过以下命令,下载完整配置
|
|
819
843
|
|
|
820
844
|
\`\`\`
|
|
821
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v7.yml
|
|
845
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v7.yml
|
|
822
846
|
|
|
823
847
|
\`\`\`
|
|
824
848
|
2. 登录 Zabbix 控制台,选择 \`Alert > Media Types\`,点击右上角 Import 按钮,进入编辑页面,选择上边下载的配置文件,点击 Import 按钮完成导入
|
|
@@ -907,10 +931,10 @@ media type 必须关联至某个 user 才能发送事件。user 至少拥有对
|
|
|
907
931
|
|
|
908
932
|
\`\`\`
|
|
909
933
|
// 5.x版本 XML配置:
|
|
910
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v5.xml
|
|
934
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v5.xml
|
|
911
935
|
|
|
912
936
|
// 6.x 版本 YAML 配置:
|
|
913
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v6.yml
|
|
937
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v6.yml
|
|
914
938
|
\`\`\`
|
|
915
939
|
|
|
916
940
|
2. 登录 Zabbix 控制台,选择 \`Administration > Media Types\`,点击右上角 Import 按钮,进入编辑页面,选择上边下载的配置文件,点击 Import 按钮完成导入
|
|
@@ -1015,7 +1039,7 @@ media type 必须关联至某个 user 才能发送事件。user 至少拥有对
|
|
|
1015
1039
|
cd /usr/lib/zabbix/alertscripts
|
|
1016
1040
|
|
|
1017
1041
|
#2. 下载脚本
|
|
1018
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/send-to-flashduty.sh
|
|
1042
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/send-to-flashduty.sh
|
|
1019
1043
|
|
|
1020
1044
|
#3. 更改脚本为可执行状态
|
|
1021
1045
|
chmod +x send-to-flashduty.sh
|
|
@@ -4100,7 +4124,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/solarwinds-integration-guide"
|
|
|
4100
4124
|
|Info|Info|提醒|
|
|
4101
4125
|
|
|
4102
4126
|
</div>
|
|
4103
|
-
|
|
4127
|
+
`,E=`---
|
|
4104
4128
|
title: "火山引擎云监控告警事件"
|
|
4105
4129
|
description: "通过 webhook 的方式同步火山引擎云监控告警事件到 Flashduty,实现告警事件自动化降噪处理"
|
|
4106
4130
|
date: "2024-08-20T10:00:00+08:00"
|
|
@@ -4191,7 +4215,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/volcengine-metric-integration-gui
|
|
|
4191
4215
|
|通知|Info|提醒|
|
|
4192
4216
|
|
|
4193
4217
|
</div>
|
|
4194
|
-
`,
|
|
4218
|
+
`,N=`---
|
|
4195
4219
|
title: "火山引擎云监控事件中心告警事件"
|
|
4196
4220
|
description: "通过 webhook 的方式同步火山引擎云监控事件中心告警事件到 Flashduty,实现告警事件自动化降噪处理"
|
|
4197
4221
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -4280,7 +4304,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/volcengine-event-integration-guid
|
|
|
4280
4304
|
|通知|Info|提醒|
|
|
4281
4305
|
|
|
4282
4306
|
</div>
|
|
4283
|
-
|
|
4307
|
+
`,$=`---
|
|
4284
4308
|
title: "火山引擎日志服务 TLS 告警事件"
|
|
4285
4309
|
description: "通过 webhook 的方式同步火山引擎日志服务 TLS 告警事件到 Flashduty,实现告警事件自动化降噪处理"
|
|
4286
4310
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -6971,4 +6995,4 @@ CloseTime | int64 | 否 | 关闭时间,EndTime 为告警恢复时间,CloseTi
|
|
|
6971
6995
|
<img src="https://download.flashcat.cloud/flashduty/changelog/20230720/email_render.png" alt="drawing" style="display: block; margin: 0 auto;" width="500"/>
|
|
6972
6996
|
|
|
6973
6997
|
|
|
6974
|
-
`;exports.AWSCW=u;exports.AWSEventBridge=S;exports.AlertWebhook=K;exports.AliyunARMS=d;exports.AliyunCm=r;exports.AliyunCmEvent=o;exports.AliyunSLS=c;exports.AppDynamics=P;exports.AzureMonitor=h;exports.BaiDuBCM=m;exports.CustomAction=X;exports.CustomAlert=n;exports.CustomChange=H;exports.Dingtalk=B;exports.Dynatrace=A;exports.Email=t;exports.GoogleCM=I;exports.Grafana=i;exports.Graylog=F;exports.Guance=j;exports.HuaWeiCES=p;exports.HuaweiyunLTS=C;exports.IncidentWebhook=J;exports.InfluxDB=g;exports.Jiankongbao=L;exports.Jira=O;exports.Lark=q;exports.Meraki=R;exports.MicrosoftTeams=Z;exports.N9e=e;exports.OceanBase=k;exports.OpManager=W;exports.OpenFalcon=y;exports.PagerDuty=_;exports.Prometheus=a;exports.Sentry=T;exports.Skywalking=x;exports.Slack=V;exports.SolarWinds=M;exports.Splunk=D;exports.StateCloud=z;exports.Templates=Q;exports.TencentBK=f;exports.TencentCLS=b;exports.TencentCm=v;exports.TencentEb=w;exports.UptimeKuma=l;exports.VolcEngineEvent=
|
|
6998
|
+
`;exports.AWSCW=u;exports.AWSEventBridge=S;exports.AlertWebhook=K;exports.AliyunARMS=d;exports.AliyunCm=r;exports.AliyunCmEvent=o;exports.AliyunSLS=c;exports.AppDynamics=P;exports.AzureMonitor=h;exports.BaiDuBCM=m;exports.CustomAction=X;exports.CustomAlert=n;exports.CustomChange=H;exports.Dingtalk=B;exports.Dynatrace=A;exports.Email=t;exports.GoogleCM=I;exports.Grafana=i;exports.Graylog=F;exports.Guance=j;exports.HuaWeiCES=p;exports.HuaweiyunLTS=C;exports.IncidentWebhook=J;exports.InfluxDB=g;exports.Jiankongbao=L;exports.Jira=O;exports.Lark=q;exports.Meraki=R;exports.MicrosoftTeams=Z;exports.N9e=e;exports.OceanBase=k;exports.OpManager=W;exports.OpenFalcon=y;exports.PagerDuty=_;exports.Prometheus=a;exports.Sentry=T;exports.Skywalking=x;exports.Slack=V;exports.SolarWinds=M;exports.Splunk=D;exports.StateCloud=z;exports.Templates=Q;exports.TencentBK=f;exports.TencentCLS=b;exports.TencentCm=v;exports.TencentEb=w;exports.UptimeKuma=l;exports.VolcEngineEvent=N;exports.VolcEngineMetric=E;exports.VolcEngineTLS=$;exports.Wecom=G;exports.Zabbix=s;exports.Zilliz=U;
|
package/dist/zh.js
CHANGED
|
@@ -67,55 +67,67 @@ POST, Content-Type:"application/json"
|
|
|
67
67
|
|
|
68
68
|
<div class="md-block">
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
#### Headers:
|
|
71
|
+
字段|必含|类型|释义
|
|
72
|
+
:-:|:-:|:-:|:---
|
|
73
|
+
| Content-Type | 是 | string | 固定值:\`application/json\`。
|
|
71
74
|
|
|
72
|
-
|
|
75
|
+
#### Query Strings:
|
|
76
|
+
字段|必含|类型|释义
|
|
77
|
+
:-:|:-:|:-:|:---
|
|
78
|
+
| integration_key | 是 | string | 集成秘钥,用于访问控制。添加集成后获得。
|
|
73
79
|
|
|
74
|
-
|
|
75
|
-
| :----------: | :--: | :----: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
76
|
-
| event_status | 是 | string | 告警 event 状态,枚举值:Critical:严重,Warning:警告,Info:提醒,Ok:恢复 |
|
|
77
|
-
| alert_key | 是 | string | event 合并依据,不同告警 event 根据该字段和时间窗口合并为一个 alert |
|
|
78
|
-
| title_rule | 否 | string | 告警 title 生成规则,形如\`$a::b::$c\`,用\`::\`分割子串,每一个子串可以是一个固定字符串或用\`$\`作为前缀的变量,变量内容将从 labels 参数中提取,提取不到将会报错。缺省时,系统将提取 labels 字段中的 service、cluster、resource 和 check 等标签生成规则 |
|
|
79
|
-
| description | 否 | string | 告警描述,不超过 2048 个字符 |
|
|
80
|
-
| labels | 否 | map | 告警标签集合,key 为标签名称,value 为标签值。标签是事件的描述,用于后续的关联和降噪,非常重要。1. 标签的 key 和 value 均为 string 类型,区分大小写。2. 标签的 key 不要超过 128 个字符。3. 至多传入 50 个标签。\`标签内容参考\`[最佳实践](#最佳实践) |
|
|
80
|
+
#### Payload:
|
|
81
81
|
|
|
82
|
+
字段|必含|类型|释义
|
|
83
|
+
:-:|:-:|:-:|:---
|
|
84
|
+
| title_rule | 是 | string | 告警标题,不超过\`512\`个字符,超出后将自动截断。<br><br>支持根据告警内容动态生成标题,生成规则请参考 [定制故障标题](https://docs.flashcat.cloud/zh/flashduty/customize-incident-attrs)。
|
|
85
|
+
| event_status | 是 | string | 告警状态。<br><br>枚举值(\`首字母大写\`):*Critical*:严重,*Warning*:警告,*Info*:提醒,*Ok*:恢复。<br><br>当指定为Ok时,意味着对告警进行自动恢复。
|
|
86
|
+
| alert_key | 否 | string | 告警标识,用于对已经存在的告警进行更新或自动恢复。<br><br>您可以自定义此值,但不可超过\`255\`个字符。您也可以依赖系统自动生成,该值会在响应中返回。<br><br>如果您上报的是恢复事件,则此值必须存在。
|
|
87
|
+
| description | 否 | string | 告警描述,不超过\`2048\`个字符,超出后将自动截断。
|
|
88
|
+
| labels | 否 | map | 告警标签集合,key 为标签名称,value 为标签值:<br><br>1. 标签的 key 和 value 均为 string 类型,区分大小写。<br>2. 标签的 key 不要超过\`128\`个字符,遵循Prometheus标签命名规范。value 不超过\`2048\`个字符,超出后将自动截断。<br>3. 至多传入\`50\`个标签。\`标签内容参考\`[最佳实践](#最佳实践)。<br><br>示例:"resource": "171.26.23.22", "check": "api latency > 500ms"
|
|
89
|
+
|
|
82
90
|
</div>
|
|
83
91
|
|
|
84
92
|
### 请求响应
|
|
85
93
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
+
字段名称|必选|类型|描述
|
|
95
|
+
:-:|:-:|:-:|:---
|
|
96
|
+
request_id|是|string|请求 ID,用于链路追踪
|
|
97
|
+
error |否|[Error](#Error)|错误描述,仅当出现错误时返回
|
|
98
|
+
data |否|[Data](#Data)| 上报信息
|
|
99
|
+
|
|
100
|
+
<span id="Data"></span>
|
|
101
|
+
Data:
|
|
102
|
+
|
|
103
|
+
| 字段名称 | 必选 | 类型 | 描述 |
|
|
104
|
+
:-:|:-:|:-:|:---
|
|
105
|
+
| alert_key| 否 | string | 告警标识,可依据此值上报恢复事件。如果您上报事件时,已经指定了 alert_key,则此值不变。否则,系统自动生成。 |
|
|
94
106
|
|
|
95
107
|
<span id="Error"></span>
|
|
96
108
|
Error:
|
|
97
109
|
|
|
98
|
-
|
|
|
99
|
-
|
|
100
|
-
| code | 是 | string |
|
|
101
|
-
| message |
|
|
110
|
+
| 字段名称 | 必选 | 类型 | 描述 |
|
|
111
|
+
:-:|:-:|:-:|:---
|
|
112
|
+
| code | 是 | string | 错误码,枚举值参考 [Code](#Code) |
|
|
113
|
+
| message | 否 | string | 错误描述 |
|
|
102
114
|
|
|
103
115
|
<span id="Code"></span>
|
|
104
116
|
Code:
|
|
105
117
|
|
|
106
|
-
| 错误码 | HTTP Status | 描述
|
|
107
|
-
|
|
|
108
|
-
| InvalidParameter | 400 | 参数错误
|
|
109
|
-
| InvalidContentType | 400 | Conten-Type 不支持
|
|
110
|
-
| MethodNotAllowed | 400 |
|
|
111
|
-
| Unauthorized | 401 |
|
|
112
|
-
| AccessDenied | 403 |
|
|
113
|
-
| RequestTooFrequently | 429 | 请求过于频繁
|
|
114
|
-
| RouteNotFound | 404 | 请求 Method+Path 未匹配
|
|
115
|
-
| ResourceNotFound | 400 |
|
|
116
|
-
|
|
|
118
|
+
| 错误码 | HTTP Status | 描述 |
|
|
119
|
+
| :-:|:-:| ------------------ |
|
|
120
|
+
| InvalidParameter | 400 | 参数错误 |
|
|
121
|
+
| InvalidContentType | 400 | Conten-Type 不支持 |
|
|
122
|
+
| MethodNotAllowed | 400 | HTTP Method 不支持 |
|
|
123
|
+
| Unauthorized | 401 | 登录认证未通过 |
|
|
124
|
+
| AccessDenied | 403 | 权限认证未通过 |
|
|
125
|
+
| RequestTooFrequently | 429 | 请求过于频繁 |
|
|
126
|
+
| RouteNotFound | 404 | 请求 Method+Path 未匹配 |
|
|
127
|
+
| ResourceNotFound | 400 | 账户未购买资源,先前往费用中心线操作下单|
|
|
128
|
+
| NoLicense | 400 | 账户无充足订阅 License,先前往费用中心升级或购买订阅
|
|
129
|
+
| InternalError | 500 | 内部或未知错误 |
|
|
117
130
|
|
|
118
|
-
</div>
|
|
119
131
|
|
|
120
132
|
### 二、请求示例
|
|
121
133
|
---
|
|
@@ -127,9 +139,7 @@ curl -X POST '{api_host}/event/push/alert/standard?integration_key={integration_
|
|
|
127
139
|
-H 'Content-Type: application/json' \\
|
|
128
140
|
-d '{
|
|
129
141
|
"event_status": "Warning",
|
|
130
|
-
"
|
|
131
|
-
"description": "cpu idle low than 20%",
|
|
132
|
-
"title_rule": "$cluster::$resource::$check",
|
|
142
|
+
"title_rule": "cpu idle low than 20%",
|
|
133
143
|
"labels": {
|
|
134
144
|
"service": "engine",
|
|
135
145
|
"cluster":"nj",
|
|
@@ -145,7 +155,10 @@ curl -X POST '{api_host}/event/push/alert/standard?integration_key={integration_
|
|
|
145
155
|
|
|
146
156
|
\`\`\`
|
|
147
157
|
{
|
|
148
|
-
"request_id": "0ace00116215ab4ca0ec5244b8fc54b0"
|
|
158
|
+
"request_id": "0ace00116215ab4ca0ec5244b8fc54b0",
|
|
159
|
+
"data": {
|
|
160
|
+
"alert_key": "9qJ798NJoXS4UMVB5SHsNj"
|
|
161
|
+
}
|
|
149
162
|
}
|
|
150
163
|
\`\`\`
|
|
151
164
|
|
|
@@ -193,7 +206,18 @@ curl -X POST '{api_host}/event/push/alert/standard?integration_key={integration_
|
|
|
193
206
|
|
|
194
207
|
</details>
|
|
195
208
|
|
|
209
|
+
<details>
|
|
210
|
+
<summary>为什么推送请求成功?但是没有看到新告警或故障产生?</summary>
|
|
211
|
+
|
|
212
|
+
Flashduty 使用2层降噪机制:
|
|
213
|
+
|
|
214
|
+
1. 首先对告警event进行去重检查,如果您推送的event和之前推送的event内容完全一致,则新的event将被直接丢弃。
|
|
215
|
+
2. 如果新的event的状态和描述和其对应的告警的上一条event的状态、标题、描述均一致,则新的event将被直接丢弃,同时更新归属告警属性。
|
|
216
|
+
3. 新的event可能由于匹配到排除、丢弃、抑制或静默规则,而被丢弃。
|
|
217
|
+
4. 当新的event触发了新告警,则系统会进入第二层降噪检查,判断新告警是否可以被合并到某个活跃的故障中,如果可以,则只会并入已有的故障,而不会产生新故障。
|
|
196
218
|
|
|
219
|
+
更多内容请参考 [告警降噪](https://docs.flashcat.cloud/zh/flashduty/what-is-noise-reduction)。
|
|
220
|
+
</details>
|
|
197
221
|
|
|
198
222
|
`, t = `---
|
|
199
223
|
title: "邮件Email集成"
|
|
@@ -818,7 +842,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/zabbix-integration-guide"
|
|
|
818
842
|
1. media type 是 Zabbix 中用于发送通知和告警的传输通道。进入终端,通过以下命令,下载完整配置
|
|
819
843
|
|
|
820
844
|
\`\`\`
|
|
821
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v7.yml
|
|
845
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v7.yml
|
|
822
846
|
|
|
823
847
|
\`\`\`
|
|
824
848
|
2. 登录 Zabbix 控制台,选择 \`Alert > Media Types\`,点击右上角 Import 按钮,进入编辑页面,选择上边下载的配置文件,点击 Import 按钮完成导入
|
|
@@ -907,10 +931,10 @@ media type 必须关联至某个 user 才能发送事件。user 至少拥有对
|
|
|
907
931
|
|
|
908
932
|
\`\`\`
|
|
909
933
|
// 5.x版本 XML配置:
|
|
910
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v5.xml
|
|
934
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v5.xml
|
|
911
935
|
|
|
912
936
|
// 6.x 版本 YAML 配置:
|
|
913
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v6.yml
|
|
937
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/zbx_mediatype_flashcat_v6.yml
|
|
914
938
|
\`\`\`
|
|
915
939
|
|
|
916
940
|
2. 登录 Zabbix 控制台,选择 \`Administration > Media Types\`,点击右上角 Import 按钮,进入编辑页面,选择上边下载的配置文件,点击 Import 按钮完成导入
|
|
@@ -1015,7 +1039,7 @@ media type 必须关联至某个 user 才能发送事件。user 至少拥有对
|
|
|
1015
1039
|
cd /usr/lib/zabbix/alertscripts
|
|
1016
1040
|
|
|
1017
1041
|
#2. 下载脚本
|
|
1018
|
-
wget https://download.flashcat.cloud/flashduty/integration/zabbix/send-to-flashduty.sh
|
|
1042
|
+
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/zabbix/send-to-flashduty.sh
|
|
1019
1043
|
|
|
1020
1044
|
#3. 更改脚本为可执行状态
|
|
1021
1045
|
chmod +x send-to-flashduty.sh
|
|
@@ -4100,7 +4124,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/solarwinds-integration-guide"
|
|
|
4100
4124
|
|Info|Info|提醒|
|
|
4101
4125
|
|
|
4102
4126
|
</div>
|
|
4103
|
-
`,
|
|
4127
|
+
`, E = `---
|
|
4104
4128
|
title: "火山引擎云监控告警事件"
|
|
4105
4129
|
description: "通过 webhook 的方式同步火山引擎云监控告警事件到 Flashduty,实现告警事件自动化降噪处理"
|
|
4106
4130
|
date: "2024-08-20T10:00:00+08:00"
|
|
@@ -4191,7 +4215,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/volcengine-metric-integration-gui
|
|
|
4191
4215
|
|通知|Info|提醒|
|
|
4192
4216
|
|
|
4193
4217
|
</div>
|
|
4194
|
-
`,
|
|
4218
|
+
`, N = `---
|
|
4195
4219
|
title: "火山引擎云监控事件中心告警事件"
|
|
4196
4220
|
description: "通过 webhook 的方式同步火山引擎云监控事件中心告警事件到 Flashduty,实现告警事件自动化降噪处理"
|
|
4197
4221
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -4280,7 +4304,7 @@ url: "https://docs.flashcat.cloud/zh/flashduty/volcengine-event-integration-guid
|
|
|
4280
4304
|
|通知|Info|提醒|
|
|
4281
4305
|
|
|
4282
4306
|
</div>
|
|
4283
|
-
`,
|
|
4307
|
+
`, $ = `---
|
|
4284
4308
|
title: "火山引擎日志服务 TLS 告警事件"
|
|
4285
4309
|
description: "通过 webhook 的方式同步火山引擎日志服务 TLS 告警事件到 Flashduty,实现告警事件自动化降噪处理"
|
|
4286
4310
|
date: "2024-07-05T10:00:00+08:00"
|
|
@@ -7020,9 +7044,9 @@ export {
|
|
|
7020
7044
|
v as TencentCm,
|
|
7021
7045
|
w as TencentEb,
|
|
7022
7046
|
l as UptimeKuma,
|
|
7023
|
-
|
|
7024
|
-
|
|
7025
|
-
|
|
7047
|
+
N as VolcEngineEvent,
|
|
7048
|
+
E as VolcEngineMetric,
|
|
7049
|
+
$ as VolcEngineTLS,
|
|
7026
7050
|
G as Wecom,
|
|
7027
7051
|
s as Zabbix,
|
|
7028
7052
|
U as Zilliz
|