'Heroku Labs: HTTPS ドレイン'
最終更新日 2020年03月09日(月)
This article is a work in progress, or documents a feature that is not yet released to all users. This article is unlisted. Only those with the link can access it.
Table of Contents
この Heroku Labs の機能により、アプリログを HTTP(S) エンドポイントにドレインするための実験的サポートが追加されます (TCP syslog 経由でアプリログをドレインする方法の代わりの手段)。
Labs を通じて追加された機能は実験的であり、予告なく変更または削除される場合があります。
仕組み
HTTP(S) ドレインの追加
$ heroku drains:add https://user:pass@myendpoint.com/logs -a myapp
HTTP(S) ドレインエンドポイント
Logplex はログメッセージをバッファに入れ、POST
リクエストによりメッセージのバッチを HTTP(S) エンドポイントに送信します。 POST
本文は、syslog 形式のメッセージを含み、syslog TCP プロトコルオクテットカウントフレーミング方法を使用して組み立てられます。
120 <40>1 2012-11-30T06:45:29+00:00 heroku web.3 d.73ea7440-270a-435a-a0ea-adf50b4e5f5a - State changed from starting to up
156 <40>1 2012-11-30T06:45:26+00:00 heroku web.3 d.73ea7440-270a-435a-a0ea-adf50b4e5f5a - Starting process with command `bundle exec rackup config.ru -p 24405`
ログメッセージには、ドレインされたログメッセージの発生元をさらに検証するために使用できるドレイントークン (そのドレインに固有) が含まれています。ドレインのトークンは heroku drains
コマンドで取得できます。
$ heroku drains -a myapp
https://user:pass@myendpoint.com/logs (d.73ea7440-270a-435a-a0ea-adf50b4e5f5a)
ドレインのセキュリティ保護
ドレインのセキュリティ保護は、HTTPS ドレインエンドポイントと HTTP 基本認証を組み合わせることで可能になりました。
有効化
$ heroku labs:enable https-drains -a myapp
Enabling https-drains for myapp... done
WARNING: This feature is experimental and may change or be removed without notice.
無効化
$ heroku labs:disable https-drains -a myapp
Disabling https-drains for myapp... done