概要
以前Logentriesでエラー監視 - Carpe Diemでエラーログの監視方法を紹介しました。
ところがこのLogentriesで利用できていたアラート機能が有料プランのみになってしまったため、なにか無料で使えるサービスはないかと探したところ、この
Papertrail - cloud-hosted log management, live in seconds
がありましたので設定方法などを紹介します。
フリープランだと以下の条件で機能が使えます。
- 検索可能な期間は直近48時間
- 7日間ログを保持
- アラート可
- 1月あたりの転送量の上限は100MB
注意として転送量上限を超えると新しいログが破棄されるので、無駄なログを送らないようにしてください。
環境
- remote_syslog2 0.19
- Ubuntu 14.04
- Nginx 1.4.6
アカウント作成
Papertrail - cloud-hosted log management, live in seconds
でアカウントを作成してください。
次に「Add your first system」で今回ログをとるものを設定します。
Linuxのシステムログを転送する場合
インストール
シェルスクリプトが用意されているのでそれを実行します。
$ wget -qO - --header="X-Papertrail-Token: xxxxxxxxxxxxxxxxxxxx" \ > https://papertrailapp.com/destinations/4295672/setup.sh | sudo bash
動作確認
ダッシュボードに新しく追加されています。
中ではちゃんとログが転送されています。
テキストログをtailして転送する場合
インストール
今回はNginxのログを転送します。テキストログを転送する場合は以下のツールを使います。
バージョンは0.19以降を使ってください。それより古いとログローテーション時に新しいファイルをきちんと見てくれませんでした。
$ wget https://github.com/papertrail/remote_syslog2/releases/download/v0.19/remote_syslog_linux_amd64.tar.gz $ tar xzf ./remote_syslog*.tar.gz $ cd remote_syslog $ sudo cp ./remote_syslog /usr/local/bin
デーモンとして起動したい場合はgithubに起動スクリプトがあるのでそれを使います。
remote_syslog2/examples at master · papertrail/remote_syslog2 · GitHub
$ sudo cp examples/remote_syslog.init.d /etc/init.d/remote_syslog $ sudo chmod 755 /etc/init.d/remote_syslog $ sudo update-rc.d remote_syslog defaults
設定
PapertrailはLogentriesとは異なり、トークンでデータを転送せずにドメインとポートでユーザを判別します。
SettingのLog Destinationを元に、/etc/log_files.yml
に以下のように設定します。
files: - /var/log/nginx/access.log destination: host: logs.papertrailapp.com port: 12345 protocol: tls
※↑はダミーです
設定できたら起動します。
$ sudo service remote_syslog start
動作確認
Nginxにアクセスしてみると以下のようになりました。
アラート設定
404の時にアラートがなるようにしてみましょう。
404で反応するようにします。
次は通知ツールの選択です。
アラートが飛ぶ頻度などを設定します。
問題なく設定できると以下のようにアラートが飛びます。