ElasticBeansTalkにdeployしたRailsアプリのlogをPapertrailで試しに取得する

# 概要
* ElasticBeansTalkのRailsログを[Papertrail](https://papertrailapp.com/)で見る
* [Papertrailの公式](https://help.papertrailapp.com/kb/configuration/configuring-centralized-logging-from-text-log-files-in-unix)に従って進める
* [remote_syslog2](https://github.com/papertrail/remote_syslog2)をインストールして、 `/etc/log_files.yml` の設定ファイルを編集して 再起動すれば [Papertrailのeventsページ](https://papertrailapp.com/events)にログが表示されます

[![Image from Gyazo](https://i.gyazo.com/abc8862e98a930b4acaad23cc703c3ba.png)](https://gyazo.com/abc8862e98a930b4acaad23cc703c3ba)

# 注意
あくまで __試しに取得__ です。DeployもしくはElasticBeansTalkの環境を作り直すと、ログがとれなくなります。

永続的にPapertrailでログを取得したい場合は、[こちらの Papertrail Solution for Rails Applications on ElasticBeanstalk](https://www.thoughtworks.com/mingle/infrastructure/2015/06/10/simple-solution-for-papertrail-on-elasticbeanstalk.html)を参考に行ってください。


# 手順
* remote_syslog2をインストール
* `/etc/log_files.yml` を編集

## remote_syslog2をインストール

* ec2にssh接続します。下記の赤矢印箇所参考にしてください。

[![Image from Gyazo](https://i.gyazo.com/f65f1d03a0e1ed268faac8611be16c1c.png)](https://gyazo.com/f65f1d03a0e1ed268faac8611be16c1c)


* [こちら](https://github.com/papertrail/remote_syslog2/releases)の中からインストールします。

今回はrpmパッケージ[remote_syslog2-0.20-1.x86_64.rpm](https://github.com/papertrail/remote_syslog2/releases/download/v0.20/remote_syslog2-0.20-1.x86_64.rpm)を使います。

wgetでダウンロードして、rpmをインストールします。

```console
wget https://github.com/papertrail/remote_syslog2/releases/download/v0.20/remote_syslog2-0.20-1.x86_64.rpm
sudo rpm -ivh remote_syslog2-0.20-1.x86_64.rpm
```


## 設定ファイル `/etc/log_files.yml` を編集

ベースとなる設定ファイルを取得します。 __Add systems__ をクリックしして、

[![Image from Gyazo](https://i.gyazo.com/ff1021d6d5d02465697a31a90208bb56.png)](https://gyazo.com/ff1021d6d5d02465697a31a90208bb56)

* __app log file__ を選択して、 __download a custom config file__ をクリックしてベースとなる設定ファイルを取得します。

[![Image from Gyazo](https://i.gyazo.com/19b208c67e302cb60caa405ddad04355.png)](https://gyazo.com/19b208c67e302cb60caa405ddad04355)

上記で取得したベースとなるファイルと[こちらの例](https://github.com/papertrail/remote_syslog2/blob/master/examples/log_files.yml.example.advanced)を参考に `/etc/log_files.yml` 作成します。

sudoで行う必要あります。編集は vimとかnanoなどで行ってください。

railsとpumaとnginx_errorのログを取得する設定例です。

ElasticBeansTalkの場合、railsのアプリは `/var/app/current/` にインストールされていますので、railsのログは `/var/app/current/log/production.log` に保存されています。


```/etc/log_files.yml
files:
  - path: /var/app/current/log/production.log # railsのログ
    tag: rails # 名前はなんでもよし
  - path: /var/log/puma/puma.log # pumaのログ
    tag: puma # 名前はなんでもよし
  - path: /var/log/nginx/error.log # nginxのエラーログ
    tag: nginx_error # 名前はなんでもよし
destination:
  host: logs7.papertrailapp.com # download a custom config fileに書かれた値を使ってください。
  port: 12345 # download a custom config fileに書かれた値を使ってください。
  protocol: tls
pid_file: /var/run/remote_syslog.pid
host: server01 # ログ内で区別できるサーバー名を入力する
```

## 再起動
下記のコマンドで再起動する

```
sudo reboot
```

[Papertrailのeventsページ](https://papertrailapp.com/events)にアクセスしてログが表示された成功です。

[![Image from Gyazo](https://i.gyazo.com/abc8862e98a930b4acaad23cc703c3ba.png)](https://gyazo.com/abc8862e98a930b4acaad23cc703c3ba)


# 参考
* [Papertrailでエラーログ監視](https://christina04.hatenablog.com/entry/2017/02/12/154436)
* [herokuでおなじみpapertrailをsakuraで使う。](https://threetreeslight.com/posts/2013/12/02/heroku%E3%81%A7%E3%81%8A%E3%81%AA%E3%81%98%E3%81%BFpapertrail%E3%82%92sakura%E3%81%A7%E4%BD%BF%E3%81%86/)