在Project下创建日志配置。

示例:

POST /configs

请求语法

POST /configs HTTP/1.1
Authorization: <AuthorizationString> 
Content-Type:application/json
Content-Length:<Content Length>
Content-MD5<:<Content MD5>
Date: <GMT Date>
Host: <Project Endpoint>
x-log-apiversion: 0.6.0
x-log-signaturemethod: hmac-sha1
{
    "configName": "testcategory1",
    "inputType": "file",
    "inputDetail": {
        "logType": "common_reg_log",
        "logPath": "/var/log/httpd/",
        "filePattern": "access*.log",
        "localStorage": true,
        "timeFormat": "%Y/%m/%d %H:%M:%S",
        "logBeginRegex": ".*",
        "regex": "(\w+)(\s+)",
        "key" :["key1", "key2"],
        "filterKey":["key1"],
        "filterRegex":["regex1"],
        "fileEncoding":"utf8",
        "topicFormat": "none"
    },
    "outputType": "LogService",
    "outputDetail": 
    {
        "logstoreName": "perfcounter"
    }
}

请求参数

属性名称 类型 是否必须 描述
configName string 日志配置名称, Project 下唯一
inputType string 输入类型,现在只支持 file
inputDetail json 见下表格说明
outputType string 输出类型,现在只支持 LogService
outputDetail json 见下表格说明
logSample string Logtail 配置日志样例,最大支持 1000 字节

inputDetail 内容:

属性名称 类型 必须 描述
logType string 日志类型,现在只支持 common_reg_log。
logPath string 日志所在的父目录,例如/var/logs/
filePattern string 日志文件的Pattern,例如 access*.log
localStorage boolean 是否打开本地缓存,在服务端之间链路断开的情况下,本地可以缓存 1GB 日志。
timeFormat string 日志时间格式, 如%Y/%m/%d %H:%M:%S
logBeginRegex string 日志首行特征(正则表达式),由于匹配多行日志组成一条 log 的情况。
regex string 日志对提取正则表达式。
key array 日志提取后所生成的 Key。
filterKey array 用于过滤日志所用到的 key,只有 key 的值满足对应 filterRegex 列中设定的正则表达式日志才是符合要求的。
filterRegex array 和每个 filterKey 对应的正则表达式, filterRegex 的长度和 filterKey 的长度必须相同。
topicFormat string Topic 生成方式,支持以下四种类型:
  • 用于将日志文件路径的某部分作为 topic,如/var/log/(.*).log
  • none,表示 topic 为空。
  • default,表示将日志文件路径作为 topic。
  • group_topic,表示将应用该配置的机器组 topic 属性作为 topic。
preserve boolean true 代表监控目录永不超时,false 代表监控目录 30 分钟超时,默认值为 true。
preserveDepth integer 当设置 preserve 为 false 时,指定监控不超时目录的深度,最大深度支持 3。
fileEncoding string 支持两种类型:utf8、gbk。

outputDetail 内容:

属性名称 类型 必须 描述
logstoreName string 对应 Logstore 名称
请求头

无特有请求头。关于 Log Service API 的公共请求头,请参考 公共请求头

响应头

无特有响应头。请参考 公共响应头

响应元素

HTTP 状态码返回 200。

错误码

除了返回 Log Service API 的 通用错误码,还可能返回如下特有错误码:

HTTP 状态码 ErrorCode ErrorMessage
400 ConfigAlreadyExist config {Configname} already exists
400 InvalidParameter invalid config resource json
500 InternalServerError internal server error
细节描述

创建过程中遇到配置已经存在、格式错误、必要参数遗失、或者 quota 超过限制等错误,则会创建失败。

示例

请求示例:
POST /configs HTTP/1.1
Header :
{
    'Content-Length': 737, 
    'Host': 'ali-test-project.cn-hangzhou-devcommon-intranet.sls.aliyuncs.com', 
    'x-log-bodyrawsize': 737, 
    'Content-MD5': 'FBA01ECF7255BE143379BC70C56BBF68', 
    'x-log-signaturemethod': 'hmac-sha1', 
    'Date': 'Mon, 09 Nov 2015 07:45:30 GMT', 
    'x-log-apiversion': '0.6.0', 
    'User-Agent': 'log-python-sdk-v-0.6.0', 
    'Content-Type': 'application/json', 
    'Authorization': 'LOG 94to3z418yupi6ikawqqd370:x/L1ymdn9wxe2zrwzcdSG82nXL0='
}
Body:
{
    "configName": "sample-logtail-config",
    "inputType": "file",
    "inputDetail": {
        "logType": "common_reg_log", 
        "logPath": "/var/log/httpd/",
        "filePattern": "access*.log",
        "localStorage": true, 
        "timeFormat": "%d/%b/%Y:%H:%M:%S", 
        "logBeginRegex": "\\d+\\.\\d+\\.\\d+\\.\\d+ - .*", 
        "regex": "([\\d\\.]+) \\S+ \\S+ \\[(\\S+) \\S+\\] \"(\\w+) ([^\"]*)\" ([\\d\\.]+) (\\d+) (\\d+) (\\d+|-) \"([^\"]*)\" \"([^\"]*)\".*", 
        "key": ["ip", "time", "method", "url", "request_time", "request_length", "status", "length", "ref_url", "browser"], 
        "filterKey": [], 
        "filterRegex": [],
        "topicFormat": "none", 
        "fileEncoding": "utf8"
    }, 
    "outputType": "LogService", 
    "outputDetail": 
    {
        "logstoreName": "sls-test-logstore"
    }
}
响应示例:
HTTP/1.1 200 OK
Header
{
    'date': 'Mon, 09 Nov 2015 07:45:30 GMT',
    'connection': 'close',
    'x-log-requestid': '56404F1A99248CA26C002180',
    'content-length': '0',
    'server': 'nginx/1.6.1'
}