ログファイル¶
サポート問い合わせの場合は log/ ディレクトリ以下をすべて圧縮して送ってください
log/ 以下のログファイル¶
Sora は log/ ディレクトリ以下にログファイルを出力します。
Sora の運用に関係するログ¶
sora.log
Sora の開始、終了や問題があった場合に出力されますので、まずはこの監視をお願いします
ログローテーションされませんので、ログローテーションをお願いします
週次ログローテーションを推奨します
auth_webhook.log
auth_webhook で外部に通知する処理を全て書き込みます
ログローテーションされませんので、ログローテーションをお願いします
週次ログローテーションを推奨します
session_webhook.log
session_webhook で外部に通知する処理を全て書き込みます
ログローテーションされませんので、ログローテーションをお願いします
週次ログローテーションを推奨します
session_webhook_error.log
session_webhook で外部に通知が失敗した処理を書き込みます
ログローテーションされませんので、ログローテーションをお願いします
週次ログローテーションを推奨します
event_webhook.log
event_webhook で外部に通知する処理を全て書き込みます
ログローテーションされませんので、ログローテーションをお願いします
週次ログローテーションを推奨します
event_webhook_error.log
event_webhook で外部に通知が失敗した処理を書き込みます
ログローテーションされませんので、ログローテーションをお願いします
週次ログローテーションを推奨します
Sora のサポートに関係するログ¶
connection.log
接続が切断した際にクライアントとサーバーの統計情報を出力するログです
ログローテーションされませんので、ログローテーションをお願いします
週次ログローテーションを推奨します
signaling.log
シグナリングでやりとりされている offer/answer/candidate/re-offer/re-answer と接続終了を記録したログです
ログローテーションされませんので、ログローテーションをお願いします
週次ログローテーションを推奨します
api.log
一部の API 操作に関するログを出力します
ログローテーションされませんので、ログローテーションをお願いします
週次ログローテーションを推奨します
internal.log
Sora が予定外の動作をしたときに出力されるログです。問題解決に必須のログです
ログローテーションされませんので、ログローテーションをお願いします
週次ログローテーションを推奨します
crash.log
Sora が予定外の動作をしたときに出力されるログです。問題解決に必須のログです
ログローテーションされませんので、ログローテーションをお願いします
週次ログローテーションを推奨します
erlang.log.<1-5>
サポート時に必要となるログですので、気にする必要はありません
自動でログローテーションされますので、ログローテーションは不要です
bin/sora foreground
コマンドで起動する場合には出力されません
sysctl.log
起動時に取得するログで、毎回上書きされます
sysctl -a の実行結果を記録します
ログローテーションは不要です
ulimit.log
起動時に取得するログで、毎回上書きされます
ulimit -n の実行結果を記録します
ログローテーションは不要です
run_erl.log
起動時に出力されるログのため、ほとんどログが出力されることはありません
ログローテーションは不要です
bin/sora foreground
コマンドで起動する場合には出力されません
connection_created_wait_timeout_error/<timestamp>_<connection_id>.json
sora.log に
CONNECTION-CREATED-WAIT-TIMEOUT-ERROR
が出力された際の接続情報を出力しますクライアントと Sora との間で WebRTC が確立できなかった場合の情報です
ファイル名は時刻とコネクション ID の組み合わせです
特別なログ¶
Sora が異常終了した際 erl_crash.dump
というファイルが log/ ディレクトリに生成されます。
こちらは 必ず 保存し、送っていただけるようお願いいたします。
監視用確認目的で erl_crash.dump ログを強制的に出力させる方法¶
監視を行う際に実際に erl_crash.dump
を生成したい場合には、 bin/sora daemon
で起動した上で、
kill -SIGUSR1
を使用して run_erl
プロセスを落としてください。
$ kill -SIGUSR1 <プロセス ID>
この方法で log/ ディレクトリに erl_crash.dump
が生成されます。
connection.log¶
Sora は接続単位で統計情報を保持しています。クライアント側の統計情報とサーバー側の統計情報の両方をログとして出力します。
クライアント側の統計情報はユーザーエージェント統計情報機能を利用しているため、 SDK 側がユーザーエージェント統計機能に対応している必要があります。
こちらのログはログローテーションしないため、ローテーションが必要となります。
sora.log¶
sora.log は主にサポートで利用するためのログを出力します。そのためエラーメッセージがかなり技術的な表現になっています。
sora.log は何かあって大量のログが出たとしてもうまい具合にスキップする機能が入っています
UTC に固定¶
sora.log のタイムスタンプは RFC 3339 UTC (マイクロ秒) 形式に固定されています。
例:
2022-06-06T08:04:37.390710Z [warning] [sora/1DSH1E4S/sendrecv] [sim,multi]
クラスター利用時¶
クラスターを有効にしている場合はログレベルの後ろにノード名が出力されます。
例:
2022-06-07T02:25:48.479789Z [warning] sora@127.0.0.1 [sora/1DSH1E4S/sendrecv] [sim,multi]
オプション情報¶
[チャネル ID/コネクション ID(ショート)/role] を表示します
multi
/spot
/sim
の3つを表示します
- multi
マルチストリーム
- spot
スポットライト
- sim
サイマルキャスト
例:
2022-06-07T02:25:48.479789Z [warning] [sora/1DSH1E4S/sendrecv] [sim,multi]
出力例¶
例1: シグナリング接続時の "type"
で指定する JSON が間違っており、Sora 側から切断した際に出力される INVALID-JSON
の出力例は次のとおりです。
2022-06-07T02:25:48.479789Z [error] [-/-/-] <0.9239.2> INVALID-JSON
例2: シグナリングに WebSocket を利用している場合に、 60 秒に一度も "type": "pong"
が返ってこない場合Sora 側から切断した際に出力される PONG-TIMEOUT-ERROR
の出力例は次のとおりです。
2022-06-07T02:25:48.479789Z [error] [sora/4G7607CP/sendrecv] [multi] <0.13016.17> PONG-TIMEOUT-ERROR | reason=<<"WebSocket">>
warning¶
ログレベル warning
は「接続自体は維持できる問題」の際に出力します。
このログが出力された場合でも Sora 側から切断は行いません。
一般
WEBSOCKET-TERMINATE
DataChannel シグナリングで ignore_disconnect_websocket: true の際に WebSocket が想定外の終了をした場合に出力します
MULTISTREAM-RE-ANSWER-NO-ICE-UFRAG
マルチストリーム利用時
type: re-answer
を受信した際に ICE に必要な SDP が含まれていない場合に出力します
MULTISTREAM-INTERNAL-ERROR
ウェブフック
INVALID-AUTHZ-VALUE
認証ウェブフック成功時に認証サーバーからの払い出した値がおかしい場合に出力します
TERMINATE-EVENT-WORKER
イベントウェブフックのワーカーが何らかの理由で終了した場合に出力します
MISSING-WEBHOOK-BASIC-AUTH-USER-ID
ウェブフック利用時にベーシック認証のユーザー ID が見つからない場合に出力します
MISSING-WEBHOOK-BASIC-AUTH-PASSWORD
ウェブフック利用時にベーシック認証のパスワードが見つからない場合に出力します
MISSING-WEBHOOK-PROXY-AUTH-PASSWORD
ウェブフック利用時にプロキシのパスワードが見つからない場合に出力します
録画
ARCHIVE-FINAL-SPLIT-ERROR
録画ファイルの分割がエラーになった場合に出力します、ただし全体出力に向けて処理は継続します
MISSING-RECORDING-WORKER-PID
録画処理が完了したワーカーが見つからず正常終了できない場合に出力します
プロトコル
DTLS-ALERT
DTLS でレベルが WARNING のアラートメッセージがクライアントから送られてきた場合に出力します
TURN-SEND-INDICATION-BINDING-ERROR
TURN 利用時に STUN-Binding-Error over STUN-Send-Indication を受信した場合に出力します
TURN-CHANNEL-DATA-BINDING-ERROR
TURN 利用時に STUN-Binding-Error over TURN-Channel-Data を受信した場合に出力します
SIMULCAST-DUPLICATED-RID
クライアントから複数の SSRC から同一の RID が送られてきた場合に出力します
UNKNOWN-RTP
role: reconly
にもかかわらず RTP パケットが送られてきた場合に出力しますSora の内部エラーでも出力される場合があります
UNKNWON-RTCP
見知らぬ RTCP を受信した場合に出力します
ULPFEC-RECOVER-ERROR
ULPFEC を利用している場合にリカバーを試みて失敗した場合に出力します
RTP-PACKET-LOSS-SIMULATOR-INCOMING-ENABLED
受信パケロスシュミレーターを有効にしている場合に出力します
RTP-PACKET-LOSS-SIMULATOR-OUTGOING-ENABLED
送信パケロスシュミレーターを有効にしている場合に出力します
error¶
ログレベル error
は「接続自体を維持できない問題」の際に出力します。
このログが出力された場合、Sora 側から切断を行います。
一般
UNEXPECTED-EXIT
シグナリング
INVALID-JSON
無効な JSON を受け取った場合に出力します
FAILURE-JSON-DECODE
JSON のデコードに失敗した場合に出力します
AUTHENTICATION-FAILURE
認証ウェブフックで認証が失敗した場合に出力します
AUTHENTICATION-INTERNAL-ERROR
認証ウェブフックで 200 番台以外が返ってきた場合に出力します
INTERNAL-ERROR
Sora の内部エラーです
MISSING-SDP-FINGERPRINT
SDP に DTLS の証明書検証に利用するフィンガープリントが見つからなかった場合に出力します
MISSING-ICE-SDP
SDP に ICE で利用する情報が見つからなかった場合に出力します
FAILURE-SDP-PARSE
SDP のパースに失敗した場合に出力します
INVALID-SIGNALING-TYPE
送られてきたシグナリングメッセージの type が無効な場合に出力します
UNEXPECTED-SIGNALING-TYPE
送られてきたシグナリングメッセージの type が見知らぬ場合に出力します
MISSING-TYPE
送られてきたシグナリングメッセージに type が見つからない場合に出力します
INVALID-MESSAGE
E2EE が有効ではないのに E2EE メッセージが送られてきた場合に出力します
TOO-LARGE-JSON
送られてきた JSON が巨大な場合に出力されます
TOO-MANY-CANDIDATE
あまりにも多い type: candidate を送ってきた場合に出力します
SIGNALING-INTERNAL-ERROR
シグナリングでの内部エラーが発生した場合に出力します
TRANSPORT-INTERNAL-ERROR
通信での内部エラーが発生した場合に出力します
BAD-FINGERPRINT
DTLS の証明書の検証に失敗した場合に出力します
PONG-TIMEOUT-ERROR
5 秒間隔で type: ping を送信し、60 秒間 1 度も type: pong が返ってこない場合に出力します
CONNECT-WAIT-TIMEOUT-ERROR
WebSocket を確立して一定時間以内に type: connect を送ってこない場合に出力します
CONNECTION-CREATED-WAIT-TIMEOUT-ERROR
一定時間以内に WebRTC が確立しない場合に出力します
ANSWER-TIMEOUT-ERROR
一定時間以内に type: answer を送ってこない場合に出力します
ライセンス
EXPIRED-LICENSE
ライセンスが切れている場合に出力されます
EXCEED-MAX-CONNECTIONS
ライセンスの同時接続数を超えて接続をしようとしたクライアントがいた場合に出力されます
認証ウェブフック
AUTH-WEBHOOK-INTERNAL-ERROR
認証ウェブフックで内部エラーが発生した場合出力します
AUTH-WEBHOOK-AUTHZ-INTERNAL-ERROR
認証ウェブフックの戻り値で内部エラーが発生した場合出力します
イベントウェブフック
EVENT-WEBHOOK-ERROR
イベントウェブが正常に送信ができなかった場合に出力します
DataChannel
INVALID-DATA-CHANNEL-USER-DATA
片方向でしか利用していない DataChannel にメッセージが送られてきた場合に出力します
録画
ARCHIVE-FAILED
録画ファイルの生成に失敗した際に出力します
RECORDING-INTERNAL-ERROR
録画で内部エラーが発生した際に出力します
E2EE
INVALID-E2EE-MESSAGE
E2EE メッセージがおかしい場合に出力します
NOT-ALLOWED-E2EE
E2EE を許可していない状態で E2EE 機能をクライアントが利用しようとした場合に出力します
プロトコル
TURN-UDP-INTERNAL-ERROR
TURN UDP で内部エラーが発生した場合に出力します
DTLS-ALERT
DTLS でレベルが FATAL のアラートメッセージが送られてきたとき出力します
emergency¶
ログレベル emergency
は「Sora の起動を維持できない問題」の際に出力します。
このログが出力された場合、Sora を終了します。
BOOT-FAILED
Sora が正常に起動できない場合に出力します
設定
SORA-CONF-ERROR
sora.conf が正常に読み込めない場合に出力します
クラスター
CLUSTER-INTERNAL-FAILURE
クラスター内部で問題が発生した際に出力します