Source API メソッドと例
Collector 管理 API により、HTTP エンドポイントから Collector や Source を管理できます。このトピックでは、sourceType
パラメータを指定することであらゆるタイプの Installed Collector と Hosted Collector の Source を作成できる、Source API メソッドについて説明します。ローカル設定ファイル管理を使用すると、Collector 管理 API を通じて Source を管理できなくなります。
詳細については以下のトピックを参照してください。
- 「API 認証」では、API 認証オプションについて説明します。
- 「Sumo Logic エンドポイント」では、API クライアントを Sumo Logic API に接続するために使用する API エンドポイントのリストを提供します。
- 「Collector API メソッドと例」では、Collector の API メソッドについて説明します。
- 「JSON を使用した Source の設定」では、Source パラメータについて説明します。
応答フィールド
「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 タイプが無効です。 |