更新时间:2025-08-20 GMT+08:00

创建日志接入

功能介绍

创建日志接入

调用方法

请参见如何调用API

URI

POST /v3/{project_id}/lts/access-config

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释:

项目ID,可以从调用API处获取,也可以从控制台获取。获取方式请参见:获取项目ID

约束限制:

不涉及。

取值范围:

不涉及。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释:

从IAM服务获取的用户Token,获取方式请参见:获取用户Token

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

Content-Type

String

参数解释:

用于定义消息体的格式,该字段填为:application/json;charset=utf8。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

表3 请求Body参数

参数

是否必选

参数类型

描述

access_config_name

String

参数解释:

日志接入配置名称。

取值范围:

不涉及。

access_config_type

String

参数解释:

日志接入配置类型。

取值范围:

  • AGENT:云主机ECS文本日志接入。

  • K8S_CCE:云容器引擎CCE应用日志接入。

access_config_detail

AccessConfigDeatilCreate object

参数解释:

日志接入配置的详细信息。

log_info

AccessConfigBaseLogInfoCreate object

参数解释:

日志接入配置的日志流详情。

host_group_info

AccessConfigHostGroupIdListCreate object

参数解释:

日志接入配置的主机组ID列表。

access_config_tag

Array of accessConfigTag objects

参数解释:

日志接入配置的标签信息。

binary_collect

Boolean

参数解释:

是否采集二进制数据。

取值范围:

  • true:采集二进制数据。

  • false:不采集二级制数据。

log_split

Boolean

参数解释:

是否拆分日志。

取值范围:

  • true:进行日志拆分。

  • false:不进行日志拆分。

cluster_id

String

参数解释:

CCE集群ID。

取值范围:

不涉及。

incremental_collect

Boolean

参数解释:

是否进行增量采集。

取值范围:

true:采集新增日志数据。

false:采集全量日志数据。

encoding_format

String

参数解释:

编码格式,默认UTF-8。

取值范围:

不涉及。

processor_type

String

参数解释:

ICAgent结构化解析类型。

取值范围:

  • SINGLE_LINE

  • MULTI_LINE

  • REGEX

  • MULTI_REGEX

  • SPLIT

  • JSON

  • NGINX

  • COMPOSE

  • ORC

demo_log

String

参数解释:

示例日志。

取值范围:

不涉及。

demo_fields

Array of DemoFieldAccess objects

参数解释:

示例日志解析字段。

processors

Array of Processor objects

参数解释:

ICAgent结构化解析器。

application_id

String

参数解释:

ServiceStage应用ID。

取值范围:

不涉及。

environment_id

String

参数解释:

ServiceStage环境ID。

取值范围:

不涉及。

component_id

Array of strings

参数解释:

ServiceStage组件ID列表。

access_config_type_source

String

参数解释:

日志接入自建软件来源。

取值范围:

  • ECS

  • CCE

  • BMS

  • K8S

  • ServiceStageHost

  • ServiceStage

recursive_depth

Integer

参数解释:

采集路径递归最大深度。

取值范围:

不涉及。

表4 AccessConfigDeatilCreate

参数

是否必选

参数类型

描述

paths

Array of strings

参数解释:

