Amazon S3 バケットで生成されたログを読み取るように logstash を設定しようとしましたが、成功しませんでした。以下は詳細です:
- ec2 インスタンスに logstash をインストールしました
- ログはすべて s3 バケット内の gz ファイルです
- conf ファイルは次のようになります。
入力 {
s3 {
access_key_id => "MY_ACCESS_KEY_ID"
バケット => "MY_BUCKET"
地域 => "MY_REGION"
secret_access_key => "MY_SECRET_ACESS_KEY"
プレフィックス => "/"
タイプ => "s3"
add_field => { ソース => gzfiles }
}
}
フィルター {
[タイプ] == "s3" {
csv {
列 => [ 「日付」、「時刻」、「x-edge-location」、「sc-bytes」、「c-ip」、「cs-method」、「Host」、「cs-uri-stem」、 「sc-status」、「Referer」、「User-Agent」、「cs-uri-query」、「Cookie」、「x-edge-result-type」、「x-edge-request-id」]
}
}
if([メッセージ] =~ /^#/) {
落とす{}
}
}
出力 {
エラスティックサーチ {
ホスト => "ELASTICSEARCH_URL" プロトコル => "http"
}
}