安全云脑 SECMASTER-模拟告警规则:Go

时间:2023-12-06 18:52:42

Go

模拟一条告警规则,告警规则所属的管道ID为ead2769b-afb0-45dd-b9fa-a2953e6ac82f,查询类型为SQL,严重程度为提示。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    secmaster "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v2"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v2/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := secmaster.NewSecMasterClient(
        secmaster.SecMasterClientBuilder().
            WithRegion(region.ValueOf("cn-north-4")).
            WithCredential(auth).
            Build())

    request := &model.CreateAlertRuleSimulationRequest{}
	modeTriggers:= model.GetAlertRuleTriggerModeEnum().COUNT
	operatorTriggers:= model.GetAlertRuleTriggerOperatorEnum().GT
	severityTriggers:= model.GetAlertRuleTriggerSeverityEnum().TIPS
	var listTriggersbody = []model.AlertRuleTrigger{
        {
            Mode: &modeTriggers,
            Operator: &operatorTriggers,
            Expression: "10",
            Severity: &severityTriggers,
        },
    }
	eventGroupingCreateAlertRuleSimulationRequestBody:= true
	queryTypeCreateAlertRuleSimulationRequestBody:= model.GetCreateAlertRuleSimulationRequestBodyQueryTypeEnum().SQL
	request.Body = &model.CreateAlertRuleSimulationRequestBody{
		Triggers: listTriggersbody,
		EventGrouping: &eventGroupingCreateAlertRuleSimulationRequestBody,
		To: int64(1665546370000),
		From: int64(1665221214000),
		QueryType: &queryTypeCreateAlertRuleSimulationRequestBody,
		Query: "* | select status, count(*) as count group by status",
		PipeId: "ead2769b-afb0-45dd-b9fa-a2953e6ac82f",
	}
	response, err := client.CreateAlertRuleSimulation(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}
support.huaweicloud.com/api-secmaster/CreateAlertRuleSimulation.html