こんにちは。今年度入社した新人のH.T.です。
今回は「Sumo Logicで取得したログをAWS S3へ送る方法」と、「送ったログをAWS S3からSumo Logicへ戻す方法」をご紹介します。
Sumo LogicにはData Forwardingという機能があります。
こちらの機能を使ってAWS S3へデータ転送をしてみたので、設定方法や手順を紹介させていただきます。
Sumo Logicではログの保存期間が設定されており、保存期間を超過するとログが削除されます。そのため、Sumo Logicで取得したログをAWS S3へ送り、AWS S3でログを保存することで設定された期間よりも長くログを保存しておくことが可能になります。
またAWS S3で保存しているログをSumo Logicへ送り返すことで、今までは削除されていた古いログデータからも調査することができます。
設定の流れ
大まかな設定の流れは以下になります。
1.Sumo LogicからAWS S3へ
- バケットの作成(AWS側)
- ポリシーの作成(AWS側)
- ロールの作成(AWS側)
- Data Forwardingの設定(Sumo Logic側)
- Partitionsの設定(Sumo Logic側)
SumoLogicのログをAWS S3にバックアップとして保管する場合の設定となります。
Sumo LogicからAWS S3へデータ転送についてはこれで完了します。
2.AWS S3 から Sumo Logicへ
- ロールの追加(AWS側)
- ホステッドコレクタの作成(Sumo Logic側)
- ソースの追加(Sumo Logic側)
AWS S3に保管してあるログを、再度SumoLogicで操作したいときに必要な設定となります。AWS S3にバックアップを取るだけの場合はこの設定は不要です。
設定
1.Sumo LogicからAWS S3へ
1-1.バケットの作成
まずはAWS側の設定です。
AWSにログインします。
サービス -> ストレージ -> S3の順にクリックし、「バケットを作成」をクリックします。
一般的な設定のバケット名を入力し、「バケットを作成」をクリックします。
1-2.ポリシーの作成
次にポリシーを作成していきます。
サービス -> セキュリティ、ID、およびコンプライアンス -> IAMの順にクリックします。
「ポリシーを作成」をクリックします。
JSONタブに切り替え、下記「Data Forwarding ポリシー」をコピーして貼り付けます。「your_bucketname」の部分を1-1.で作成したバケットの名前に置き換えてください。
Data Forwarding ポリシー
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"s3:PutObject"
],
"Resource":[
"arn:aws:s3:::your_bucketname/*"
]
}
]
}
「次のステップ:タグ」をクリックします。
「次のステップ:確認」をクリックします。
ポリシーの確認の名前を入力し、「ポリシーの作成」をクリックします。
完了したら、ポリシーが作成されていることを確認してください。
1-3.ロールの作成
サービス -> セキュリティ、ID、およびコンプライアンス -> IAMの順にクリックします。
「ロールを作成」をクリックします。
信頼されたエンティティタイプで「AWSアカウント」を選択します。
また、「別のAWSアカウント」を選択し、「アカウントID」、オプションの「外部IDを要求する」にチェックを入れ、それぞれ次項1-4.で作成するIDを入力し、「次へ」をクリックします。
許可ポリシーにおいて1-2.で作成したポリシーを選択し「次へ」をクリックします。
見つからない場合は「ポリシーを作成」をクリックし、再度作成してください。
ロールの詳細の「ロール名」を入力し、「ロールを作成」をクリックします。
1-4.Data Forwardingの設定(Sumo Logic側)
Manage Data -> Logsの順にクリックし、Data Forwardingタブに移動します。
「+Add Destination」をクリックします。
「Destination Name」、「Bucket Name」を入力します。Bucket Nameには、1-1.で作成したバケット名を入力します。
Role ARNにはAWS側で作成したロールの詳細に表示されるARNをコピーして貼り付けます。
S3 Regionは「Asia Pacific(Tokyo)」に変更します。
ここで表示されているAccount IDとExternal IDをロール作成時(1-3.)に利用します。
1-5.Partitionsの設定(Sumo Logic側)
Manage Data -> Logs -> Partitionsから利用するPartitionを選択しEditをクリックします。
Forwarding Destinationから「Existing Amazon S3 Destination」を選択し、Amazon S3 Destinationは1-4.で作成したDestinationを選択します。
以上でSumo LogicからAWS S3へデータを送る設定は終了となります。
AWSでバケット内にデータが取り込まれているのか確認をしてください。
Data Forwardingの設定以降のログデータのみが順次AWSへ送られます。
設定以前のログデータは送られてきません。
データの取り込みの間隔はデータの取り込みに約5分経過、または100MBのデータが受信されるまでのいずれかの早い方でバッファリングされます。
バッファリングされたデータが新しいCSVファイルに書き込まれ、圧縮後にAWS S3へ転送されます。
2.AWS S3 から Sumo Logicへ
次にAWS S3からSumo Logicにログを戻す方法を紹介します。
以下の設定はAWSで保管してあるログをSumoLogicへ送り、ログ分析などを行う際に必要な設定となります。
2-1.ポリシーを追加します。
1.で作成したバケット、使用するSumo Logicの環境も同じものを想定しているので今回は1-3.で作成したロールにポリシーを追加する方法でご説明します。
※異なるSumo Logicの環境にログを取り込む際は新たにロールを作成する必要がございます。
IAM -> ロール の順にクリックし、作成したロールの詳細画面に移ります。
許可を追加 -> インラインポリシーの作成 をクリックします。
下記「AWS S3 ポリシー」をコピーして貼り付け、「your_bucketname」の部分をバケット名に置き換えます。その後「ポリシーの確認」をクリックします。
{
"Version":"2012-10-17",
"Statement":[
{
"Action":[
"s3:GetObject",
"s3:GetObjectVersion",
"s3:ListBucketVersions",
"s3:ListBucket"
],
"Effect":"Allow",
"Resource":[
"arn:aws:s3:::「your_bucketname」/*",
"arn:aws:s3:::「your_bucketname」"
]
}
]
}
AWS S3 ポリシー
ポリシーの確認で名前を入力し、「ポリシーの作成」をクリックします。
2-2.ホストテッドコレクタの作成
Sumo Logicの画面に移動します。
Manage Data -> Collectionの順にクリックします。
Add Collectorをクリックします。
Hosted Collectorを選択します。
Nameを入力し、Time Zoneを「Asia/Tokyo」に設定します。
確認画面が表示されたら「OK」をクリックします。
2-3.ソースの追加
先ほど作成したホステッドコレクタの「Add Source」をクリックします。
コレクターから「Amazon S3」を選択します。
Name、S3 Region、Bucket Nameをそれぞれ入力します。
Path Expressionは「*」、Collection Should begin は取得を始めたい時間を設定します。
Source Categoryは任意の名前を付けてください。クエリを記述する際に_sourceCategoryのキーとなります。
以上を設定し、Saveをクリックします。
以上で各種設定は終了です。お疲れ様でした。
今回の検証を通して以下の注意点がございました。
・Sumo LogicからAWS S3へForwardingしたデータは自動で付加情報がついてcsv形式で保存されます
・AWS S3から戻したデータは今まで使用していたダッシュボードを適用時にクエリの修正が必要な場合があります
検証を行ってみての感想
AWS S3へ転送することもAWS S3からデータを戻してくることもSumo Logicの機能として備わっているものになります。設定方法を理解すると簡単に設定が行えますのでぜひお試しください!
- カテゴリ:
- Sumo Logic
- 技術情報
- AWS