更新时间:2024-11-13 GMT+08:00
分享

更新告警配置信息

功能介绍

更新用户配置信息,用户可以通过此接口更新是否接收某类告警,同时可以配置是手机短信还是电子邮件接收告警信息。

调用方法

请参见如何调用API

URI

POST /v2/{project_id}/warnalert/alertconfig/update

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目id

最小长度:32

最大长度:64

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

最小长度:32

最大长度:2097152

Content-Type

String

Content-Type请求头

缺省值:application/json;charset=utf8

最小长度:1

最大长度:255

表3 请求Body参数

参数

是否必选

参数类型

描述

display_name

String

告警群组描述。

最小长度:1

最大长度:255

topic_urn

String

告警群组的唯一标识。

最小长度:1

最大长度:255

warn_config

WarnConfig object

告警配置信息。

表4 WarnConfig

参数

是否必选

参数类型

描述

antiDDoS

Boolean

DDoS攻击

back_doors

Boolean

网页后门

bruce_force

Boolean

暴力破解(系统登录,FTP,DB)

high_privilege

Boolean

数据库进程权限过高

remote_login

Boolean

异地登录提醒

send_frequency

Integer

取值范围:

  • 0:表示每天一次

  • 1:表示半小时一次

对于HID必选。

waf

Boolean

保留字段

weak_password

Boolean

弱口令(系统,数据库)

响应参数

状态码: 200

表5 响应Body参数

参数

参数类型

描述

error_code

String

内部错误码

最小长度:1

最大长度:20

error_msg

String

内部错误描述

最小长度:1

最大长度:255

请求示例

设置消息通知的主题为“urn:smn:cn-north-7:2d2d90a56a3243bdb909f6a24a27be8d:cnad-test-intl”,并配置需要告警通知的攻击类型为DDoS攻击

POST https://{endpoint}/v2/{project_id}/warnalert/alertconfig/update

{
  "display_name" : "",
  "topic_urn" : "urn:smn:cn-north-7:2d2d90a56a3243bdb909f6a24a27be8d:cnad-test-intl",
  "warn_config" : {
    "antiDDoS" : true,
    "back_doors" : false,
    "bruce_force" : false,
    "high_privilege" : false,
    "remote_login" : false,
    "send_frequency" : 1,
    "waf" : false,
    "weak_password" : false
  }
}

响应示例

状态码: 200

请求已成功

{
  "error_code" : "10000000",
  "error_msg" : "Ok",
  "task_id" : ""
}

SDK代码示例

SDK代码示例如下。

设置消息通知的主题为“urn:smn:cn-north-7:2d2d90a56a3243bdb909f6a24a27be8d:cnad-test-intl”,并配置需要告警通知的攻击类型为DDoS攻击

 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
58
59
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.antiddos.v1.region.AntiDDoSRegion;
import com.huaweicloud.sdk.antiddos.v1.*;
import com.huaweicloud.sdk.antiddos.v1.model.*;


public class UpdateAlertConfigSolution {

    public static void main(String[] args) {
        // 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
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        AntiDDoSClient client = AntiDDoSClient.newBuilder()
                .withCredential(auth)
                .withRegion(AntiDDoSRegion.valueOf("cn-north-4"))
                .build();
        UpdateAlertConfigRequest request = new UpdateAlertConfigRequest();
        UpdateAlertConfigRequestBody body = new UpdateAlertConfigRequestBody();
        UpdateAlertConfigRequestBodyWarnConfig warnConfigbody = new UpdateAlertConfigRequestBodyWarnConfig();
        warnConfigbody.withAntiDDoS(true)
            .withBackDoors(false)
            .withBruceForce(false)
            .withHighPrivilege(false)
            .withRemoteLogin(false)
            .withSendFrequency(1)
            .withWaf(false)
            .withWeakPassword(false);
        body.withWarnConfig(warnConfigbody);
        body.withTopicUrn("urn:smn:cn-north-7:2d2d90a56a3243bdb909f6a24a27be8d:cnad-test-intl");
        body.withDisplayName("");
        request.withBody(body);
        try {
            UpdateAlertConfigResponse response = client.updateAlertConfig(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

设置消息通知的主题为“urn:smn:cn-north-7:2d2d90a56a3243bdb909f6a24a27be8d:cnad-test-intl”,并配置需要告警通知的攻击类型为DDoS攻击

 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
# coding: utf-8

from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkantiddos.v1.region.antiddos_region import AntiDDoSRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkantiddos.v1 import *

if __name__ == "__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")

    credentials = BasicCredentials(ak, sk) \

    client = AntiDDoSClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(AntiDDoSRegion.value_of("cn-north-4")) \
        .build()

    try:
        request = UpdateAlertConfigRequest()
        warnConfigbody = UpdateAlertConfigRequestBodyWarnConfig(
            anti_d_do_s=True,
            back_doors=False,
            bruce_force=False,
            high_privilege=False,
            remote_login=False,
            send_frequency=1,
            waf=False,
            weak_password=False
        )
        request.body = UpdateAlertConfigRequestBody(
            warn_config=warnConfigbody,
            topic_urn="urn:smn:cn-north-7:2d2d90a56a3243bdb909f6a24a27be8d:cnad-test-intl",
            display_name=""
        )
        response = client.update_alert_config(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

设置消息通知的主题为“urn:smn:cn-north-7:2d2d90a56a3243bdb909f6a24a27be8d:cnad-test-intl”,并配置需要告警通知的攻击类型为DDoS攻击

 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"
    antiddos "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/antiddos/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/antiddos/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/antiddos/v1/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 := antiddos.NewAntiDDoSClient(
        antiddos.AntiDDoSClientBuilder().
            WithRegion(region.ValueOf("cn-north-4")).
            WithCredential(auth).
            Build())

    request := &model.UpdateAlertConfigRequest{}
	backDoorsWarnConfig:= false
	bruceForceWarnConfig:= false
	highPrivilegeWarnConfig:= false
	remoteLoginWarnConfig:= false
	sendFrequencyWarnConfig:= int32(1)
	wafWarnConfig:= false
	weakPasswordWarnConfig:= false
	warnConfigbody := &model.UpdateAlertConfigRequestBodyWarnConfig{
		AntiDDoS: true,
		BackDoors: &backDoorsWarnConfig,
		BruceForce: &bruceForceWarnConfig,
		HighPrivilege: &highPrivilegeWarnConfig,
		RemoteLogin: &remoteLoginWarnConfig,
		SendFrequency: &sendFrequencyWarnConfig,
		Waf: &wafWarnConfig,
		WeakPassword: &weakPasswordWarnConfig,
	}
	request.Body = &model.UpdateAlertConfigRequestBody{
		WarnConfig: warnConfigbody,
		TopicUrn: "urn:smn:cn-north-7:2d2d90a56a3243bdb909f6a24a27be8d:cnad-test-intl",
		DisplayName: "",
	}
	response, err := client.UpdateAlertConfig(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

请求已成功

错误码

请参见错误码

相关文档