Amazon Simple Storage Service (S3) オブジェクトをSimple Log Serviceにインポートできます。 オブジェクトがインポートされた後、Simple log Serviceのオブジェクト内のログデータに対して操作を実行できます。 たとえば、ログデータを照会、分析、変換できます。 サイズが5 GBを超えない単一のS3オブジェクトのみをSimple Log Serviceにインポートできます。 圧縮オブジェクトをインポートする場合、圧縮後のオブジェクトのサイズは5 GBを超えることはできません。
前提条件
ログファイルはS3にアップロードされます。
プロジェクトと Logstore が作成済みである必要があります。 詳細については、「プロジェクトの作成」および「Logstore の作成」をご参照ください。
S3リソースを管理する権限を付与するカスタムポリシーが作成されます。 詳細については、「カスタム権限」をご参照ください。 次のサンプルコードは、カスタムポリシーの例を示しています。
説明カスタムポリシーの作成後、S3オブジェクトをSimple Log Serviceにインポートできます。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::your_bucket_name", "arn:aws:s3:::your_bucket_name/*" ] } ] }
データインポート設定の作成
にログインします。Simple Log Serviceコンソール.
表示されるページの右側で、[クイックデータのインポート] をクリックします。 [データのインポート] ダイアログボックスの [データインポート] タブで、[S3-データインポート] をクリックします。
プロジェクトとLogstoreを選択します。 [次へ] をクリックします。
[設定のインポート] ステップで、データのインポート設定を作成します。
[設定のインポート] ステップで、次のパラメーターを設定します。
パラメーター
説明
ジョブ名
データインポートジョブの名前。
表示名
データインポートジョブの表示名。
ジョブの説明
データインポートジョブの説明。
S3リージョン
S3バケットが存在するリージョン。 S3バケットには、Simple Log ServiceにインポートするS3オブジェクトが格納されます。
AWS AccessKey ID
AWSアカウントのAccessKey ID。
重要AccessKeyペアに、管理するAWSリソースにアクセスする権限があることを確認します。
AWS Secret AccessKey
AWSアカウントのSecret AccessKey。
ファイルパスプレフィックスのフィルタリング
S3オブジェクトのディレクトリ。 このパラメーターを設定すると、インポートするS3オブジェクトをより効率的に見つけることができます。 たとえば、インポートするS3オブジェクトがcsv /ディレクトリに格納されている場合、このパラメーターをcsv /に設定できます。
このパラメーターを空のままにすると、システムはS3バケット全体をトラバースしてS3オブジェクトを見つけます。
説明このパラメーターを設定することを推奨します。 S3バケット内のS3オブジェクトの数が多いほど、バケット全体をトラバースするときのデータインポート効率が低くなります。
ファイルパスの正規表現によるフィルタリング
S3オブジェクトをディレクトリでフィルタリングするために使用する正規表現。 このパラメーターを設定すると、インポートするS3オブジェクトをより効率的に見つけることができます。 名前が正規表現と一致するオブジェクトのみインポートされます。 名前には、オブジェクトのパスが含まれます。 デフォルトでは、このパラメーターは空です。これは、フィルタリングが実行されないことを示します。
たとえば、インポートするS3オブジェクトの名前が
stdata/csv/bill.csv
の場合、このパラメーターを(testdata/csv/)(.*)
に設定できます。正規表現をデバッグする方法の詳細については、正規表現をデバッグするにはどうすればよいですか?
ファイル変更時間のフィルタリング
S3オブジェクトをフィルタリングする変更時間。 このパラメーターを設定すると、インポートするS3オブジェクトをより効率的に見つけることができます。 有効な値:
すべて: 指定された条件を満たすすべてのS3オブジェクトをインポートするには、このオプションを選択します。
特定の時刻から: ある時点以降に変更されたS3オブジェクトをインポートするには、このオプションを選択します。
特定の時間範囲: 時間範囲内で変更されたS3オブジェクトをインポートするには、このオプションを選択します。
データフォーマット
S3オブジェクトの形式。 有効な値:
CSV: S3オブジェクトの最初の行をフィールド名として指定するか、カスタムフィールド名を指定できます。 最初の行を除くすべての行は、ログフィールドの値として解析されます。
1行のJSON: S3オブジェクトは1行ずつ読み取られます。 行ごとに JSON オブジェクトとして解析されます。 JSON オブジェクトのフィールドはログフィールドです。
単一行テキストログ: S3オブジェクトの各行はログとして解析されます。
複数行のテキストログ: S3オブジェクトの複数の行がログとして解析されます。 ログの最初の行または最後の行に一致するように正規表現を指定できます。
圧縮フォーマット
S3オブジェクトの圧縮形式。 Simple Log Serviceは、指定された形式に基づいてS3オブジェクトを解凍してデータを読み取ります。
エンコード形式
S3オブジェクトのエンコード形式。 UTF-8およびGBKは支えられます。
新しいファイルのチェックサイクル
S3オブジェクトの指定されたディレクトリに新しいオブジェクトが常に生成される場合は、ビジネス要件に基づいて新しいファイルチェックサイクルを設定できます。 このパラメーターを設定すると、データインポートジョブはバックグラウンドで継続的に実行され、新しいオブジェクトが自動的に検出され、定期的に読み取られます。 システムは、S3オブジェクトのデータがSimple Log Serviceに繰り返し書き込まれないようにします。
S3オブジェクトの指定されたディレクトリに新しいオブジェクトが生成されなくなった場合、新しいファイルチェックサイクルの値を [チェックしない] に変更できます。 次に、指定された条件を満たすすべてのオブジェクトが読み取られた後、データインポートジョブは自動的に終了します。
ログタイム設定
時刻フィールド
時刻フィールドです。 S3オブジェクトの時間列の名前を入力します。 データ形式をCSVまたは単一行JSONに設定した場合、このパラメーターを設定する必要があります。 ログ時間を指定します。
正規表現で時間を抽出
ログ時間の抽出に使用する正規表現。
たとえば、サンプルログが127.0.0.1 - - [10/Sep/2018:12:36:49 0800] "GET /index.html HTTP/1.1" の場合、正規表現の抽出時間を [0-9]{0,2}\/[0-9a-zA-Z]+\/[0-9:,]+ に設定できます。
説明他のデータ型で時刻フィールドの一部を抽出する場合は、正規表現を指定します。
時刻フィールドの形式
時間フィールドの値を解析するために使用する時間形式。
Java SimpleDateFormatクラスでサポートされている時間形式を指定できます。 例:
yyyy-MM-dd HH:mm:ss
時刻形式の構文の詳細については、「Class SimpleDateFormat」をご参照ください。 一般的な時刻形式の詳細については、「時刻形式」をご参照ください。エポック時間形式を指定できます。エポック、epochMillis、epochMicro、またはepochNanoを指定できます。
タイムゾーン
timeフィールドの値のタイムゾーン。 Time Field Formatの値がエポック時間形式の場合、このパラメーターを設定する必要はありません。
ログを解析するときに夏時間を使用する場合は、UTCでタイムゾーンを選択できます。 それ以外の場合は、GMTでタイムゾーンを選択します。
説明デフォルトでは、UTC + 8が使用されます。
データ形式をCSVに設定した場合、追加のパラメーターを設定する必要があります。 下表に追加のパラメーターを示します。
データ形式をCSVに設定するときの追加パラメーター
パラメーター
説明
デリミタ
ログの区切り文字です。 デフォルト値は、コンマ (,) です。
引用符
CSV フォーマットの文字列を囲むために使用される引用符です。
エスケープ文字
ログのエスケープ文字です。 デフォルト値はバックスラッシュ (\) です。
最大行数
[フィールド名として最初の行] をオンにすると、CSVファイルの最初の行がフィールド名の抽出に使用されます。
カスタムフィールド
[フィールド名としての最初の行] をオフにすると、カスタムフィールド名を指定できます。 複数のフィールド名はコンマ (,) で区切ります。
スキップ行数
スキップされる行数です。 たとえば、このパラメーターを1に設定した場合、CSVファイルの1行目はスキップされ、2行目からログ収集が開始されます。
データ形式を複数行のテキストログに設定するときの追加パラメーター
パラメーター
説明
正規表現に一致する位置
正規表現の使用方法です。
1行目に一致する正規表現: このオプションをオンにすると、指定した正規表現がログの1行目に一致するために使用されます。 一致しない行は、指定した行の最大数に達するまでログの一部として収集されます。
最後の行に一致する正規表現: このオプションをオンにすると、指定した正規表現がログの最後の行に一致するために使用されます。 一致しない行は、指定した行の最大数に達するまで、次のログの一部として収集されます。
正規表現
正規表現を入力します。 ログの内容に基づいて正規表現を指定します。
正規表現をデバッグする方法の詳細については、正規表現をデバッグするにはどうすればよいですか?
最大ライン
ログに許可される最大行数。
[プレビュー] をクリックして、インポート結果をプレビューします。
結果を確認したら、[次へ] をクリックします。
データをプレビューし、インデックスを設定し、[次へ] をクリックします。
デフォルトでは、Simple Log Serviceでフルテキストインデックスが有効になっています。 手動モードまたは自動モードで収集したログに基づいてフィールドインデックスを設定することもできます。 自動モードでフィールドインデックスを設定するには、[自動インデックス生成] をクリックします。 これにより、Simple Log Serviceは自動的にフィールドインデックスを作成します。 詳細については、「インデックスの作成」をご参照ください。
重要ログをクエリおよび分析する場合は、フルテキストインデックス作成またはフィールドインデックス作成を有効にする必要があります。 フルテキストインデックスとフィールドインデックスの両方を有効にすると、フィールドインデックスのみが使用されます。
[クエリログ] をクリックします。 表示されるクエリと分析ページで、S3データがインポートされているかどうかを確認します。
約 1 分待ちます。 必要なS3データが存在する場合、データがインポートされます。
データインポート設定の表示
データインポート設定を作成した後、Simple Log Serviceコンソールで設定の詳細と関連する統計レポートを表示できます。
[プロジェクト一覧] セクションで、データインポート設定が属するプロジェクトをクリックします。
On the タブで、データインポート設定が属するLogstoreをクリックし、 データインポート設定の名前をクリックします。
On theインポート設定の概要ページで、データインポート設定の基本情報と統計レポートを表示します。
[インポート設定の概要] ページでは、データインポート設定に対して以下の操作を実行できます。
データインポート設定の変更
データインポート設定を変更するには、[設定の編集] をクリックします。 詳細については、「設定のインポート」をご参照ください。
データインポートジョブの開始
データインポートジョブを開始または再開するには、[開始] をクリックします。
データインポートジョブの停止
データインポートジョブを停止するには、[停止] をクリックします。
データインポート設定の削除
データインポート設定を削除するには、[設定の削除] をクリックします。
警告データインポート設定が削除された後、復元することはできません。
課金
Simple Log Service のデータインポート機能に対しては課金されません。 ただし、この機能はAWS APIを呼び出します。 生成されたトラフィックとリクエストに対してAWSによって課金されます。 S3オブジェクトをインポートするときに発生する1日あたりの料金は、次の式を使用して計算されます。 AWSの請求書で料金を表示できます。
フィールド | 説明 |
| S3からSimple Log Serviceに1日あたりにインポートされるデータの合計サイズ。 単位: GB。 |
| インターネット上を流れるアウトバウンドデータのGBあたりの料金。 |
| 10,000 PUTリクエストあたりの料金。 |
| 10,000 GETリクエストあたりの料金。 |
| システムが新しいオブジェクトを検出する間隔。 単位: 分。 新しいファイルチェックサイクルを設定して、データインポート設定を作成するときの間隔を指定できます。 |
| File Path Prefix Filterに基づいて取得されるオブジェクトの数。 |
よくある質問
問題の説明 | 考えられる原因 | 解決策 |
プレビュー中にデータが表示されません。 | S3バケットにはオブジェクトが含まれていません。オブジェクトにはデータが含まれていません。 |
|
文字化けが発生しています。 | データフォーマット、圧縮形式、またはエンコード形式が正しく設定されていません。 | S3オブジェクトの実際の形式を確認し、データ形式、圧縮形式、またはエンコーディング形式を変更します。 既存の文字化け文字を処理するには、Logstore とデータインポート設定を作成します。 |
Simple log Serviceに表示されるログ時間は、実際のログ時間とは異なります。 | データインポート設定で時間フィールドが指定されていないか、指定された時間形式またはタイムゾーンが無効です。 | 時間フィールドを指定するか、有効な時間形式とタイムゾーンを指定します。 詳細は、「ログタイムの設定」をご参照ください。 |
データのインポート後に、データをクエリまたは分析できません。 |
|
|
インポートされたデータエントリの数が想定を下回っています。 | 一部のS3オブジェクトには、サイズが3 MBを超える行が含まれています。 この場合、ラインはインポート中に破棄されます。 詳細については、「コレクションの制限」をご参照ください。 | S3オブジェクトにデータを書き込むときは、行のサイズが3 MBを超えないようにしてください。 |
S3オブジェクトの数とデータの総量は大きいですが、インポート速度は期待に応えません。 ほとんどの場合、インポート速度は 80 MB/s に達します。 | Logstore 内のシャードの数が少なすぎます。 詳細については、「パフォーマンスの制限事項」をご参照ください。 | Logstore 内のシャードの数が少ない場合は、シャードの数を 10 以上に増やして、遅延を確認します。 詳細については、「シャードの管理」をご参照ください。 |
一部のS3オブジェクトをSimple Log Serviceにインポートできませんでした。 | フィルタ条件の設定が無効であるか、オブジェクトのサイズが5 GBを超えています。 詳細については、「コレクションの制限」をご参照ください。 |
|
複数行テキストログ形式のS3オブジェクトの解析でエラーが発生しました。 | ログの最初の行または最後の行に一致するように指定された正規表現は無効です。 | ログの最初の行または最後の行に一致するように指定された正規表現が有効かどうかを確認します。 |
新しいS3オブジェクトをインポートするまでの待ち時間が予想よりも長くなります。 | File Path Prefix Filterに基づいて取得される既存のS3オブジェクトの数が上限を超えています。 | File Path Prefix Filterに基づいて取得される既存のS3オブジェクトの数が100万を超える場合は、File Path Prefix Filterに正確な値を指定して、より多くのデータインポートジョブを作成することを推奨します。 オンにしない場合、新しいファイルの検出効率が低下します。 |
エラー処理
エラー | 説明 |
ファイルの読み取り失敗 | ネットワーク例外が発生するか、オブジェクトが破損しているためにS3オブジェクトの完全な読み取りに失敗した場合、データインポートジョブは自動的にオブジェクトの読み取りを再試行します。 オブジェクトの読み取りを 3 回再試行しても失敗した場合、そのオブジェクトはスキップされます。 再試行間隔は、新規ファイルチェックサイクルの値と同じです。 新しいファイルチェックサイクルがNever Checkに設定されている場合、再試行間隔は5分です。 |
圧縮フォーマットの解析エラー | S3オブジェクトが無効な形式の場合、データインポートジョブは解凍中にオブジェクトをスキップします。 |
データフォーマットの解析エラー | データの解析に失敗した場合、データインポートジョブは元のテキストコンテンツをログのcontentフィールドに保存します。 |
S3バケット不在 | データインポートジョブは定期的に再試行されます。 S3バケットが再作成されると、データインポートジョブは自動的にインポートを再開します。 |
権限エラー | データがS3バケットから読み取られたとき、またはデータがSimple Log Service Logstoreに書き込まれたときに権限エラーが発生した場合、データインポートジョブは定期的に再試行されます。 エラーが修正されると、データインポートジョブは自動的にインポートを再開します。 権限エラーが発生した場合、データインポートジョブはS3オブジェクトをスキップしません。 エラーが修正されると、データインポートジョブはS3バケット内の未処理のオブジェクトからSimple Log Service Logstoreにデータを自動的にインポートします。 |