すべての S3 バケット ログファイルを継続的に Logstash サーバーにプルするスクリプトを作成したので、このプル リクエストのパターンを使用して解析できます。残念ながら、スクリプトがログファイルに追加するのではなく、最初からログファイルを再作成することを考えると、Logstash のfile
入力には新しい変更が見られません。何か案は?
以下のスクリプト:
#!/usr/bin/ruby
require 'rubygems'
require 'aws/s3'
# for non-us buckets, we need to change the endpoint
AWS.config(:s3_endpoint => "s3-eu-west-1.amazonaws.com")
# connect to S3
s3 = AWS::S3.new(:access_key_id => S3_ACCESS_KEY, :secret_access_key => S3_SECRET_KEY)
# grab the bucket where the logs are stored
bucket = s3.buckets[BUCKET_NAME]
File.open("/var/log/s3_bucket.log", 'w') do |file|
# grab all the objects in the bucket, can also use a prefix here and limit what S3 returns
bucket.objects.with_prefix('staticassets-logs/').each do |log|
log.read do |line|
file.write(line)
end
end
end
何か助けはありますか?ありがとう!