# もとファイルの内容と完全一致でlogをS3へ出力する方法

**URL:** https://discuss.elastic.co/t/log-s3/79688
**Category:** 日本語による質問・議論はこちら
**Created:** [March 23, 2017, 5:47am UTC](https://discuss.elastic.co/t/log-s3/79688 "2017-03-23T05:47:07Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![tr8](https://avatars.discourse-cdn.com/v4/letter/t/74df32/32.png) [@tr8](https://discuss.elastic.co/u/tr8)
#### Post date: [March 23, 2017, 5:47am UTC](https://discuss.elastic.co/t/log-s3/79688/1 "2017-03-23T05:47:07Z")

</div>

下記課題の解決方法を教えていただきたいです。

■やりたい事  
もとのファイルの内容と完全一致でlogをS3へ出力する

■ステップ  
１．filebeatでサーバAにあるlogをinputし、サーバBのlogstashへoutputする  
２．サーバBのlogstashでサーバAからのinputをS3へoutputする

■課題  
下記2点の観点でlogをうまくS3に出力できておりません。  
１．logの順番が変わっている（timestampの順に出力したい）  
２．timestampとホスト名がlogの前に出力されている

S3にあるべきlog（もとのlog）

```
[2017-03-05 19:35:00] [{LOGLEVEL}] [{LOGNAME}] {MESSAGE}
[2017-03-05 19:35:01] [{LOGLEVEL}] [{LOGNAME}] {MESSAGE}
[2017-03-05 19:35:11] [{LOGLEVEL}] [{LOGNAME}] {MESSAGE}
[2017-03-05 19:35:13] [{LOGLEVEL}] [{LOGNAME}] {MESSAGE}

```

S3にある現状のlog

```
2017-03-05T19:35:11.000Z {HOSTNAME} [2017-03-05 19:35:11] [{LOGLEVEL}] [{LOGNAME}] {MESSAGE}
2017-03-05T19:35:13.000Z {HOSTNAME} [2017-03-05 19:35:13] [{LOGLEVEL}] [{LOGNAME}] {MESSAGE}
2017-03-05T19:35:00.000Z {HOSTNAME} [2017-03-05 19:35:00] [{LOGLEVEL}] [{LOGNAME}] {MESSAGE}
2017-03-05T19:35:01.000Z {HOSTNAME} [2017-03-05 19:35:01] [{LOGLEVEL}] [{LOGNAME}] {MESSAGE}

```

よろしくお願いいたします。

---

<div class="post-metadata">

### Author: ![st1t](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/st1t/32/9188_2.png) [@st1t](https://discuss.elastic.co/u/st1t)
#### Post date: [March 23, 2017, 5:16pm UTC](https://discuss.elastic.co/t/log-s3/79688/2 "2017-03-23T17:16:06Z")

</div>

> １．logの順番が変わっている（timestampの順に出力したい）

WEBサーバへ人力リロードレベルだと再現しなかったのですが、  
負荷かけたら変わる気がするので時間がある時にもう少し試してみようと思います。

> ２．timestampとホスト名がlogの前に出力されている

こちらに関しては、  
Logstashのs3の設定にcodecのところに以下のようなformat設定を入れたら解決出来るようです。

```auto
output {
  s3{
    access_key_id => "XXXX"
    secret_access_key => "XXXX"
    region => "ap-northeast-1"
    bucket => "bucket"
    temporary_directory => "/tmp/out-s3"
    time_file => 3
    codec => line { format => "%{message}" }
    canned_acl => "private"
  }
}

```

> **[S3 output plugin | Logstash Reference \[8.11\] | Elastic](https://www.elastic.co/guide/en/logstash/current/plugins-outputs-s3.html)**

余談ですがこちらの公式ドキュメントのUsageはformatの表記がこのままだと手元だと以下エラーでうまくいかないかも・・・？

```auto
[2017-03-24T01:05:07,823][ERROR][logstash.outputs.s3] Unknown setting 'format' for s3

```

もしもう少し見てみて変えたほうが良さそうでしたら、  
来週にでもlogstash-output-s3のUsage表記はPR出してみようかと思います。

codecプラグインに関してはこの辺りを参照してもらえれば良いと思います。

> **[Codec plugins | Logstash Reference \[8.11\] | Elastic](https://www.elastic.co/guide/en/logstash/current/codec-plugins.html)**

---

<div class="post-metadata">

### Author: ![tr8](https://avatars.discourse-cdn.com/v4/letter/t/74df32/32.png) [@tr8](https://discuss.elastic.co/u/tr8)
#### Post date: [March 24, 2017, 12:22am UTC](https://discuss.elastic.co/t/log-s3/79688/3 "2017-03-24T00:22:39Z")

</div>

ご回答ありがとうございます！

> １．logの順番が変わっている（timestampの順に出力したい）

pipeline.workersを１にしてみるとうまく出力できている感じです。

> ２．timestampとホスト名がlogの前に出力されている

codecを試してみます！

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [April 21, 2017, 12:22am UTC](https://discuss.elastic.co/t/log-s3/79688/4 "2017-04-21T00:22:45Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
