ALIYUN::SLS::LogtailConfig is used to configure Logtail parameters for data collection.
Syntax
{
"Type": "ALIYUN::SLS::LogtailConfig",
"Properties": {
"ProjectName": String,
"LogtailConfigName": String,
"LogstoreName": String,
"RawConfigData": Map,
"CloneFrom": Map
}
}
Properties
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
ProjectName | String | Yes | No | The name of the Log Service project. | None |
LogtailConfigName | String | Yes | No | The name of the Logtail configuration file. | The configuration file name must be unique in a project.
The name must be 2 to 128 characters in length and can contain lowercase letters, digits, hyphens (-), and underscores (_). It must start and end with a lowercase letter or digit. |
LogstoreName | String | Yes | No | The name of the Logstore. | None |
RawConfigData | Map | No | Yes | The raw configuration data. | The format is the same as that of the response from the GetConfig operation of Log Service.
If CloneFrom and RawConfigData are both specified, the data of LogtailConfig and RawConfigData is merged. In this case, configName, outputType, and outputDetail of RawConfigData are ignored. Sample value: |
CloneFrom | Map | No | Yes | The configurations for cloning LogtailConfig data of another Log Service project. | You must specify one of the CloneFrom and LogtailConfig parameters.
For more information, see CloneFrom properties. |
CloneFrom syntax
"CloneFrom": {
"ProjectName": String,
"LogtailConfigName": String
}
CloneFrom properties
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
ProjectName | String | Yes | Yes | The name of the Log Service project. | None |
LogtailConfigName | String | Yes | Yes | The name of the Logtail configuration file. | None |
Response parameters
Fn::GetAtt
- Endpoint: the endpoint.
- AppliedMachineGroups: a list of machines configured for log collection.
- LogtailConfigName: the name of the Logtail configuration file.
Examples
JSON
format
{
"ROSTemplateFormatVersion": "2015-09-01",
"Resources": {
"LogtailConfig": {
"Type": "ALIYUN::SLS::LogtailConfig",
"Properties": {
"ProjectName": {
"Ref": "ProjectName"
},
"LogtailConfigName": {
"Ref": "LogtailConfigName"
},
"LogstoreName": {
"Ref": "LogstoreName"
},
"RawConfigData": {
"Ref": "RawConfigData"
},
"CloneFrom": {
"Ref": "CloneFrom"
}
}
}
},
"Parameters": {
"ProjectName": {
"MinLength": 3,
"Type": "String",
"Description": "Project name: 1. Only supports lowercase letters, numbers, hyphens (-) and underscores (_). 2. Must start and end with lowercase letters and numbers. 3. The name length is 3-63 characters.",
"MaxLength": 63
},
"LogtailConfigName": {
"MinLength": 3,
"Type": "String",
"Description": "Logtail config name: 1. Only supports lowercase letters, numbers, hyphens (-) and underscores (_). 2. Must start and end with lowercase letters and numbers. 3. The name length is 3-63 characters.",
"MaxLength": 63
},
"LogstoreName": {
"MinLength": 3,
"Type": "String",
"Description": "Logstore name: 1. Only supports lowercase letters, numbers, hyphens (-) and underscores (_). 2. Must start and end with lowercase letters and numbers. 3. The name length is 3-63 characters.",
"MaxLength": 63
},
"RawConfigData": {
"Type": "Json",
"Description": "The format is the same as the response of SLS API GetConfig. Either CloneFrom or RawConfigData must be specified. If CloneFrom and RawConfigData are both specified, logtail config data will be merged from both with RawConfigData first. configName, outputType, outputDetail in data will be ignored.For example:\n{\"configName\": \"test-logtail-config\",\"createTime\": 1574843554,\"inputDetail\": { \"acceptNoEnoughKeys\": false, \"adjustTimezone\": false, \"advanced\": { \"force_multiconfig\": false }, \"autoExtend\": true, \"delayAlarmBytes\": 0, \"delaySkipBytes\": 0, \"discardNonUtf8\": false, \"discardUnmatch\": false, \"dockerExcludeEnv\": {}, \"dockerExcludeLabel\": {}, \"dockerFile\": false, \"dockerIncludeEnv\": {}, \"dockerIncludeLabel\": {}, \"enableRawLog\": false, \"enableTag\": false, \"fileEncoding\": \"utf8\", \"filePattern\": \"test.log*\", \"filterKey\": [], \"filterRegex\": [], \"key\": [ \"time\", \"logger\", \"level\", \"request_id\", \"user_id\", \"region_id\", \"content\" ], \"localStorage\": true, \"logPath\": \"/var/log/test\", \"logTimezone\": \"\", \"logType\": \"delimiter_log\", \"maxDepth\": 100, \"maxSendRate\": -1, \"mergeType\": \"topic\", \"preserve\": true, \"preserveDepth\": 1, \"priority\": 0, \"quote\": \"\\u0001\", \"sendRateExpire\": 0, \"sensitive_keys\": [], \"separator\": \",,,\", \"shardHashKey\": [], \"tailExisted\": false, \"timeFormat\": \"\", \"timeKey\": \"\", \"topicFormat\": \"none\"}, \"inputType\": \"file\", \"lastModifyTime\": 1574843554, \"logSample\": \"2019-11-27 10:48:23,160,,,MAIN,,,INFO,,,98DCC51D-BE5D-49C7-B3FD-37B2BAEFB296,,,123456789,,,cn-hangzhou,,,this is a simple test.\", \"outputDetail\": {\"endpoint\": \"cn-hangzhou-intranet.log.aliyuncs.com\", \"logstoreName\": \"test-logstore\",\"region\": \"cn-hangzhou\"}, \"outputType\": \"LogService\"}"
},
"CloneFrom": {
"Type": "Json",
"Description": "Clone logtail config data from existing logtail config. Either CloneFrom or RawConfigData must be specified. If CloneFrom and RawConfigData are both specified, logtail config data will be merged from both with RawConfigData first."
}
},
"Outputs": {
"LogtailConfigName": {
"Description": "Logtail config name.",
"Value": {
"Fn::GetAtt": [
"LogtailConfig",
"LogtailConfigName"
]
}
},
"Endpoint": {
"Description": "Endpoint address.",
"Value": {
"Fn::GetAtt": [
"LogtailConfig",
"Endpoint"
]
}
},
"AppliedMachineGroups": {
"Description": "Applied machine groups.",
"Value": {
"Fn::GetAtt": [
"LogtailConfig",
"AppliedMachineGroups"
]
}
}
}
}
YAML
format
ROSTemplateFormatVersion: '2015-09-01'
Resources:
LogtailConfig:
Type: ALIYUN::SLS::LogtailConfig
Properties:
ProjectName:
Ref: ProjectName
LogtailConfigName:
Ref: LogtailConfigName
LogstoreName:
Ref: LogstoreName
RawConfigData:
Ref: RawConfigData
CloneFrom:
Ref: CloneFrom
Parameters:
ProjectName:
MinLength: 3
Type: String
Description: 'Project name: 1. Only supports lowercase letters, numbers, hyphens
(-) and underscores (_). 2. Must start and end with lowercase letters and numbers.
3. The name length is 3-63 characters.'
MaxLength: 63
LogtailConfigName:
MinLength: 3
Type: String
Description: 'Logtail config name: 1. Only supports lowercase letters, numbers,
hyphens (-) and underscores (_). 2. Must start and end with lowercase letters
and numbers. 3. The name length is 3-63 characters.'
MaxLength: 63
LogstoreName:
MinLength: 3
Type: String
Description: 'Logstore name: 1. Only supports lowercase letters, numbers, hyphens
(-) and underscores (_). 2. Must start and end with lowercase letters and numbers.
3. The name length is 3-63 characters.'
MaxLength: 63
RawConfigData:
Type: Json
Description: |-
The format is the same as the response of SLS API GetConfig. Either CloneFrom or RawConfigData must be specified. If CloneFrom and RawConfigData are both specified, logtail config data will be merged from both with RawConfigData first. configName, outputType, outputDetail in data will be ignored.For example:
{"configName": "test-logtail-config","createTime": 1574843554,"inputDetail": { "acceptNoEnoughKeys": false, "adjustTimezone": false, "advanced": { "force_multiconfig": false }, "autoExtend": true, "delayAlarmBytes": 0, "delaySkipBytes": 0, "discardNonUtf8": false, "discardUnmatch": false, "dockerExcludeEnv": {}, "dockerExcludeLabel": {}, "dockerFile": false, "dockerIncludeEnv": {}, "dockerIncludeLabel": {}, "enableRawLog": false, "enableTag": false, "fileEncoding": "utf8", "filePattern": "test.log*", "filterKey": [], "filterRegex": [], "key": [ "time", "logger", "level", "request_id", "user_id", "region_id", "content" ], "localStorage": true, "logPath": "/var/log/test", "logTimezone": "", "logType": "delimiter_log", "maxDepth": 100, "maxSendRate": -1, "mergeType": "topic", "preserve": true, "preserveDepth": 1, "priority": 0, "quote": "\u0001", "sendRateExpire": 0, "sensitive_keys": [], "separator": ",,,", "shardHashKey": [], "tailExisted": false, "timeFormat": "", "timeKey": "", "topicFormat": "none"}, "inputType": "file", "lastModifyTime": 1574843554, "logSample": "2019-11-27 10:48:23,160,,,MAIN,,,INFO,,,98DCC51D-BE5D-49C7-B3FD-37B2BAEFB296,,,123456789,,,cn-hangzhou,,,this is a simple test.", "outputDetail": {"endpoint": "cn-hangzhou-intranet.log.aliyuncs.com", "logstoreName": "test-logstore","region": "cn-hangzhou"}, "outputType": "LogService"}
CloneFrom:
Type: Json
Description: Clone logtail config data from existing logtail config. Either CloneFrom
or RawConfigData must be specified. If CloneFrom and RawConfigData are both
specified, logtail config data will be merged from both with RawConfigData first.
Outputs:
Endpoint:
Description: Endpoint address.
Value:
Fn::GetAtt:
- LogtailConfig
- Endpoint
AppliedMachineGroups:
Description: Applied machine groups.
Value:
Fn::GetAtt:
- LogtailConfig
- AppliedMachineGroups
LogtailConfigName:
Description: Logtail config name.
Value:
Fn::GetAtt:
- LogtailConfig
- LogtailConfigName
To view more examples, visit SLS.json and SLS.yml. In the examples, the ALIYUN::SLS::Project, ALIYUN::SLS::Logstore, ALIYUN::SLS::Index, ALIYUN::SLS::LogtailConfig, ALIYUN::SLS::MachineGroup, ALIYUN::SLS::ApplyConfigToMachineGroup, ALIYUN::ApiGateway::LogConfig, ALIYUN::SLS::Savedsearch, and ALIYUN::SLS::Alert resource types are involved.