メインコンテンツまでスキップ
Sumo Logic Japanese

Source API メソッドと例

Collector 管理 API により、HTTP エンドポイントから Collector や Source を管理できます。このトピックでは、sourceType パラメータを指定することであらゆるタイプの Installed Collector と Hosted Collector の Source を作成できる、Source API メソッドについて説明します。ローカル設定ファイル管理を使用すると、Collector 管理 API を通じて Source を管理できなくなります。

詳細については以下のトピックを参照してください。

レート制限

  • ユーザからのすべての API コールには、最大で毎秒 4 件 (毎分 240 件) の API リクエストというレート制限が適用されます。
  • また、同じアクセス キーには、どの API エンドポイントでも最大で同時に 10 件のリクエストというレート制限が適用されます。

このレートを超えると、rate limit exceeded (レート制限超過) の 429 ステータス コードが返されます。

応答フィールド

「JSON を使用した Source の設定」では、Source パラメータについて説明します。

GET メソッド

List Sources

指定された Collector のすべての Source の情報を取得します。

メソッド: GET Path: /collectors/[collectorId]/sources

パラメータ タイプ 必須 デフォルト 説明
collectorId 整数 はい NA 一意の Collector ID
download ブール 不可 false true に設定すると、応答は Source の JSON 配列となり、新規 Collector の登録に利用できます。

この例では、Collector のすべての Source を取得しています。

リクエスト:

curl -u '<accessId>:<accessKey>' -X GET https://api.sumologic.com/api/v1/collectors/25/sources

応答:

{
  "sources":[{
    "id":101792472,
    "name":"collector_logs",
    "category":"collector_logs",
    "hostName":"dev-host-1",
    "automaticDateParsing":true,
    "multilineProcessingEnabled":true,
    "useAutolineMatching":true,
    "forceTimeZone":false,
    "filters":[],
    "cutoffTimestamp":0,
    "encoding":"UTF-8",
    "pathExpression":"/usr/logs/collector/collector.log*",
    "blacklist":[],
    "sourceType":"LocalFile",
    "alive":true
  },
  ...
  ]
}

この例では、そのまま利用できる CollectorSource の JSON 設定を取得しています。この JSON 設定は新規 Collector の登録に利用できます。

リクエスト:

curl -u '<accessId>:<accessKey>' -X GET https://api.sumologic.com/api/v1/collectors/25/sources?download=true

応答:

{
  "api.version": "v1",
  "sources":[{
    "name":"collector_logs",
    "category":"collector_logs",
    "hostName":"dev-host-1",
    "automaticDateParsing":true,
    "multilineProcessingEnabled":true,
    "useAutolineMatching":true,
    "forceTimeZone":false,
    "filters":[],
    "cutoffTimestamp":0,
    "encoding":"UTF-8",
    "pathExpression":"/usr/logs/collector/collector.log*",
    "blacklist":[],
    "sourceType":"LocalFile"
  },
  ...
  ]
}

ID による Source の取得

指定された Collector と Source に関する情報を取得します。

メソッド: GET Path: /collectors/[collectorId]/sources/[sourceId]

パラメータ タイプ 必須 デフォルト 説明
collectorId 整数 はい NA 一意の Collector ID
sourceId 整数 はい NA 一意の Source ID。
download ブール 不可 false true に設定すると、応答は JSON Source オブジェクトとなり、新規 Source の作成に利用できます。

この例では、指定された ID の Source のデータを取得しています。

リクエスト:

curl -u '<accessId>:<accessKey>' -X GET https://api.sumologic.com/api/v1/collectors/25/sources/101792472

応答:

{
  "source":{
    "id":101792472,
    "name":"collector_gc",
    "category":"collector_gc",
    "hostName":"nite-receiver-1",
    "automaticDateParsing":true,
    "multilineProcessingEnabled":true,
    "useAutolineMatching":true,
    "forceTimeZone":false,
    "filters":[],
    "cutoffTimestamp":0,
    "encoding":"UTF-8",
    "pathExpression":"/usr/sumo/logs/collector/collector.gc.log*",
    "blacklist":[],
    "sourceType":"LocalFile",
    "alive":true
  }
}

