プロジェクトで Logtail 設定を作成します。

例:

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 必須 同じプロジェクト内で一意の Logstore 名
inputType string 必須 入力タイプ (現時点でファイルのみサポート)
入力詳細 json 必須 次の表の説明を参照してください。
outputType string 必須 出力タイプ 現在、サポートされているのは LogService のみです。
outputDetail json 必須 次の表の説明を参照してください。
logSample string 省略可能 Logtail 設定のログ サンプル。 ログサイズは 1,000 バイトを超えることはできません。

inputDetail の内容

属性名 データ型 必須/省略可能 説明
logType string 必須 ログタイプ (現時点で common_reg_log のみをサポート)
LogPath string 必須 ログが存在する親ディレクトリ (例:/var/logs/)
filePattern string 必須 ログ ファイルのパターン (例:access*.log)
Localstorage boolean 必須 ローカル キャッシュをアクティブにするかどうかを設定します。 Log Service へのリンクが切断されると、1 GB のログをローカルにキャッシュできます。
timeFormat string 必須 ログ時刻の形式 (例:%Y/%m/%d %H:%M:%S)
logBeginRegex string 必須 最初のログ行の特性 (正規表現) 。複数の行で構成されるログと一致させるために使用します。
Regex string 必須 ログの抽出に使用される正規表現。
key array 必須 ログの抽出後に生成されたキー
filterKey array 必須 ログのフィルター処理に使用されるキー。 ログは、対応する filterRegex 列で指定された正規表現とキー値が一致する場合のみ、要件を満たします。
filterRegex array 必須 各 filterKey に対応する正規表現。 フィルターの長さは、filterKey の長さと同じでなければなりません。
topicFormat string 省略可能 トピック生成モード。 次の 4 つのモードがサポートされています。
  • ログファイルパスの一部 (例://var/log/( *).log ) をコードとして使用します。
  • none は、トピックが空であることを示します。
  • default は、ログファイルパスをトピックとして使用することを示します。
  • group_topic は、この設定をトピックとして適用するマシン グループのトピック属性を使用することを示します。
preserve boolean 省略可能 true は、監視対象のディレクトリがタイムアウトしないことを示します。false は、監視対象ディレクトリのタイムアウトが 30 分であることを示します (デフォルトは 0)。
preserveDepth integer 省略可能 preserve が false に設定されている場合は、監視タイムアウトなしでディレクトリの深さを指定します。 最大深度は 3 です。
fileEncoding string 省略可能 utf8 と gbk の 2 種類がサポートされています。

outputDetail の内容

属性名 データ型 必須/省略可能 説明
logstoreName string 必須 Logstore 名
リクエストヘッダー

CreateConfig API には特別なリクエストヘッダーはありません。 Log Service API のパブリックリクエストヘッダーの詳細については、「パブリックリクエストヘッダー」をご参照ください。

レスポンスヘッダー

CreateConfig API には特別なレスポンスヘッダーはありません。 Log Service API のパブリックレスポンスヘッダーの詳細については、「パブリックレスポンスヘッダー」をご参照ください。

レスポンス要素

返される HTTP ステータス コードは 200 です。

エラーコード

また、 一般的なエラー コード の他に、CreateConfig API から次の特殊なエラー コードが返される場合があります。

HTTP ステータスコード エラーコード エラーメッセージ
400 ConfigAlreadyExist config {Configname} already exists
400 InvalidParameter invalid config resource json
500 InternalServerError internal server error
詳細な説明

作成中にエラーが発生した場合 (たとえば、設定が既に存在する、形式が正しくない、必要なパラメーターが見つからない、クォータを超えているなど) 、設定の作成は失敗します。

リクエスト例
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 <yourAccessKeyId>:<yourSignature>'
}
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'
}