采集路径。

  • 路径必须以/或者字母:\开头。

  • 不能包含特殊字符<> ' | " 且不能只输入/。

  • 第一级目录不支持通配符*:不能以/** /*开头。

  • **只能出现一次``

  • CCE类型中容器路径和主机路径必填,标准输出不用。

black_paths

Array of strings

参数解释:

采集黑名单路径。

  • 路径必须以/或者字母:\开头

  • 不能包含特殊字符<> ' | " 且不能只输入/

  • 第一级目录不支持通配符*:不能以/** /*开头

  • **只能出现一次

format

AccessConfigFormatCreate object

参数解释:

日志格式相关信息。

windows_log_info

AccessConfigWindowsLogInfoCreate object

参数解释:

日志接入配置Windows事件日志相关信息。

stdout

Boolean

参数解释:

云容器引擎CCE应用日志接入时,是否开启采集容器标准输出。

取值范围:

  • true:开启采集容器标准输出。

  • false:不开启采集容器标准输出。

stderr

Boolean

参数解释:

云容器引擎CCE应用日志接入时,是否开启采集容器标准错误。

取值范围:

  • true:开启采集容器标准错误。

  • false:不开启采集容器标准错误。

pathType

String

参数解释:

数据源类型。仅云容器引擎CCE应用日志接入支持。

取值范围:

  • HOST_FILE:节点文件类型

  • CONTAINER_STDOUT:容器标准输出

  • CONTAINER_FILE:容器文件路径

  • K8S_EVENT:K8S事件

namespaceRegex

String

参数解释:

K8s Namespace正则匹配。通过Namespace名称指定采集的容器,支持正则匹配。采集名称符合正则规则的Namespace的日志,为空时采集所有Namespace的日志。

仅云容器引擎CCE应用日志接入支持。

取值范围:

不涉及。

podNameRegex

String

参数解释:

K8s Pod正则匹配。通过Pod名称指定待采集的容器,支持正则匹配。采集名称符合正则规则的Pod的日志,为空时采集所有Pod的日志。

仅云容器引擎CCE应用日志接入支持。

取值范围:

不涉及。

containerNameRegex

String

参数解释:

K8s容器名称正则匹配。通过容器名称指定待采集的容器(Kubernetes容器名称是定义在spec.containers中),支持正则匹配。采集名称符合正则规则的容器的日志,为空时采集所有容器的日志。

仅云容器引擎CCE应用日志接入支持。

取值范围:

不涉及。

includeLabels

Map<String,String>

参数解释:

容器Label白名单,云容器引擎CCE应用日志接入时,可通过容器Label白名单指定待采集的容器,格式为LabelKey/LabelValue键值对。最多支持创建30个。

  • LabelKey:必填项,不能以小数点开头,长度不能超过128个字符。

  • LabelValue:可以为空,长度不能超过512个字符。

若LabelValue为空,则容器 Label中包含LabelKey的容器都匹配;若LabelValue不为空,则容器 Label中包含LabelKey=LabelValue的容器才匹配;LabelKey需要全匹配,LabelValue支持正则匹配。

excludeLabels

Map<String,String>

参数解释:

容器Label黑名单,云容器引擎CCE应用日志接入时,可通过容器Label黑名单排除不采集的容器,格式为LabelKey/LabelValue键值对。最多支持创建30个。

  • LabelKey:必填项,不能以小数点开头,长度不能超过128个字符。

  • LabelValue:可以为空,长度不能超过512个字符。

若LabelValue为空,则容器 Label中包含LabelKey的容器都被排除;若LabelValue不为空,则容器 Label中包含LabelKey=LabelValue的容器才会被排除;LabelKey需要全匹配,LabelValue支持正则匹配。

includeEnvs

Map<String,String>

参数解释:

环境变量白名单,云容器引擎CCE应用日志接入时,可通过环境变量白名单指定待采集的容器,格式为LabelKey/LabelValue键值对。最多支持创建30个。

  • LabelKey:必填项,不能以小数点开头,长度不能超过128个字符。

  • LabelValue:可以为空,长度不能超过512个字符。

若LabelValue为空,则环境变量中包含LabelKey的容器都匹配;若LabelValue不为空,则环境变量中包含LabelKey=LabelValue的容器才匹配;LabelKey需要全匹配,LabelValue支持正则匹配。

excludeEnvs

Map<String,String>

参数解释:

环境变量黑名单,云容器引擎CCE应用日志接入时,可通过环境变量黑名单排除不采集的容器,格式为LabelKey/LabelValue键值对。最多支持创建30个。

  • LabelKey:必填项,不能以小数点开头,长度不能超过128个字符。

  • LabelValue:可以为空,长度不能超过512个字符。

若LabelValue为空,则环境变量中包含LabelKey的容器都被排除;若LabelValue不为空,则环境变量中包含LabelKey=LabelValue的容器才会被排除;LabelKey需要全匹配,LabelValue支持正则匹配。

logLabels

Map<String,String>

参数解释:

容器 Label日志标签,云容器引擎CCE应用日志接入时,可通过该参数在日志中新增容器Label相关字段。例如:设置LabelKey为app,设置LabelValue为app_alias,当容器中包含app=lts时,将在日志中添加内容{app_alias:lts}。

logEnvs

Map<String,String>

参数解释:

环境变量日志标签,云容器引擎CCE应用日志接入时,可通过该参数在日志中新增环境变量相关字段。例如:设置环境变量Key为app,设置环境变量Value为app_alias,当K8S中包含环境变量app=lts时,将在日志中添加的内容为{app_alias:lts}。

includeK8sLabels

Map<String,String>

参数解释:

K8s Label白名单,云容器引擎CCE应用日志接入时,可通过K8s Label白名单指定待采集的容器,格式为LabelKey/LabelValue键值对。最多支持创建30个。

  • LabelKey:必填项,不能以小数点开头,长度不能超过128个字符。

  • LabelValue:可以为空,长度不能超过512个字符。

若LabelValue为空,则K8s Label中包含LabelKey的容器都匹配;若LabelValue不为空,则K8s Label中包含LabelKey=LabelValue的容器才匹配;LabelKey需要全匹配,LabelValue支持正则匹配。

excludeK8sLabels

Map<String,String>

参数解释:

K8s Label黑名单,云容器引擎CCE应用日志接入时,可通过K8s Label黑名单排除不采集的容器,格式为LabelKey/LabelValue键值对。最多支持创建30个。

  • LabelKey:必填项,不能以小数点开头,长度不能超过128个字符。

  • LabelValue:可以为空,长度不能超过512个字符。

若LabelValue为空,则K8s Label中包含LabelKey的容器都被排除;若LabelValue不为空,则K8s Label中包含LabelKey=LabelValue的容器才会被排除;LabelKey需要全匹配,LabelValue支持正则匹配。

logK8s

Map<String,String>

参数解释:

K8s Label日志标签,云容器引擎CCE应用日志接入时,可通过该参数在日志中新增K8s Label相关字段。例如:设置LabelKey为app,设置LabelValue为app_alias,当容器中包含app=lts时,将在日志中添加内容{app_alias:lts}。

repeat_collect

Boolean

参数解释:

是否允许多次采集。

取值范围:

  • true:表示开启,同一主机下的同一日志文件支持被采集到多个日志流。

  • false:表示关闭,采集路径不能重复配置,即同一主机下的同一日志文件,即使跨日志流,也只能配置一次。

system_fields

Array of strings

参数解释:

系统内置字段。配置日志接入规则时,可以配置系统内置字段,上报日志后,每条日志数据的标签数据中将会有系统字段。若修改该字段,将覆盖原有配置。

  • 采集场景为主机文件的内置字段为:hostName、hostId、hostIP、pathFile、hostIPv6、category、collectTime、__host_group__

  • 采集场景为K8S集群容器文件的内置字段为:hostName、hostId、hostIP、pathFile、hostIPv6、clusterId、podName、appName、containerName、nameSpace、category、collectTime、__host_group__、serviceID、podIp、clusterName、workloadType、__image_name__

custom_key_value

Map<String,String>

参数解释:

自定义键值对,格式为Key/Value键值对。配置日志接入规则时,可以配置自定义键值对规则,上报日志后,每条日志数据的标签数据中将会有用户自定义的键值对字段。最多支持创建20个。若修改该字段,将覆盖原有配置。

  • Key:允许的字符有a-zA-Z0-9_-,长度不能超过128个字符。

  • Value:长度不能超过1024个字符。

includeLabelsLogical

String

参数解释:

容器 Label白名单生效逻辑,默认为OR。新增多条白名单时,支持选择AND或OR的关系,即全部满足或满足任意白名单就可以被匹配。

取值范围:

  • AND

  • OR

excludeLabelsLogical

String

参数解释:

容器 Label黑名单生效逻辑,默认为OR。新增多条黑名单时,支持选择AND或OR的关系,即全部满足或满足任意黑名单就可以被匹配。

取值范围:

  • AND

  • OR

includeK8sLabelsLogical

String

参数解释:

K8S Label白名单生效逻辑,默认为OR。新增多条白名单时,支持选择AND或OR的关系,即全部满足或满足任意白名单就可以被匹配。

取值范围:

  • AND

  • OR

excludeK8sLabelsLogical

String

参数解释:

K8S Label黑名单生效逻辑,默认为OR。新增多条黑名单时,支持选择AND或OR的关系,即全部满足或满足任意黑名单就可以被匹配。

取值范围:

  • AND

  • OR

includeEnvsLogical

String

参数解释:

环境变量白名单生效逻辑,默认为OR。新增多条白名单时,支持选择AND或OR的关系,即全部满足或满足任意白名单就可以被匹配。

取值范围:

  • AND

  • OR

excludeEnvsLogical

String

参数解释:

环境变量黑名单生效逻辑,默认为OR。新增多条黑名单时,支持选择AND或OR的关系,即全部满足或满足任意黑名单就可以被匹配。

取值范围:

  • AND

  • OR

表5 AccessConfigFormatCreate

参数

是否必选

参数类型

描述

single

AccessConfigFormatSingleCreate object

参数解释:

单行日志,每一行日志在LTS界面中都显示为一条单独的日志数据。

multi

AccessConfigFormatMutilCreate object

参数解释:

多行日志,日志在LTS界面中多行日志显示为一条日志。

表6 AccessConfigFormatSingleCreate

参数

是否必选

参数类型

描述

mode

String

参数解释:

单行日志采集模式。

取值范围:

  • system:系统时间。

  • wildcard:时间通配符。

value

String

参数解释:

日志时间。

  • 当mode为“system”时 ,value填入当前时间戳。

  • 当mode为“wildcard”时,value填入时间通配符。通过时间通配符匹配日志,每条日志的行首显示日志的打印时间,如果日志中的时间格式为2019-01-01 23:59:59,则时间通配符应该填写为YYYY-MM-DD hh:mm:ss;如果日志中的时间格式为19-1-1 23:59:59,则时间通配符应该填写为YY-M-D hh:mm:ss。

取值范围:

不涉及。

表7 AccessConfigFormatMutilCreate

参数

是否必选

参数类型

描述

mode

String

参数解释:

多行日志采集模式。

取值范围:

  • time:日志时间。

  • regular:正则模式。

value

String

参数解释:

日志时间。

  • 当mode为“system”时 ,value填入当前时间戳。

  • 当mode为“wildcard”时,value填入时间通配符。通过时间通配符匹配日志,每条日志的行首显示日志的打印时间,如果日志中的时间格式为2019-01-01 23:59:59,则时间通配符应该填写为YYYY-MM-DD hh:mm:ss;如果日志中的时间格式为19-1-1 23:59:59,则时间通配符应该填写为YY-M-D hh:mm:ss。

取值范围:

不涉及。

表8 AccessConfigWindowsLogInfoCreate

参数

是否必选

参数类型

描述

categorys

Array of strings

参数解释:

采集Windows事件日志类型。有以下四种类型:

  • Application:应用系统。

  • System:系统。

  • Security:安全。

  • Setup:启动。

time_offset

AccessConfigTimeOffset object

参数解释:

首次采集时间偏移量信息,用于修正时间偏差或计算相对时间。例如设置为7天,表示从采集开始时间前7天内的日志(7天前的日志被忽略),该时间仅在首次配置采集生效,确保不会重复采集。

event_level

Array of strings

参数解释:

事件等级,根据Windows事件等级过滤采集。仅支持Windows Vista及以上的操作系统。有以下五种等级:

  • information:提示。

  • warning:告警。

  • error:错误。

  • critical:关键。

  • verbose:冗长。

表9 AccessConfigTimeOffset

参数

是否必选

参数类型

描述

offset

Long

参数解释:

具体的偏移时间。

  • 当"unit"选择"day"时,offset取值范围为1~7天。

  • 当"unit"选择"hour"时,offset取值范围为1~168小时。

  • 当"unit"选择"sec"时,offset取值范围为1~604800秒。

取值范围:

不涉及。

unit

String

参数解释:

具体的偏移时间单位。

  • day :天。

  • hour:小时。

  • sec:秒。

取值范围:

不涉及。

表10 AccessConfigBaseLogInfoCreate

参数

是否必选

参数类型

描述

log_group_id

String

参数解释:

日志组ID。

取值范围:

不涉及。

log_stream_id

String

参数解释:

日志流ID。

取值范围:

不涉及。

表11 AccessConfigHostGroupIdListCreate

参数

是否必选

参数类型

描述

host_group_id_list

Array of strings

参数解释:

主机组ID列表。

表12 accessConfigTag

参数

是否必选

参数类型

描述

key

String

参数解释:

标签键。

约束限制:

  • 标签键名称不可重复。

  • 标签是以键值对(key-value)的形式表示,key和value为一一对应关系。

取值范围:

  • 标签键可以包含任意语种的字母、数字和空格,以及_.:=+-@字符,但首尾不能包含空格,且不能以_sys_开头。

  • 标签键长度不能超过128个字符。

默认取值:

不涉及。

value

String

参数解释:

标签值。

约束限制:

标签是以键值对(key-value)的形式表示,key和value为一一对应关系。

取值范围:

  • 标签值可以包含任意语种的字母、数字和空格,以及_.:=+-@字符。

  • 标签值长度不能超过255个字符。

默认取值:

不涉及。

表13 DemoFieldAccess

参数

是否必选

参数类型

描述

field_name

String

参数解释:

示例日志解析字段。

取值范围:

不涉及。

field_value

String

参数解释:

示例日志的字段的值。

取值范围:

不涉及。

表14 Processor

参数

是否必选

参数类型

描述

type

String

参数解释:

结构化解析类型,有以下七种:

  • processor_regex:正则解析。

  • processor_split_string:分词符。

  • processor_json:json解析类型。

  • processor_gotime:自定义时间类型。

  • processor_filter_regex:日志过滤。

  • processor_drop:删除字段类型。

  • processor_rename:修改字段类型。

取值范围:

不涉及。

detail

Detail object

参数解释:

结构化解析配置的相关信息。

表15 Detail

参数

是否必选

参数类型

描述

source_key

String

参数解释:

原始字段。日志结构化解析前,用于存放日志内容的原始字段,默认值为content。

取值范围:

不涉及。

regex

String

参数解释:

正则表达式。用于匹配日志的正则表达式。

取值范围:

不涉及。

keys

Array of strings

参数解释:

已提取字段名称。为提取的日志内容设置对应的字段名。

multi_line_regex

String

参数解释:

首行正则表达式。

取值范围:

不涉及。

keep_source

Boolean

参数解释:

是否上传原始日志。

取值范围:

true:保留原始日志。

false:不保留原始日志。

keep_source_if_parse_error

Boolean

参数解释:

是否上传解析失败日志。

取值范围:

true:上传解析失败日志。

false:不上传解析失败日志。

split_sep

String

参数解释:

分隔符。根据日志内容选择正确的分隔符,例如竖线(|)。

取值范围:

不涉及

split_type

String

参数解释:

分隔类型,支持char-单字符、special_char-不可见字符、string-字符串。

取值范围:

不涉及。

fields

Map<String,String>

参数解释:

待添加的字段名和字段值,格式为Key/Value键值对。支持添加多个。

drop_keys

Array of strings

参数解释:

丢弃的字段列表。

source_keys

Array of strings

参数解释:

待重命名的原始字段。

dest_keys

Array of strings

参数解释:

重命名后的字段。

expand_depth

Integer

参数解释:

json展开的深度。默认值为0,表示不限制。1表示当前层级,以此类推。

取值范围:

不涉及。

expand_connector

String

参数解释:

json展开时的连接符,默认值为英文符号点(.)。

取值范围:

不涉及。

source_format

String

参数解释:

原始时间的格式。

取值范围:

不涉及。

source_value

String

参数解释:

原始时间字段value。

取值范围:

不涉及。

set_time

Boolean

参数解释:

是否将解析后的时间设置为日志时间。

取值范围:

不涉及。

include

Map<String,String>

参数解释:

日志过滤白名单规则,格式为Key/Value键值对。Key为日志字段,key不可以重复,长度最大为256个字符。Value为匹配的正则表达式。

exclude

Map<String,String>

参数解释:

日志过滤黑名单规则,格式为Key/Value键值对。Key为日志字段,key不可以重复,长度最大为256个字符。Value为匹配的正则表达式。

响应参数

状态码:200

表16 响应Body参数

参数

参数类型

描述

access_config_id

String

参数解释:

日志接入配置ID。

取值范围:

不涉及。

access_config_name

String

参数解释:

日志接入配置名称。

取值范围:

不涉及。

access_config_type

String

参数解释:

日志接入配置类型。

取值范围:

  • AGENT:云主机ECS文本日志接入。

  • K8S_CCE:云容器引擎CCE应用日志接入。

create_time

Long

参数解释:

日志接入配置的创建时间。

取值范围:

不涉及。

access_config_detail

AccessConfigDeatilCreate object

参数解释:

日志接入配置的详细信息。

log_info

AccessConfigQueryLogInfo object

参数解释:

日志接入配置的日志流详情。

host_group_info

AccessConfigHostGroupIdList object

参数解释:

日志接入配置的主机组ID列表。

access_config_tag

Array of accessConfigTagResp objects

参数解释:

日志接入配置的标签信息。

log_split

Boolean

参数解释:

是否拆分日志。

取值范围:

  • true:进行日志拆分。

  • false:不进行日志拆分。

binary_collect

Boolean

参数解释:

是否采集二进制数据。

取值范围:

  • true:采集二进制数据。

  • false:不采集二级制数据。

cluster_id

String

参数解释:

CCE集群ID。

取值范围:

不涉及。

encoding_format

String

参数解释:

编码格式,默认UTF-8。

取值范围:

不涉及。

incremental_collect

Boolean

参数解释:

是否进行增量采集。

取值范围:

  • true:采集新增日志数据。

  • false:采集全量日志数据。

processor_type

String

参数解释:

ICAgent结构化解析类型。

取值范围:

  • SINGLE_LINE

  • MULTI_LINE

  • REGEX

  • MULTI_REGEX

  • SPLIT

  • JSON

  • NGINX

  • COMPOSE

  • ORC

demo_log

String

参数解释:

示例日志。

取值范围:

不涉及。

demo_fields

Array of DemoFieldAccess objects

参数解释:

示例日志解析字段。

processors

Array of Processor objects

参数解释:

ICAgent结构化解析器。

log_split_size

Integer

参数解释:

拆分日志大小。

取值范围:

不涉及。

application_id

String

参数解释:

ServiceStage应用ID。

取值范围:

不涉及。

environment_id

String

参数解释:

ServiceStage环境ID。

取值范围:

不涉及。

component_id

Array of strings

参数解释:

ServiceStage组件ID列表。

recursive_depth

Integer

参数解释:

采集路径递归最大深度。

取值范围:

不涉及。

access_config_type_source

String

参数解释:

日志接入自建软件来源。

取值范围:

  • ECS

  • CCE

  • BMS

  • K8S

  • ServiceStageHost

  • ServiceStage

表17 AccessConfigDeatilCreate

参数

参数类型

描述

paths

Array of strings

参数解释:

采集路径。

  • 路径必须以/或者字母:\开头。

  • 不能包含特殊字符<> ' | " 且不能只输入/。

  • 第一级目录不支持通配符*:不能以/** /*开头。

  • **只能出现一次``

  • CCE类型中容器路径和主机路径必填,标准输出不用。

black_paths

Array of strings

参数解释:

采集黑名单路径。

  • 路径必须以/或者字母:\开头

  • 不能包含特殊字符<> ' | " 且不能只输入/

  • 第一级目录不支持通配符*:不能以/** /*开头

  • **只能出现一次

format

AccessConfigFormatCreate object

参数解释:

日志格式相关信息。

windows_log_info

AccessConfigWindowsLogInfoCreate object

参数解释:

日志接入配置Windows事件日志相关信息。

stdout

Boolean

参数解释:

云容器引擎CCE应用日志接入时,是否开启采集容器标准输出。

取值范围:

  • true:开启采集容器标准输出。

  • false:不开启采集容器标准输出。

stderr

Boolean

参数解释:

云容器引擎CCE应用日志接入时,是否开启采集容器标准错误。

取值范围:

  • true:开启采集容器标准错误。

  • false:不开启采集容器标准错误。

pathType

String

参数解释:

数据源类型。仅云容器引擎CCE应用日志接入支持。

取值范围:

  • HOST_FILE:节点文件类型

  • CONTAINER_STDOUT:容器标准输出

  • CONTAINER_FILE:容器文件路径

  • K8S_EVENT:K8S事件

namespaceRegex

String

参数解释:

K8s Namespace正则匹配。通过Namespace名称指定采集的容器,支持正则匹配。采集名称符合正则规则的Namespace的日志,为空时采集所有Namespace的日志。

仅云容器引擎CCE应用日志接入支持。

取值范围:

不涉及。

podNameRegex

String

参数解释:

K8s Pod正则匹配。通过Pod名称指定待采集的容器,支持正则匹配。采集名称符合正则规则的Pod的日志,为空时采集所有Pod的日志。

仅云容器引擎CCE应用日志接入支持。

取值范围:

不涉及。

containerNameRegex

String

参数解释:

K8s容器名称正则匹配。通过容器名称指定待采集的容器(Kubernetes容器名称是定义在spec.containers中),支持正则匹配。采集名称符合正则规则的容器的日志,为空时采集所有容器的日志。

仅云容器引擎CCE应用日志接入支持。

取值范围:

不涉及。

includeLabels

Map<String,String>

参数解释:

容器Label白名单,云容器引擎CCE应用日志接入时,可通过容器Label白名单指定待采集的容器,格式为LabelKey/LabelValue键值对。最多支持创建30个。

  • LabelKey:必填项,不能以小数点开头,长度不能超过128个字符。

  • LabelValue:可以为空,长度不能超过512个字符。

若LabelValue为空,则容器 Label中包含LabelKey的容器都匹配;若LabelValue不为空,则容器 Label中包含LabelKey=LabelValue的容器才匹配;LabelKey需要全匹配,LabelValue支持正则匹配。

excludeLabels

Map<String,String>

参数解释:

容器Label黑名单,云容器引擎CCE应用日志接入时,可通过容器Label黑名单排除不采集的容器,格式为LabelKey/LabelValue键值对。最多支持创建30个。

  • LabelKey:必填项,不能以小数点开头,长度不能超过128个字符。

  • LabelValue:可以为空,长度不能超过512个字符。

若LabelValue为空,则容器 Label中包含LabelKey的容器都被排除;若LabelValue不为空,则容器 Label中包含LabelKey=LabelValue的容器才会被排除;LabelKey需要全匹配,LabelValue支持正则匹配。

includeEnvs

Map<String,String>

参数解释:

环境变量白名单,云容器引擎CCE应用日志接入时,可通过环境变量白名单指定待采集的容器,格式为LabelKey/LabelValue键值对。最多支持创建30个。

  • LabelKey:必填项,不能以小数点开头,长度不能超过128个字符。

  • LabelValue:可以为空,长度不能超过512个字符。

若LabelValue为空,则环境变量中包含LabelKey的容器都匹配;若LabelValue不为空,则环境变量中包含LabelKey=LabelValue的容器才匹配;LabelKey需要全匹配,LabelValue支持正则匹配。

excludeEnvs

Map<String,String>

参数解释:

环境变量黑名单,云容器引擎CCE应用日志接入时,可通过环境变量黑名单排除不采集的容器,格式为LabelKey/LabelValue键值对。最多支持创建30个。

  • LabelKey:必填项,不能以小数点开头,长度不能超过128个字符。

  • LabelValue:可以为空,长度不能超过512个字符。

若LabelValue为空,则环境变量中包含LabelKey的容器都被排除;若LabelValue不为空,则环境变量中包含LabelKey=LabelValue的容器才会被排除;LabelKey需要全匹配,LabelValue支持正则匹配。

logLabels

Map<String,String>

参数解释:

容器 Label日志标签,云容器引擎CCE应用日志接入时,可通过该参数在日志中新增容器Label相关字段。例如:设置LabelKey为app,设置LabelValue为app_alias,当容器中包含app=lts时,将在日志中添加内容{app_alias:lts}。

logEnvs

Map<String,String>

参数解释:

环境变量日志标签,云容器引擎CCE应用日志接入时,可通过该参数在日志中新增环境变量相关字段。例如:设置环境变量Key为app,设置环境变量Value为app_alias,当K8S中包含环境变量app=lts时,将在日志中添加的内容为{app_alias:lts}。

includeK8sLabels

Map<String,String>

参数解释:

K8s Label白名单,云容器引擎CCE应用日志接入时,可通过K8s Label白名单指定待采集的容器,格式为LabelKey/LabelValue键值对。最多支持创建30个。

  • LabelKey:必填项,不能以小数点开头,长度不能超过128个字符。

  • LabelValue:可以为空,长度不能超过512个字符。

若LabelValue为空,则K8s Label中包含LabelKey的容器都匹配;若LabelValue不为空,则K8s Label中包含LabelKey=LabelValue的容器才匹配;LabelKey需要全匹配,LabelValue支持正则匹配。

excludeK8sLabels

Map<String,String>

参数解释:

K8s Label黑名单,云容器引擎CCE应用日志接入时,可通过K8s Label黑名单排除不采集的容器,格式为LabelKey/LabelValue键值对。最多支持创建30个。

  • LabelKey:必填项,不能以小数点开头,长度不能超过128个字符。

  • LabelValue:可以为空,长度不能超过512个字符。

若LabelValue为空,则K8s Label中包含LabelKey的容器都被排除;若LabelValue不为空,则K8s Label中包含LabelKey=LabelValue的容器才会被排除;LabelKey需要全匹配,LabelValue支持正则匹配。

logK8s

Map<String,String>

参数解释:

K8s Label日志标签,云容器引擎CCE应用日志接入时,可通过该参数在日志中新增K8s Label相关字段。例如:设置LabelKey为app,设置LabelValue为app_alias,当容器中包含app=lts时,将在日志中添加内容{app_alias:lts}。

repeat_collect

Boolean

参数解释:

是否允许多次采集。

取值范围:

  • true:表示开启,同一主机下的同一日志文件支持被采集到多个日志流。

  • false:表示关闭,采集路径不能重复配置,即同一主机下的同一日志文件,即使跨日志流,也只能配置一次。

system_fields

Array of strings

参数解释:

系统内置字段。配置日志接入规则时,可以配置系统内置字段,上报日志后,每条日志数据的标签数据中将会有系统字段。若修改该字段,将覆盖原有配置。

  • 采集场景为主机文件的内置字段为:hostName、hostId、hostIP、pathFile、hostIPv6、category、collectTime、__host_group__

  • 采集场景为K8S集群容器文件的内置字段为:hostName、hostId、hostIP、pathFile、hostIPv6、clusterId、podName、appName、containerName、nameSpace、category、collectTime、__host_group__、serviceID、podIp、clusterName、workloadType、__image_name__

custom_key_value

Map<String,String>

参数解释:

自定义键值对,格式为Key/Value键值对。配置日志接入规则时,可以配置自定义键值对规则,上报日志后,每条日志数据的标签数据中将会有用户自定义的键值对字段。最多支持创建20个。若修改该字段,将覆盖原有配置。

  • Key:允许的字符有a-zA-Z0-9_-,长度不能超过128个字符。

  • Value:长度不能超过1024个字符。

includeLabelsLogical

String

参数解释:

容器 Label白名单生效逻辑,默认为OR。新增多条白名单时,支持选择AND或OR的关系,即全部满足或满足任意白名单就可以被匹配。

取值范围:

  • AND

  • OR

excludeLabelsLogical

String

参数解释:

容器 Label黑名单生效逻辑,默认为OR。新增多条黑名单时,支持选择AND或OR的关系,即全部满足或满足任意黑名单就可以被匹配。

取值范围:

  • AND

  • OR

includeK8sLabelsLogical

String

参数解释:

K8S Label白名单生效逻辑,默认为OR。新增多条白名单时,支持选择AND或OR的关系,即全部满足或满足任意白名单就可以被匹配。

取值范围:

  • AND

  • OR

excludeK8sLabelsLogical

String

参数解释:

K8S Label黑名单生效逻辑,默认为OR。新增多条黑名单时,支持选择AND或OR的关系,即全部满足或满足任意黑名单就可以被匹配。

取值范围:

  • AND

  • OR

includeEnvsLogical

String

参数解释:

环境变量白名单生效逻辑,默认为OR。新增多条白名单时,支持选择AND或OR的关系,即全部满足或满足任意白名单就可以被匹配。

取值范围:

  • AND

  • OR

excludeEnvsLogical

String

参数解释:

环境变量黑名单生效逻辑,默认为OR。新增多条黑名单时,支持选择AND或OR的关系,即全部满足或满足任意黑名单就可以被匹配。

取值范围:

  • AND

  • OR

表18 AccessConfigFormatCreate

参数

参数类型

描述

single

AccessConfigFormatSingleCreate object

参数解释:

单行日志,每一行日志在LTS界面中都显示为一条单独的日志数据。

multi

AccessConfigFormatMutilCreate object

参数解释:

多行日志,日志在LTS界面中多行日志显示为一条日志。

表19 AccessConfigFormatSingleCreate

参数

参数类型

描述

mode

String

参数解释:

单行日志采集模式。

取值范围:

  • system:系统时间。

  • wildcard:时间通配符。

value

String

参数解释:

日志时间。

  • 当mode为“system”时 ,value填入当前时间戳。

  • 当mode为“wildcard”时,value填入时间通配符。通过时间通配符匹配日志,每条日志的行首显示日志的打印时间,如果日志中的时间格式为2019-01-01 23:59:59,则时间通配符应该填写为YYYY-MM-DD hh:mm:ss;如果日志中的时间格式为19-1-1 23:59:59,则时间通配符应该填写为YY-M-D hh:mm:ss。

取值范围:

不涉及。

表20 AccessConfigFormatMutilCreate

参数

参数类型

描述

mode

String

参数解释:

多行日志采集模式。

取值范围:

  • time:日志时间。

  • regular:正则模式。

value

String

参数解释:

日志时间。

  • 当mode为“system”时 ,value填入当前时间戳。

  • 当mode为“wildcard”时,value填入时间通配符。通过时间通配符匹配日志,每条日志的行首显示日志的打印时间,如果日志中的时间格式为2019-01-01 23:59:59,则时间通配符应该填写为YYYY-MM-DD hh:mm:ss;如果日志中的时间格式为19-1-1 23:59:59,则时间通配符应该填写为YY-M-D hh:mm:ss。

取值范围:

不涉及。

表21 AccessConfigWindowsLogInfoCreate

参数

参数类型

描述

categorys

Array of strings

参数解释:

采集Windows事件日志类型。有以下四种类型:

  • Application:应用系统。

  • System:系统。

  • Security:安全。

  • Setup:启动。

time_offset

AccessConfigTimeOffset object

参数解释:

首次采集时间偏移量信息,用于修正时间偏差或计算相对时间。例如设置为7天,表示从采集开始时间前7天内的日志(7天前的日志被忽略),该时间仅在首次配置采集生效,确保不会重复采集。

event_level

Array of strings

参数解释:

事件等级,根据Windows事件等级过滤采集。仅支持Windows Vista及以上的操作系统。有以下五种等级:

  • information:提示。

  • warning:告警。

  • error:错误。

  • critical:关键。

  • verbose:冗长。

表22 AccessConfigTimeOffset

参数

参数类型

描述

offset

Long

参数解释:

具体的偏移时间。

  • 当"unit"选择"day"时,offset取值范围为1~7天。

  • 当"unit"选择"hour"时,offset取值范围为1~168小时。

  • 当"unit"选择"sec"时,offset取值范围为1~604800秒。

取值范围:

不涉及。

unit

String

参数解释:

具体的偏移时间单位。

  • day :天。

  • hour:小时。

  • sec:秒。

取值范围:

不涉及。

表23 AccessConfigQueryLogInfo

参数

参数类型

描述

log_group_id

String

参数解释:

日志组ID。

取值范围:

不涉及。

log_stream_id

String

参数解释:

日志流ID。

取值范围:

不涉及。

log_group_name

String

参数解释:

日志组名称。

取值范围:

不涉及。

log_stream_name

String

参数解释:

日志流名称。

取值范围:

不涉及。

表24 AccessConfigHostGroupIdList

参数

参数类型

描述

host_group_id_list

Array of strings

参数解释:

主机组ID列表。

表25 accessConfigTagResp

参数

参数类型

描述

key

String

参数解释:

标签键。

取值范围:

  • 标签键可以包含任意语种的字母、数字和空格,以及_.:=+-@字符,但首尾不能包含空格,且不能以_sys_开头。

  • 标签键长度不能超过128个字符。

value

String

参数解释:

标签值。

取值范围:

  • 标签值可以包含任意语种的字母、数字和空格,以及_.:=+-@字符。

  • 标签值长度不能超过255个字符。

表26 DemoFieldAccess

参数

参数类型

描述

field_name

String

参数解释:

示例日志解析字段。

取值范围:

不涉及。

field_value

String

参数解释:

示例日志的字段的值。

取值范围:

不涉及。

表27 Processor

参数

参数类型

描述

type

String

参数解释:

结构化解析类型,有以下七种:

  • processor_regex:正则解析。

  • processor_split_string:分词符。

  • processor_json:json解析类型。

  • processor_gotime:自定义时间类型。

  • processor_filter_regex:日志过滤。

  • processor_drop:删除字段类型。

  • processor_rename:修改字段类型。

取值范围:

不涉及。

detail

Detail object

参数解释:

结构化解析配置的相关信息。

表28 Detail

参数

参数类型

描述

source_key

String

参数解释:

原始字段。日志结构化解析前,用于存放日志内容的原始字段,默认值为content。

取值范围:

不涉及。

regex

String

参数解释:

正则表达式。用于匹配日志的正则表达式。

取值范围:

不涉及。

keys

Array of strings

参数解释:

已提取字段名称。为提取的日志内容设置对应的字段名。

multi_line_regex

String

参数解释:

首行正则表达式。

取值范围:

不涉及。

keep_source

Boolean

参数解释:

是否上传原始日志。

取值范围:

true:保留原始日志。

false:不保留原始日志。

keep_source_if_parse_error

Boolean

参数解释:

是否上传解析失败日志。

取值范围:

true:上传解析失败日志。

false:不上传解析失败日志。

split_sep

String

参数解释:

分隔符。根据日志内容选择正确的分隔符,例如竖线(|)。

取值范围:

不涉及

split_type

String

参数解释:

分隔类型,支持char-单字符、special_char-不可见字符、string-字符串。

取值范围:

不涉及。

fields

Map<String,String>

参数解释:

待添加的字段名和字段值,格式为Key/Value键值对。支持添加多个。

drop_keys

Array of strings

参数解释:

丢弃的字段列表。

source_keys

Array of strings

参数解释:

待重命名的原始字段。

dest_keys

Array of strings

参数解释:

重命名后的字段。

expand_depth

Integer

参数解释:

json展开的深度。默认值为0,表示不限制。1表示当前层级,以此类推。

取值范围:

不涉及。

expand_connector

String

参数解释:

json展开时的连接符,默认值为英文符号点(.)。

取值范围:

不涉及。

source_format

String

参数解释:

原始时间的格式。

取值范围:

不涉及。

source_value

String

参数解释:

原始时间字段value。

取值范围:

不涉及。

set_time

Boolean

参数解释:

是否将解析后的时间设置为日志时间。

取值范围:

不涉及。

include

Map<String,String>

参数解释:

日志过滤白名单规则,格式为Key/Value键值对。Key为日志字段,key不可以重复,长度最大为256个字符。Value为匹配的正则表达式。

exclude

Map<String,String>

参数解释:

日志过滤黑名单规则,格式为Key/Value键值对。Key为日志字段,key不可以重复,长度最大为256个字符。Value为匹配的正则表达式。

状态码:400

表29 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

错误码,请参见:错误码

取值范围:

不涉及。

error_msg

String

参数解释:

调用失败响应信息描述。

取值范围:

不涉及。

状态码:500

表30 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

错误码,请参见:错误码

取值范围:

不涉及。

error_msg

String

参数解释:

调用失败响应信息描述。

取值范围:

不涉及。

请求示例

  • 创建日志接入(CCE接入)

    POST https://{endpoint}/v3/{project_id}/lts/access-config
    
    {
      "access_config_name" : "myapinew322",
      "access_config_type" : "K8S_CCE",
      "access_config_detail" : {
        "pathType" : "CONTAINER_STDOUT",
        "stdout" : "true",
        "stderr" : "false",
        "format" : {
          "single" : {
            "mode" : "system",
            "value" : "1678969382000"
          }
        },
        "namespaceRegex" : "default",
        "podNameRegex" : "abc",
        "containerNameRegex" : "my",
        "includeLabels" : {
          "a" : "1"
        },
        "excludeLabels" : {
          "b" : "2"
        },
        "logLabels" : {
          "c" : "3"
        },
        "includeK8sLabels" : {
          "d" : "4"
        },
        "excludeK8sLabels" : {
          "e" : "5"
        },
        "logK8s" : {
          "f" : "6"
        },
        "includeEnvs" : {
          "g" : "7"
        },
        "excludeEnvs" : {
          "h" : "8"
        },
        "logEnvs" : {
          "i" : "9"
        }
      },
      "log_info" : {
        "log_group_id" : "9575cb24-290c-478e-a5db-88d6d1dc513b",
        "log_stream_id" : "3581bee9-8698-476e-a0ba-b0f310ed99cf"
      },
      "host_group_info" : {
        "host_group_id_list" : [ "12b0bbd1-4eda-456b-a641-647aa66bdeab" ]
      },
      "access_config_tag" : [ {
        "key" : "my01",
        "value" : "001"
      }, {
        "key" : "my02",
        "value" : "002"
      } ],
      "binary_collect" : "false",
      "log_split" : "false"
    }
  • 创建日志接入(ECS接入)

    POST https://{endpoint}/v3/{project_id}/lts/access-config
    
    {
      "access_config_name" : "Tesxxx",
      "access_config_type" : "AGENT",
      "access_config_detail" : {
        "paths" : [ "/test/xxx", "/texxx" ],
        "black_paths" : [ "/testxxx", "/tesxxx" ],
        "format" : {
          "multi" : {
            "mode" : "time",
            "value" : "YYYY-MM-DD hh:mm:ss"
          }
        },
        "windows_log_info" : {
          "categorys" : [ "System", "Security", "Setup" ],
          "event_level" : [ "warning", "error", "critical", "verbose" ],
          "time_offset" : {
            "offset" : 111,
            "unit" : "hour"
          }
        }
      },
      "log_info" : {
        "log_group_id" : "b179326d-c3be-4217-a3d9-xxxx",
        "log_stream_id" : "020a6fa0-4740-4888-af06-98xxxxxx"
      },
      "host_group_info" : {
        "host_group_id_list" : [ "4ee44d4f-a72b-40cf-a3c7-1xxxxx" ]
      },
      "access_config_tag" : [ {
        "key" : "xxx",
        "value" : "xxx"
      }, {
        "key" : "xxx1",
        "value" : "xxx1"
      } ]
    }

响应示例

状态码:200

创建日志接入请求响应成功。

{
  "access_config_detail" : {
    "containerNameRegex" : "container-1",
    "format" : {
      "single" : {
        "mode" : "system",
        "value" : "1678969382000"
      }
    },
    "namespaceRegex" : "default",
    "pathType" : "container_stdout",
    "paths" : [ ],
    "podNameRegex" : "mystdout-6d7458d77c-rhjcc",
    "stderr" : true,
    "stdout" : true
  },
  "access_config_id" : "03b16999-95cf-453b-9668-7aa1fafa564e",
  "access_config_name" : "myapinew32Y",
  "access_config_tag" : [ {
    "key" : "my01",
    "value" : "001"
  }, {
    "key" : "my02",
    "value" : "002"
  } ],
  "access_config_type" : "K8S_CCE",
  "binary_collect" : true,
  "create_time" : 1685626665176,
  "log_info" : {
    "log_group_id" : "9575cb24-290c-478e-a5db-88d6d1dc513b",
    "log_group_name" : "my-group",
    "log_stream_id" : "eea03c27-e041-4bec-bd03-6afa10a6561a",
    "log_stream_name" : "lts-topic-cceapi"
  },
  "log_split" : true
}

状态码:400

非法请求,建议根据error_msg直接修改该请求。

{
  "error_code" : "LTS.1807",
  "error_msg" : "Invalid access config name"
}

状态码:500

表明服务端能被请求访问到,但是服务内部出错。

{
  "error_code" : "LTS.0010",
  "error_msg" : "The system encountered an internal error"
}

SDK代码示例

SDK代码示例如下。

  • 创建日志接入(CCE接入)

      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
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    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.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.util.HashMap;
    
    public class CreateAccessConfigSolution {
    
        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");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            CreateAccessConfigRequest request = new CreateAccessConfigRequest();
            CreateAccessConfigRequestBody body = new CreateAccessConfigRequestBody();
            List<AccessConfigTag> listbodyAccessConfigTag = new ArrayList<>();
            listbodyAccessConfigTag.add(
                new AccessConfigTag()
                    .withKey("my01")
                    .withValue("001")
            );
            listbodyAccessConfigTag.add(
                new AccessConfigTag()
                    .withKey("my02")
                    .withValue("002")
            );
            List<String> listHostGroupInfoHostGroupIdList = new ArrayList<>();
            listHostGroupInfoHostGroupIdList.add("12b0bbd1-4eda-456b-a641-647aa66bdeab");
            AccessConfigHostGroupIdListCreate hostGroupInfobody = new AccessConfigHostGroupIdListCreate();
            hostGroupInfobody.withHostGroupIdList(listHostGroupInfoHostGroupIdList);
            AccessConfigBaseLogInfoCreate logInfobody = new AccessConfigBaseLogInfoCreate();
            logInfobody.withLogGroupId("9575cb24-290c-478e-a5db-88d6d1dc513b")
                .withLogStreamId("3581bee9-8698-476e-a0ba-b0f310ed99cf");
            Map<String, String> listAccessConfigDetailLogK8s = new HashMap<>();
            listAccessConfigDetailLogK8s.put("f", "6");
            Map<String, String> listAccessConfigDetailExcludeK8sLabels = new HashMap<>();
            listAccessConfigDetailExcludeK8sLabels.put("e", "5");
            Map<String, String> listAccessConfigDetailIncludeK8sLabels = new HashMap<>();
            listAccessConfigDetailIncludeK8sLabels.put("d", "4");
            Map<String, String> listAccessConfigDetailLogEnvs = new HashMap<>();
            listAccessConfigDetailLogEnvs.put("i", "9");
            Map<String, String> listAccessConfigDetailLogLabels = new HashMap<>();
            listAccessConfigDetailLogLabels.put("c", "3");
            Map<String, String> listAccessConfigDetailExcludeEnvs = new HashMap<>();
            listAccessConfigDetailExcludeEnvs.put("h", "8");
            Map<String, String> listAccessConfigDetailIncludeEnvs = new HashMap<>();
            listAccessConfigDetailIncludeEnvs.put("g", "7");
            Map<String, String> listAccessConfigDetailExcludeLabels = new HashMap<>();
            listAccessConfigDetailExcludeLabels.put("b", "2");
            Map<String, String> listAccessConfigDetailIncludeLabels = new HashMap<>();
            listAccessConfigDetailIncludeLabels.put("a", "1");
            AccessConfigFormatSingleCreate singleFormat = new AccessConfigFormatSingleCreate();
            singleFormat.withMode(AccessConfigFormatSingleCreate.ModeEnum.fromValue("system"))
                .withValue("1678969382000");
            AccessConfigFormatCreate formatAccessConfigDetail = new AccessConfigFormatCreate();
            formatAccessConfigDetail.withSingle(singleFormat);
            AccessConfigDeatilCreate accessConfigDetailbody = new AccessConfigDeatilCreate();
            accessConfigDetailbody.withFormat(formatAccessConfigDetail)
                .withStdout(true)
                .withStderr(false)
                .withPathType(AccessConfigDeatilCreate.PathTypeEnum.fromValue("CONTAINER_STDOUT"))
                .withNamespaceRegex("default")
                .withPodNameRegex("abc")
                .withContainerNameRegex("my")
                .withIncludeLabels(listAccessConfigDetailIncludeLabels)
                .withExcludeLabels(listAccessConfigDetailExcludeLabels)
                .withIncludeEnvs(listAccessConfigDetailIncludeEnvs)
                .withExcludeEnvs(listAccessConfigDetailExcludeEnvs)
                .withLogLabels(listAccessConfigDetailLogLabels)
                .withLogEnvs(listAccessConfigDetailLogEnvs)
                .withIncludeK8sLabels(listAccessConfigDetailIncludeK8sLabels)
                .withExcludeK8sLabels(listAccessConfigDetailExcludeK8sLabels)
                .withLogK8s(listAccessConfigDetailLogK8s);
            body.withLogSplit(false);
            body.withBinaryCollect(false);
            body.withAccessConfigTag(listbodyAccessConfigTag);
            body.withHostGroupInfo(hostGroupInfobody);
            body.withLogInfo(logInfobody);
            body.withAccessConfigDetail(accessConfigDetailbody);
            body.withAccessConfigType(CreateAccessConfigRequestBody.AccessConfigTypeEnum.fromValue("K8S_CCE"));
            body.withAccessConfigName("myapinew322");
            request.withBody(body);
            try {
                CreateAccessConfigResponse response = client.createAccessConfig(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());
            }
        }
    }
    
  • 创建日志接入(ECS接入)

      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
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    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.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    import java.util.List;
    import java.util.ArrayList;
    
    public class CreateAccessConfigSolution {
    
        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");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            CreateAccessConfigRequest request = new CreateAccessConfigRequest();
            CreateAccessConfigRequestBody body = new CreateAccessConfigRequestBody();
            List<AccessConfigTag> listbodyAccessConfigTag = new ArrayList<>();
            listbodyAccessConfigTag.add(
                new AccessConfigTag()
                    .withKey("xxx")
                    .withValue("xxx")
            );
            listbodyAccessConfigTag.add(
                new AccessConfigTag()
                    .withKey("xxx1")
                    .withValue("xxx1")
            );
            List<String> listHostGroupInfoHostGroupIdList = new ArrayList<>();
            listHostGroupInfoHostGroupIdList.add("4ee44d4f-a72b-40cf-a3c7-1xxxxx");
            AccessConfigHostGroupIdListCreate hostGroupInfobody = new AccessConfigHostGroupIdListCreate();
            hostGroupInfobody.withHostGroupIdList(listHostGroupInfoHostGroupIdList);
            AccessConfigBaseLogInfoCreate logInfobody = new AccessConfigBaseLogInfoCreate();
            logInfobody.withLogGroupId("b179326d-c3be-4217-a3d9-xxxx")
                .withLogStreamId("020a6fa0-4740-4888-af06-98xxxxxx");
            List<AccessConfigWindowsLogInfoCreate.EventLevelEnum> listWindowsLogInfoEventLevel = new ArrayList<>();
            listWindowsLogInfoEventLevel.add(AccessConfigWindowsLogInfoCreate.EventLevelEnum.fromValue("warning"));
            listWindowsLogInfoEventLevel.add(AccessConfigWindowsLogInfoCreate.EventLevelEnum.fromValue("error"));
            listWindowsLogInfoEventLevel.add(AccessConfigWindowsLogInfoCreate.EventLevelEnum.fromValue("critical"));
            listWindowsLogInfoEventLevel.add(AccessConfigWindowsLogInfoCreate.EventLevelEnum.fromValue("verbose"));
            AccessConfigTimeOffset timeOffsetWindowsLogInfo = new AccessConfigTimeOffset();
            timeOffsetWindowsLogInfo.withOffset(111L)
                .withUnit(AccessConfigTimeOffset.UnitEnum.fromValue("hour"));
            List<AccessConfigWindowsLogInfoCreate.CategorysEnum> listWindowsLogInfoCategorys = new ArrayList<>();
            listWindowsLogInfoCategorys.add(AccessConfigWindowsLogInfoCreate.CategorysEnum.fromValue("System"));
            listWindowsLogInfoCategorys.add(AccessConfigWindowsLogInfoCreate.CategorysEnum.fromValue("Security"));
            listWindowsLogInfoCategorys.add(AccessConfigWindowsLogInfoCreate.CategorysEnum.fromValue("Setup"));
            AccessConfigWindowsLogInfoCreate windowsLogInfoAccessConfigDetail = new AccessConfigWindowsLogInfoCreate();
            windowsLogInfoAccessConfigDetail.withCategorys(listWindowsLogInfoCategorys)
                .withTimeOffset(timeOffsetWindowsLogInfo)
                .withEventLevel(listWindowsLogInfoEventLevel);
            AccessConfigFormatMutilCreate multiFormat = new AccessConfigFormatMutilCreate();
            multiFormat.withMode(AccessConfigFormatMutilCreate.ModeEnum.fromValue("time"))
                .withValue("YYYY-MM-DD hh:mm:ss");
            AccessConfigFormatCreate formatAccessConfigDetail = new AccessConfigFormatCreate();
            formatAccessConfigDetail.withMulti(multiFormat);
            List<String> listAccessConfigDetailBlackPaths = new ArrayList<>();
            listAccessConfigDetailBlackPaths.add("/testxxx");
            listAccessConfigDetailBlackPaths.add("/tesxxx");
            List<String> listAccessConfigDetailPaths = new ArrayList<>();
            listAccessConfigDetailPaths.add("/test/xxx");
            listAccessConfigDetailPaths.add("/texxx");
            AccessConfigDeatilCreate accessConfigDetailbody = new AccessConfigDeatilCreate();
            accessConfigDetailbody.withPaths(listAccessConfigDetailPaths)
                .withBlackPaths(listAccessConfigDetailBlackPaths)
                .withFormat(formatAccessConfigDetail)
                .withWindowsLogInfo(windowsLogInfoAccessConfigDetail);
            body.withAccessConfigTag(listbodyAccessConfigTag);
            body.withHostGroupInfo(hostGroupInfobody);
            body.withLogInfo(logInfobody);
            body.withAccessConfigDetail(accessConfigDetailbody);
            body.withAccessConfigType(CreateAccessConfigRequestBody.AccessConfigTypeEnum.fromValue("AGENT"));
            body.withAccessConfigName("Tesxxx");
            request.withBody(body);
            try {
                CreateAccessConfigResponse response = client.createAccessConfig(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());
            }
        }
    }
    
  • 创建日志接入(CCE接入)

      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
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 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.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = CreateAccessConfigRequest()
            listAccessConfigTagbody = [
                AccessConfigTag(
                    key="my01",
                    value="001"
                ),
                AccessConfigTag(
                    key="my02",
                    value="002"
                )
            ]
            listHostGroupIdListHostGroupInfo = [
                "12b0bbd1-4eda-456b-a641-647aa66bdeab"
            ]
            hostGroupInfobody = AccessConfigHostGroupIdListCreate(
                host_group_id_list=listHostGroupIdListHostGroupInfo
            )
            logInfobody = AccessConfigBaseLogInfoCreate(
                log_group_id="9575cb24-290c-478e-a5db-88d6d1dc513b",
                log_stream_id="3581bee9-8698-476e-a0ba-b0f310ed99cf"
            )
            listLogK8sAccessConfigDetail = {
                "f": "6"
            }
            listExcludeK8sLabelsAccessConfigDetail = {
                "e": "5"
            }
            listIncludeK8sLabelsAccessConfigDetail = {
                "d": "4"
            }
            listLogEnvsAccessConfigDetail = {
                "i": "9"
            }
            listLogLabelsAccessConfigDetail = {
                "c": "3"
            }
            listExcludeEnvsAccessConfigDetail = {
                "h": "8"
            }
            listIncludeEnvsAccessConfigDetail = {
                "g": "7"
            }
            listExcludeLabelsAccessConfigDetail = {
                "b": "2"
            }
            listIncludeLabelsAccessConfigDetail = {
                "a": "1"
            }
            singleFormat = AccessConfigFormatSingleCreate(
                mode="system",
                value="1678969382000"
            )
            formatAccessConfigDetail = AccessConfigFormatCreate(
                single=singleFormat
            )
            accessConfigDetailbody = AccessConfigDeatilCreate(
                format=formatAccessConfigDetail,
                stdout=True,
                stderr=False,
                path_type="CONTAINER_STDOUT",
                namespace_regex="default",
                pod_name_regex="abc",
                container_name_regex="my",
                include_labels=listIncludeLabelsAccessConfigDetail,
                exclude_labels=listExcludeLabelsAccessConfigDetail,
                include_envs=listIncludeEnvsAccessConfigDetail,
                exclude_envs=listExcludeEnvsAccessConfigDetail,
                log_labels=listLogLabelsAccessConfigDetail,
                log_envs=listLogEnvsAccessConfigDetail,
                include_k8s_labels=listIncludeK8sLabelsAccessConfigDetail,
                exclude_k8s_labels=listExcludeK8sLabelsAccessConfigDetail,
                log_k8s=listLogK8sAccessConfigDetail
            )
            request.body = CreateAccessConfigRequestBody(
                log_split=False,
                binary_collect=False,
                access_config_tag=listAccessConfigTagbody,
                host_group_info=hostGroupInfobody,
                log_info=logInfobody,
                access_config_detail=accessConfigDetailbody,
                access_config_type="K8S_CCE",
                access_config_name="myapinew322"
            )
            response = client.create_access_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)
    
  • 创建日志接入(ECS接入)

      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
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 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.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = CreateAccessConfigRequest()
            listAccessConfigTagbody = [
                AccessConfigTag(
                    key="xxx",
                    value="xxx"
                ),
                AccessConfigTag(
                    key="xxx1",
                    value="xxx1"
                )
            ]
            listHostGroupIdListHostGroupInfo = [
                "4ee44d4f-a72b-40cf-a3c7-1xxxxx"
            ]
            hostGroupInfobody = AccessConfigHostGroupIdListCreate(
                host_group_id_list=listHostGroupIdListHostGroupInfo
            )
            logInfobody = AccessConfigBaseLogInfoCreate(
                log_group_id="b179326d-c3be-4217-a3d9-xxxx",
                log_stream_id="020a6fa0-4740-4888-af06-98xxxxxx"
            )
            listEventLevelWindowsLogInfo = [
                "warning",
                "error",
                "critical",
                "verbose"
            ]
            timeOffsetWindowsLogInfo = AccessConfigTimeOffset(
                offset=111,
                unit="hour"
            )
            listCategorysWindowsLogInfo = [
                "System",
                "Security",
                "Setup"
            ]
            windowsLogInfoAccessConfigDetail = AccessConfigWindowsLogInfoCreate(
                categorys=listCategorysWindowsLogInfo,
                time_offset=timeOffsetWindowsLogInfo,
                event_level=listEventLevelWindowsLogInfo
            )
            multiFormat = AccessConfigFormatMutilCreate(
                mode="time",
                value="YYYY-MM-DD hh:mm:ss"
            )
            formatAccessConfigDetail = AccessConfigFormatCreate(
                multi=multiFormat
            )
            listBlackPathsAccessConfigDetail = [
                "/testxxx",
                "/tesxxx"
            ]
            listPathsAccessConfigDetail = [
                "/test/xxx",
                "/texxx"
            ]
            accessConfigDetailbody = AccessConfigDeatilCreate(
                paths=listPathsAccessConfigDetail,
                black_paths=listBlackPathsAccessConfigDetail,
                format=formatAccessConfigDetail,
                windows_log_info=windowsLogInfoAccessConfigDetail
            )
            request.body = CreateAccessConfigRequestBody(
                access_config_tag=listAccessConfigTagbody,
                host_group_info=hostGroupInfobody,
                log_info=logInfobody,
                access_config_detail=accessConfigDetailbody,
                access_config_type="AGENT",
                access_config_name="Tesxxx"
            )
            response = client.create_access_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)
    
  • 创建日志接入(CCE接入)

      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
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/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")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.CreateAccessConfigRequest{}
    	keyAccessConfigTag:= "my01"
    	valueAccessConfigTag:= "001"
    	keyAccessConfigTag1:= "my02"
    	valueAccessConfigTag1:= "002"
    	var listAccessConfigTagbody = []model.AccessConfigTag{
            {
                Key: &keyAccessConfigTag,
                Value: &valueAccessConfigTag,
            },
            {
                Key: &keyAccessConfigTag1,
                Value: &valueAccessConfigTag1,
            },
        }
    	var listHostGroupIdListHostGroupInfo = []string{
            "12b0bbd1-4eda-456b-a641-647aa66bdeab",
        }
    	hostGroupInfobody := &model.AccessConfigHostGroupIdListCreate{
    		HostGroupIdList: listHostGroupIdListHostGroupInfo,
    	}
    	logInfobody := &model.AccessConfigBaseLogInfoCreate{
    		LogGroupId: "9575cb24-290c-478e-a5db-88d6d1dc513b",
    		LogStreamId: "3581bee9-8698-476e-a0ba-b0f310ed99cf",
    	}
    	var listLogK8sAccessConfigDetail = map[string]string{
            "f": "6",
        }
    	var listExcludeK8sLabelsAccessConfigDetail = map[string]string{
            "e": "5",
        }
    	var listIncludeK8sLabelsAccessConfigDetail = map[string]string{
            "d": "4",
        }
    	var listLogEnvsAccessConfigDetail = map[string]string{
            "i": "9",
        }
    	var listLogLabelsAccessConfigDetail = map[string]string{
            "c": "3",
        }
    	var listExcludeEnvsAccessConfigDetail = map[string]string{
            "h": "8",
        }
    	var listIncludeEnvsAccessConfigDetail = map[string]string{
            "g": "7",
        }
    	var listExcludeLabelsAccessConfigDetail = map[string]string{
            "b": "2",
        }
    	var listIncludeLabelsAccessConfigDetail = map[string]string{
            "a": "1",
        }
    	modeSingle:= model.GetAccessConfigFormatSingleCreateModeEnum().SYSTEM
    	valueSingle:= "1678969382000"
    	singleFormat := &model.AccessConfigFormatSingleCreate{
    		Mode: &modeSingle,
    		Value: &valueSingle,
    	}
    	formatAccessConfigDetail := &model.AccessConfigFormatCreate{
    		Single: singleFormat,
    	}
    	stdoutAccessConfigDetail:= true
    	stderrAccessConfigDetail:= false
    	pathTypeAccessConfigDetail:= model.GetAccessConfigDeatilCreatePathTypeEnum().CONTAINER_STDOUT
    	namespaceRegexAccessConfigDetail:= "default"
    	podNameRegexAccessConfigDetail:= "abc"
    	containerNameRegexAccessConfigDetail:= "my"
    	accessConfigDetailbody := &model.AccessConfigDeatilCreate{
    		Format: formatAccessConfigDetail,
    		Stdout: &stdoutAccessConfigDetail,
    		Stderr: &stderrAccessConfigDetail,
    		PathType: &pathTypeAccessConfigDetail,
    		NamespaceRegex: &namespaceRegexAccessConfigDetail,
    		PodNameRegex: &podNameRegexAccessConfigDetail,
    		ContainerNameRegex: &containerNameRegexAccessConfigDetail,
    		IncludeLabels: listIncludeLabelsAccessConfigDetail,
    		ExcludeLabels: listExcludeLabelsAccessConfigDetail,
    		IncludeEnvs: listIncludeEnvsAccessConfigDetail,
    		ExcludeEnvs: listExcludeEnvsAccessConfigDetail,
    		LogLabels: listLogLabelsAccessConfigDetail,
    		LogEnvs: listLogEnvsAccessConfigDetail,
    		IncludeK8sLabels: listIncludeK8sLabelsAccessConfigDetail,
    		ExcludeK8sLabels: listExcludeK8sLabelsAccessConfigDetail,
    		LogK8s: listLogK8sAccessConfigDetail,
    	}
    	logSplitCreateAccessConfigRequestBody:= false
    	binaryCollectCreateAccessConfigRequestBody:= false
    	request.Body = &model.CreateAccessConfigRequestBody{
    		LogSplit: &logSplitCreateAccessConfigRequestBody,
    		BinaryCollect: &binaryCollectCreateAccessConfigRequestBody,
    		AccessConfigTag: &listAccessConfigTagbody,
    		HostGroupInfo: hostGroupInfobody,
    		LogInfo: logInfobody,
    		AccessConfigDetail: accessConfigDetailbody,
    		AccessConfigType: model.GetCreateAccessConfigRequestBodyAccessConfigTypeEnum().K8_S_CCE,
    		AccessConfigName: "myapinew322",
    	}
    	response, err := client.CreateAccessConfig(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • 创建日志接入(ECS接入)

      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
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/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")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.CreateAccessConfigRequest{}
    	keyAccessConfigTag:= "xxx"
    	valueAccessConfigTag:= "xxx"
    	keyAccessConfigTag1:= "xxx1"
    	valueAccessConfigTag1:= "xxx1"
    	var listAccessConfigTagbody = []model.AccessConfigTag{
            {
                Key: &keyAccessConfigTag,
                Value: &valueAccessConfigTag,
            },
            {
                Key: &keyAccessConfigTag1,
                Value: &valueAccessConfigTag1,
            },
        }
    	var listHostGroupIdListHostGroupInfo = []string{
            "4ee44d4f-a72b-40cf-a3c7-1xxxxx",
        }
    	hostGroupInfobody := &model.AccessConfigHostGroupIdListCreate{
    		HostGroupIdList: listHostGroupIdListHostGroupInfo,
    	}
    	logInfobody := &model.AccessConfigBaseLogInfoCreate{
    		LogGroupId: "b179326d-c3be-4217-a3d9-xxxx",
    		LogStreamId: "020a6fa0-4740-4888-af06-98xxxxxx",
    	}
    	var listEventLevelWindowsLogInfo = []model.AccessConfigWindowsLogInfoCreateEventLevel{
            model.GetAccessConfigWindowsLogInfoCreateEventLevelEnum().WARNING,
    	    model.GetAccessConfigWindowsLogInfoCreateEventLevelEnum().ERROR,
    	    model.GetAccessConfigWindowsLogInfoCreateEventLevelEnum().CRITICAL,
    	    model.GetAccessConfigWindowsLogInfoCreateEventLevelEnum().VERBOSE,
        }
    	timeOffsetWindowsLogInfo := &model.AccessConfigTimeOffset{
    		Offset: int64(111),
    		Unit: model.GetAccessConfigTimeOffsetUnitEnum().HOUR,
    	}
    	var listCategorysWindowsLogInfo = []model.AccessConfigWindowsLogInfoCreateCategorys{
            model.GetAccessConfigWindowsLogInfoCreateCategorysEnum().SYSTEM,
    	    model.GetAccessConfigWindowsLogInfoCreateCategorysEnum().SECURITY,
    	    model.GetAccessConfigWindowsLogInfoCreateCategorysEnum().SETUP,
        }
    	windowsLogInfoAccessConfigDetail := &model.AccessConfigWindowsLogInfoCreate{
    		Categorys: listCategorysWindowsLogInfo,
    		TimeOffset: timeOffsetWindowsLogInfo,
    		EventLevel: listEventLevelWindowsLogInfo,
    	}
    	modeMulti:= model.GetAccessConfigFormatMutilCreateModeEnum().TIME
    	valueMulti:= "YYYY-MM-DD hh:mm:ss"
    	multiFormat := &model.AccessConfigFormatMutilCreate{
    		Mode: &modeMulti,
    		Value: &valueMulti,
    	}
    	formatAccessConfigDetail := &model.AccessConfigFormatCreate{
    		Multi: multiFormat,
    	}
    	var listBlackPathsAccessConfigDetail = []string{
            "/testxxx",
    	    "/tesxxx",
        }
    	var listPathsAccessConfigDetail = []string{
            "/test/xxx",
    	    "/texxx",
        }
    	accessConfigDetailbody := &model.AccessConfigDeatilCreate{
    		Paths: &listPathsAccessConfigDetail,
    		BlackPaths: &listBlackPathsAccessConfigDetail,
    		Format: formatAccessConfigDetail,
    		WindowsLogInfo: windowsLogInfoAccessConfigDetail,
    	}
    	request.Body = &model.CreateAccessConfigRequestBody{
    		AccessConfigTag: &listAccessConfigTagbody,
    		HostGroupInfo: hostGroupInfobody,
    		LogInfo: logInfobody,
    		AccessConfigDetail: accessConfigDetailbody,
    		AccessConfigType: model.GetCreateAccessConfigRequestBodyAccessConfigTypeEnum().AGENT,
    		AccessConfigName: "Tesxxx",
    	}
    	response, err := client.CreateAccessConfig(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    

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

状态码

状态码

描述

200

创建日志接入请求响应成功。

400

非法请求,建议根据error_msg直接修改该请求。

500

表明服务端能被请求访问到,但是服务内部出错。

错误码

请参见错误码