この例では、そのまま利用できる指定 ID の Source の JSON 設定を取得しています。この JSON 設定は、複数 Source のフォルダの管理や、API による新規 Source のアップロードに利用できます。

リクエスト:

curl -u '<accessId>:<accessKey>' -X GET https://api.sumologic.com/api/v1/collectors/25/sources/101792472?download=true

応答:

{
  "api.version": "v1",
  "source":{
    "name":"collector_gc",
    "category":"collector_gc",
    "hostName":"nite-receiver-1",
    "automaticDateParsing":true,
    "multilineProcessingEnabled":true,
    "useAutolineMatching":true,
    "forceTimeZone":false,
    "filters":[],
    "cutoffTimestamp":0,
    "encoding":"UTF-8",
    "pathExpression":"/usr/sumo/logs/collector/collector.gc.log*",
    "blacklist":[],
    "sourceType":"LocalFile"
  }
}

POST メソッド

Source の作成

Collector の Source を作成します。リクエスト JSON ファイルの必須風については、「JSON を使用した Source の設定」を参照してください。

メソッド: POST Path: /collectors/[collectorId]/sources

パラメータ タイプ 必須 デフォルト 説明
collectorId 整数 はい NA 一意の Collector ID

この例では、JSON ファイルにパラメータを指定して、ID 10 の Collector でホスト メトリクス Source を作成しています。

リクエスト:

curl -u '<accessId>:<accessKey>' -X POST -H "Content-Type: application/json" -T host_metrics.json https://api.sumologic.com/api/v1/collectors/10/sources

Request JSON (host_metrics.json):

{
  "source":{
    "sourceType":"SystemStats",
    "name":"Host_Metrics",
    "interval":60000,
    "hostName":"my_host",
    "metrics":[
      "CPU_User",
      "CPU_Sys"
    ]
  }
}

応答:

{
   "source": {
      "id": 101833059,
      "name": "Host_Metrics",
      "hostName": "my_host",
      "automaticDateParsing": true,
      "multilineProcessingEnabled": true,
      "useAutolineMatching": true,
      "contentType": "HostMetrics",
      "forceTimeZone": false,
      "filters": [
         {
            "filterType": "Exclude",
            "name": "Filter keyword",
            "regexp": "(?s).*EventCode = (?:700|701).*Logfile = \"Directory Service\".*(?s)"
         }
      ],
      "cutoffTimestamp": 0,
      "encoding": "UTF-8",
      "interval": 60000,
      "metrics": [
         "CPU_User",
         "CPU_Sys"
      ],
      "sourceType": "SystemStats",
      "alive": true
   }
}

上記のフィルタ値は、キーワードを除外するための例です。フィルタ値は、Source の処理ルールを一括編集するために指定されています。利用できるフィルタ タイプの詳細については、「JSON を使用した処理ルールの作成」を参照してください。

PUT メソッド

Source の更新

既存の Source を更新します。変更可能なすべてのフィールドを定義し、変更不可のフィールドには現在の値を指定しなければなりません。

Source を更新する際には、先行する GET リクエストのヘッダに返された ETag を If-Match ヘッダに指定する必要があります。

メソッド: PUT Path: /collectors/[collectorId]/sources/[sourceId]

パラメータ タイプ 必須 デフォルト 説明
collectorId 整数 はい NA 一意の Collector ID
sourceId 整数 はい NA 一意の Source ID。

この例では、上記の例で作成したホスト メトリクス Source を更新して、interval パラメータ値を 15000 に変更しています。

まず、GET リクエストで -v フラグを指定して、ETag ヘッダの値を取得します。

最初の GET リクエスト:

