ロギング (ベータ)
注意: この機能はクローズドベータ版であり、権限がないとアクセスできません。
ロギングとログの分析は、ゲームサーバーをトラブルシューティングする基本かつ最重要の方法です。サードパーティ製のロギングサービスがありますが、それらを Unity Gaming Services で使用するには追加の設定が必要です。
Multiplay Hosting ロギングサービスにより、Unity Dashboard プロジェクトに対してロギングシステムを設定する手間がなくなります。これにより、サードパーティ製のサービスとのカスタムインテグレーションの設定なしで、Unity Dashboard からログの表示、検索、ダウンロードを行う方法が提供されます。
このサービスを使用することで、サードパーティ製サービスによる Unity への送信や、ロギング機能を使用して接続の個人データの格納を許可しないことに合意します。
ノート: Multiplay Hosting ロギングはクローズドベータ版です。Unity は、この機能を改善するためにできるだけ多くのフィードバックを収集しています。問題、ご意見、またはフィードバックを、エンジニアリングチームにお知らせください。
要件
クローズドベータ版リリースでは、Multiplay Hosting ロギングを使用するために以下の要件を満たす必要があります。
- Multiplay Hosting サービスをアクティベートする必要があります。
- 特定のロギングパスを設定していない場合、Multiplay Hosting は
/usr/local/games/**/*.log
ディレクトリでログを参照します。 - デフォルトのファイル拡張子は .log です。別のファイル拡張子を使用する場合は、構成変数または起動パラメーターを使用してカスタムロギングパスを設定する必要があります。
制限事項
- ログファイルの保存は 7 日間のみです。
- ロギングでは STDOUT はキャプチャされません。ただし、これは将来のリリースには追加される可能性があります。
- 30 日間でログが 100 GB を超えることはできません。
- マシンあたりの 1 時間のログ数が 100,000 行を超えることはできません。
- ログとロギングサービスの分析データは、クローズドベータ版では使用できません。
- 古いログをロードするためにスクロールすると、自動的にライブログ機能が無効になります。
- 構造化されたログ内で、フィールドを使用してログをソートできません。Multiplay Hosting ではログ出力形式を想定できないためです。
機能とロードマップ
クローズドベータ版リリースには、以下の機能が含まれています。
- 特定のサーバーのライブログの表示。
- 1 フリート内のすべてのサーバーのライブログの表示。
- ライブログの一時停止。
- 1 サーバーのログの検索。
- 1 フリート内のすべての―サーバーのログの検索。
- コンテキストに対応するログファイルのダウンロード。
- オフラインサーバーのログへのアクセス。
- ログファイルのフィルタリングによる特定のログファイルシーケンスへの絞り込み。
- ログコンテキストを使用してログエントリーの前後に何が起きたかを検出。
- ロギングサービスのアクティベートとアクティベート解除。
- ロギングサービスの表示の制限。
以下の機能は将来のリリースで予定されています。予定の機能は予告なく変更する可能性があります。
- コスト低減のためのロギングの一時停止。
- ログファイルと標準出力 (STDOUT) の同時表示。
- 互換性のない設定に関する通知の有効化。
- カスタムロギング制限の設定。
- ログのデフォルト最大費用のオーバーライド。
使用を開始する
警告: Multiplay Hosting をまだ設定していない場合は、Multiplay Hosting の使用の準備 を参照してください。
ロギング機能にアクセスするには、前もって Unity Dashboard でロギングを有効化する必要があります。
- Multiplay Hosting サイドバー (Multiplayer 内) で、Logs (ログ) を選択します。
- Enable logs (ログの有効化) を選択します。
- 制限事項のダイアログを読んでから、Enable (有効化) を選択します。
ゲームサーバーの実行ファイル側でログファイルを確実に正しい場所に保存し、Multiplay Hosting がログファイルを探す場所を認識するようにします。ログファイルは、デフォルトのディレクトリまたはカスタムディレクトリに保存できます。カスタムディレクトリに保存する場合、カスタムディレクトリを ビルド設定 で指定する必要があります。
Multiplay Hosting は、ビルド構成変数 または 起動パラメーター によって指定されたカスタムログ出力ディレクトリがあるかどうかを確認します。カスタムログ出力ディレクトリがある場合は、そのディレクトリが使用されます。カスタムログ出力ディレクトリを指定していない場合、以下のディレクトリで末尾が .log のファイルが確認されます。
/usr/local/games/**/*
ノート: ログ出力の場所の設定は ビルド設定 ごとに行われます。ビルド設定が異なるゲームサーバーを割り当てると、そのゲームサーバーは別のディレクトリにログを保存することがあります。
ガイド
Multiplay Hosting ロギング内の特定のロギングタスクの実行方法については、以下のガイドを参照してください。
ログの表示
ゲームサーバーログを表示するには、以下を行ってください。
- Unity Dashboard で Multiplay Hosting を開きます。
- Debugging (デバッグ) を選択します。
- Logging (ロギング) タブを選択します。
ライブログの表示
ライブログを表示するには、以下を行ってください。
- Unity Dashboard で Multiplay Hosting を開きます。
- Debugging (デバッグ) を選択します。
- Logging (ロギング) タブを選択します。
- Live Logs (ライブログ) を選択します。
ライブログを有効にしている間は、ゲームサーバーの実行時にログビューが新しいログで更新されます。ただし、スクロールして古いログを表示すると、自動的にライブログが無効化されます。
静的ログの表示
静的ログを表示するには、以下を行ってください。
- Unity Dashboard で Multiplay Hosting を開きます。
- Debugging (デバッグ) を選択します。
- Logging (ロギング) タブを選択します。
- Static Logs (静的ログ) を選択します。
静的ログを有効にしている間は、ゲームサーバーの実行時にログページに新しいログが自動的に表示されません。
ノート: ライブログが有効になっている状態でログをスクロールすると、自動的に静的ログが有効化されます。
ログの検索
ログ内を検索するには、以下を行ってください。
- Unity Dashboard で Multiplay Hosting を開きます。
- Debugging (デバッグ) を選択します。
- Logging (ロギング) タブを選択します。
- 検索バーに検索する語を入力します。
- 入力するにつれて自動的にフィルター処理する場合には、Filter on search (検索時にフィルター処理) を有効にします。
フリートログの検索
特定のフリートのすべてのログを検索するには、フリートを選択してから、ログメッセージを検索するか日付範囲やサーバーでさらにフィルタリングします。
- Unity Dashboard で Multiplay Hosting を開きます。
- Debugging (デバッグ) を選択します。
- Logging (ロギング) タブを選択します。
- Fleet (フリート) ドロップダウンメニューを使用してフリートを選択します。
- 検索バーを使用してキーワードを検索するか、Date range (日付範囲) で検索します。
サーバーログの検索
特定のゲームサーバーのすべてのログを検索するには、Server (サーバー) を選択してから、ログメッセージを検索するか結果を Date range (日付範囲) でさらにフィルタリングします。
- Unity Dashboard で Multiplay Hosting を開きます。
- Debugging (デバッグ) を選択します。
- Logging (ロギング) タブを選択します。
- Server (サーバー) ドロップダウンメニューを使用してサーバーを選択します。
- 検索バーを使用してキーワードを検索するか、Date range (日付範囲) で検索します。
ログ検索結果の追跡
ライブログ機能をアクティベートすると、ログ検索結果を追跡できます。サーバー (またはフリート) がオンラインの場合に、ゲームサーバーで新しいログエントリーが作成されるにつれてそれらを表示できます。
ログのフィルター処理
日付範囲、フリート、またはゲームサーバーによってログをフィルター処理するには、以下を行ってください。
- Unity Dashboard で Multiplay Hosting を開きます。
- Debugging (デバッグ) を選択します。
- Logging (ロギング) タブを選択します。
- 使用するフィルターを選択します。
日付範囲によるフィルター
事前設定済みフィルター (過去 24 時間など) の 1 つまたはカスタム日付範囲によってログをフィルター処理できます。
ヒント: カスタム日付範囲によってフィルタリングするとき、End date (終了日) を空にしておくと、Start date (開始日) から現在の日付まででフィルター処理できます。
- Unity Dashboard で Multiplay Hosting を開きます。
- Debugging (デバッグ) を選択します。
- Logging (ロギング) タブを選択します。
- Date range (日付範囲) を Custom (カスタム) に設定します。
- ログをフィルター処理する Start date (開始日) と End date (終了日) を選択します。
- Apply (適用) を選択します。End date (終了日) を空にすると、デフォルトで現在の日付になります。
フリートによるフィルター
- Unity Dashboard で Multiplay Hosting を開きます。
- Debugging (デバッグ) を選択します。
- Logging (ロギング) タブを選択します。
- Fleet (フリート) ドロップダウンメニューを使用してフリートを選択します。
サーバーによるフィルター
- Unity Dashboard で Multiplay Hosting (Multiplay) を開きます。
- Debugging (デバッグ) を選択します。
- Logging (ロギング) タブを選択します。
- Server (サーバー) ドロップダウンメニューを使用してサーバーを選択します。
ログファイルによるフィルター
ノート: ログファイルによるフィルター処理を行う前に、フリートとサーバーでフィルター処理しておく必要があります。
- Unity Dashboard で Multiplay Hosting を開きます。
- Debugging (デバッグ) を選択します。
- Logging (ロギング) タブを選択します。
- Logfile (ログファイル) ドロップダウンメニューを使用してログファイルを選択します。
ログのコンテキスト表示
また、各ログエントリーの More (詳細) (⋮) メニューにはコンテキスト依存フィルターオプションがあります。このメニューを使用すると、フリートによるフィルター、サーバーによるフィルター、ログファイルによるフィルター、またはログエントリーのコンテキスト表示が可能です。
Filter on fleet (フリートに対するフィルター)
Filter on fleet (フリートに対するフィルター) では、現在のログ検索結果をフィルター処理して、選択したログエントリーと同じフリートの結果のみを表示します。
Filter on server (サーバーに対するフィルター)
Filter on server (サーバーに対するフィルター) では、現在のログ検索結果をフィルター処理して、選択したログエントリーと同じサーバーの結果のみを表示します。コンテキストフィルターを選択した後で、結果を別のコンテキストによってさらにフィルター処理できます。
Filter on logfile (ログファイルに対するフィルター)
Filter on logfile (ログファイルに対するフィルター) では、現在のログ検索結果をフィルター処理して、選択したログエントリーと同じログファイルの結果のみを表示します。ログファイルによるフィルタリングでは、ログファイルに関連付けられたフリートとサーバーによって結果が自動的にフィルター処理されます。
View in context (コンテキストでの表示)
ログファイルのコンテキスト表示では、ログエントリーと同じフリートとサーバーでログが自動的にフィルター処理され、時間がエントリーの前後 5 分間に制限されます。
ログのダウンロード
ログをダウンロードするには、以下を行ってください。
- Unity Dashboard で Multiplay Hosting を開きます。
- Debugging (デバッグ) を選択します。
- Logging (ロギング) タブを選択します。
- Download logs (ログのダウンロード) を選択します。
これにより、現在のフィルターと検索結果に基づいてロードされていたログがダウンロードされます。
Download logs (ログのダウンロード) を選択したときに Live logs (ライブログ) が有効になっていると、最新のログがダウンロードされます。スクロールダウンした後で Download logs (ログのダウンロード) を選択した場合は、Logs view (ログビュー) にロードしていたすべてのログファイルもダウンロードされます。
日付範囲、フリート、サーバー、または検索クエリでログをフィルタリングして、ダウンロードするログを制御できます。例えば、特定の日付範囲の 1 つのサーバーのログをダウンロードするには、Date range (日付範囲) フィルターと Server (サーバー) フィルターでログをフィルター処理してから Download logs (ログのダウンロード) を選択します。
特定のログファイルのダウンロード
特定のログエントリーのソースログファイルをダウンロードするには、ログエントリーの行の最後にある Download source log file (ソースログファイルのダウンロード) アイコンを選択します。
特定の時間のログのダウンロード
特定の時間のログをダウンロードするには、Date range (日付範囲) でログをフィルタリングしてから Download logs (ログのダウンロード) を選択します。
- Unity Dashboard で Multiplay Hosting を開きます。
- Debugging (デバッグ) を選択します。
- Logging (ロギング) タブを選択します。
- Date range (日付範囲) を Custom (カスタム) に設定します。
- ログをフィルター処理する Start date (開始日) と End date (終了日) を選択してから、Apply (適用する) を選択します。end date (終了日) を空にすると、デフォルトで現在の日付になります。
- Download logs (ログのダウンロード) を選択します。
ログ検索結果のダウンロード
現在の検索結果をダウンロードするには Download logs (ログのダウンロード) を選択します。デフォルトではロードされたログ結果のみがダウンロードされます。
ログの無効化
Multiplay Hosting ログはいつでも無効化できます。ログを無効化すると、ログまたは Multiplay Hosting ロギング機能にアクセスできなくなります。
Multiplay Hosting ログを無効化してもログファイルは削除されません。サーバーによってログファイルへの書き込みは続行され、標準の Multiplay Hosting ログビューでは引き続きログファイルにアクセスできます。
ノート: Multiplay Hosting では、標準の 7 日間のリテンション期間が経過すると、解析済みログ (ログファイルではない) がバックエンドサービスから削除されます 。
トラブルシューティング
ログが Unity Dashboard に表示されない場合は、以下を行ってください。
- デフォルトのログ出力ディレクトリを使用しているかカスタムログ出力ディレクトリを指定したことを確認します。
- .log 以外のファイル拡張子を使用している場合は、カスタムログ出力ディレクトリが存在することを確認します。
- ゲームで Unreal Engine が使用されている場合は、Unreal を使用するゲームのログ出力をリダイレクト を参照してください。
用語集
フリート /Fleet: フリートは、Multiplay Hosting (Multiplay) によって論理単位として扱われるサーバーのコレクションです。
マシン /Machine: サーバーが実行されるクラウドマシンまたはベアメタルマシン。1 マシンで複数のサーバーが実行できます。
サーバー /Server: ゲームサーバーバイナリの実際に実行される実行ファイル。長期実行サーバー (同一の実行で新セッションが開始して終了する) と、単一セッション実行ファイル (セッションが完了すると停止する) があります。サーバーとは、開発者がロギング戦略を実装する場所です。各サーバーが 1 つ以上のログファイルを生成できます。ログファイルは長期のものと短期のものがあります。
コンテキスト /Context (または ログファイル/Log File): ログファイルは、ロギングデータが格納される場所です。開発者は、各サーバーが生成するファイル数、各ログファイルの内容、ログデータの形式、ログファイル内の情報の確認方法を認識する必要があります。
ライブログ /Live logs: ライブログまたはライブログビューは、ライブ (リアルタイム) ログを有効化するビューです。このビューでは、新たに生成されるログファイルが自動的にログ検索結果に表示されます。
静的ログ /Static logs: 静的ログまたは静的ログビューは、ライブ (またはリアルタイムログ) が現在の検索結果に表示されないようにするビューです。
フィルタリング /Filtering: フィルタリングとは、キーワード、フリート、サーバー、ログ、または日付範囲によってログ結果をフィルター処理するプロセスです。
ログファイル /Log files: ログファイルまたはソースログファイルは、ログビューに公開される情報のソースです。検索結果から特定のソースログファイルをダウンロードできます。
サーバーログ /Server logs: ゲームサーバーを実行するゲームサーバー実行ファイルから生成されるすべてのログファイル。特定のサーバーによってログをフィルター処理できます。
フリートログ /Fleet logs: フリートログは、特定のフリート内のサーバーによって生成されるすべてのログファイルです。特定のフリートによってログをフィルター処理できます。