curl -v -u '<accessId>:<accessKey>' -X GET https://api.sumologic.com/api/v1/collectors/15/sources/101833059

最初の GET 応答:

< HTTP/1.1 200 OK
< ETag: "5f6bbe49f8b5a19dd43c806411225a5f"
...
{
  "source":{
    "id":101833059,
    "name":"Host_Metrics",
    "hostName":"my_host",
    ...

次に、Source の JSON 属性を必要に応じて修正し (この例では interval パラメータを 15000 に変更します)、上記で取得した ETag を If-Match ヘッダに指定した PUT リクエストを使用します。

リクエスト:

curl -u '<accessId>:<accessKey>' -X PUT -H "Content-Type: application/json" -H "If-Match: \"5f6bbe49f8b5a19dd43c806411225a5f\"" -T updated_host_metrics.json https://api.sumologic.com/api/v1/collectors/15/sources/101833059

リクエスト JSON (updated_host_metrics.json)

{
   "source": {
      "id": 101833059,
      "name": "Host_Metrics",
      "hostName": "my_host",
      "automaticDateParsing": true,
      "multilineProcessingEnabled": true,
      "useAutolineMatching": true,
      "contentType": "HostMetrics",
      "forceTimeZone": false,
      "filters": [
         {
            "filterType": "Exclude",
            "name": "Filter keyword",
            "regexp": "(?s).*EventCode = (?:700|701).*Logfile = \"Directory Service\".*(?s)"
         }
      ],
      "cutoffTimestamp": 0,
      "encoding": "UTF-8",
      "interval": 15000,
      "metrics": [
         "CPU_User",
         "CPU_Sys"
      ],
      "sourceType": "SystemStats",
      "alive": true
   }
}

上記のフィルタ値は、キーワードを除外するための例です。フィルタ値は、Source の処理ルールを一括編集するために指定されています。利用できるフィルタ タイプの詳細については、「JSON を使用した処理ルールの作成」を参照してください。

応答:

{
   "source": {
      "id": 101833059,
      "name": "Host_Metrics",
      "hostName": "my_host",
      "automaticDateParsing": true,
      "multilineProcessingEnabled": true,
      "useAutolineMatching": true,
      "contentType": "HostMetrics",
      "forceTimeZone": false,
      "filters": [
         {
            "filterType": "Exclude",
            "name": "Filter keyword",
            "regexp": "(?s).*EventCode = (?:700|701).*Logfile = \"Directory Service\".*(?s)"
         }
      ],
      "cutoffTimestamp": 0,
      "encoding": "UTF-8",
      "interval": 15000,
      "metrics": [
         "CPU_User",
         "CPU_Sys"
      ],
      "sourceType": "SystemStats",
      "alive": true
   }
}

DELETE メソッド

指定された Collector から指定された Source を削除します。

メソッド: DELETE Path: /collectors/[collectorId]/sources/[sourceId]

パラメータ タイプ 必須 デフォルト 説明
collectorId 整数 はい NA 一意の Collector ID
sourceId 整数 はい NA 一意の Source ID。

この例では Source を削除しています。

curl -u '<accessId>:<accessKey>' -X DELETE https://api.sumologic.com/api/v1/collectors/15/sources/101833059

応答: 応答に本文はなく、200 OK の応答コードのみが返されます。

Source API のエラー コードとメッセージ

コード メッセージ
BadRequestBladeId リクエスト本文に無効な Source ID が含まれています。
CannotModifySources Collector が JSON モードであるため、API を使用して Source を作成、削除、または更新することはできません。
CollectorDescriptionTooLong 説明は 1024 文字以内で指定してください。
CollectorNameTooLong 名前は 128 文字以内で指定してください。
createValidationError 指定された ID が無効です。
DuplicateResourceName 同じ名前のリソースがすでに存在します。
EmptySourceType Source タイプを指定する必要があります。
InvalidSourceType リクエストされた操作に対して Source タイプが無効です。
  • この記事は役に立ちましたか?