Porta VM 診断チートシート
このページは、Porta VM デプロイメントで何がどこにあり、どう確認するかを一覧にしたものです。手順ではなくリファレンスとして扱い、診断する症状に合ったエントリを選んでください。
- 一般的な症状の構造化されたウォークスルーについては、Porta VM Troubleshooting guide を参照してください。
- 5 分でできる初回チェックについては、Porta VM Support Checklist を参照してください。
クイックデータ収集
Section titled “クイックデータ収集”VM 内で、SSH 経由または VirtualBox コンソールで直接実行します。
# Bundles diagnostics under ~/logs/collected_data/YYYYMMDD/HH-SS/.# Requires VM image 0.9.14.2 or newer.collect_data
# Runs the full Porta diagnostics: versions, group members, health checks.porta_diag
# Quick environment snapshot: hostname, IPv4, MAC, and /etc/hosts.~/scripts/vm_info.sh生成されたバンドルを Windows ホストにコピーするには、VirtualBox 共有フォルダを一度設定し(Porta On Prem VM Windows Shared Folder を参照)、次を実行します。
~/scripts/export_to_windows.sh ~/logs/collected_data/...VM 内ヘルパー
Section titled “VM 内ヘルパー”| ヘルパー | 機能 | 対応バージョン |
|---|---|---|
collect_data | システムとアプリのデータを収集するためのさまざまな診断を実行します。結果は ~/logs/collected_data/YYYYMMDD/HH-SS/ に保存されます。 | 0.9.14.2+ |
porta_diag | Porta サーバーの完全な診断を実行します。 | 0.9.14.2+ |
view_hosts_file | /etc/hosts の内容を表示します。 | 0.9.14.2+ |
check_diskspace | 簡易ディスク容量チェック。 | 0.9.14.2+ |
check_diskspace_sorted | サイズ順に並べ替えたディスク容量チェック。 | 0.9.14.2+ |
docker_disk_usage | イメージ、コンテナ、ボリューム別の Docker ディスク使用量。 | 0.9.14.2+ |
docker_volume_size<volume_name> | 名前付き Docker ボリュームのサイズを調べます。 | 0.9.14.2+ |
~/scripts/vm_info.sh | VM のホスト名、IPv4 アドレス、MAC アドレス、/etc/hosts の内容を表示します。 | All |
~/scripts/porta-manager/check-conn-cache.sh | すべての Porta Manager コンテナについて、キャッシュされた接続、読み込まれたメモリ内接続、データベース接続キャッシュを表示します。 | All |
バージョン管理
Section titled “バージョン管理”| ヘルパー | 機能 | 対応バージョン |
|---|---|---|
porta_check_version | Laravel、PHP、MySQL、Redis、OS を含む Porta のバージョン情報を表示します。 | 0.9.14.2+ |
mngr_check_version | Porta Manager のバージョン情報を表示します。 | 0.9.14.2+ |
~/scripts/porta-manager/check-manager-version.sh | mngr_check_version の基盤となるスクリプト。 | All |
各 Porta ログヘルパーには、現在の内容を出力する代わりにファイルを追跡する(tail -f に相当)_follow バリアントがペアで用意されています。
| ヘルパー | 表示内容 | 対応バージョン |
|---|---|---|
porta_laravel_logsporta_laravel_logs_follow | porta コンテナの /var/www/storage/logs/laravel-YYYY-MM-DD.log。 | 0.9.14.2+ |
porta_php_errorsporta_php_errors_follow | porta コンテナの /var/log/php/errors.log。 | 0.9.14.2+ |
porta_horizon_logsporta_horizon_logs_follow | /var/www/logs/horizon.log — キューワーカーとシーケンスのプレイアウト。 | 0.9.14.2+ |
porta_task_logsporta_task_logs_follow | /var/www/logs/default_tasks.log — スケジュールされたタスク、データベースバックアップ、ソケットチェック。 | 0.9.14.2+ |
porta_main_db_logsporta_main_db_logs_follow | このマシンが main マシンの場合の、このマシンの MySQL エラーログ。 | 0.9.14.2+ |
porta_backup_db_logsporta_backup_db_logs_follow | このマシンが backup マシンの場合の、このマシンの MySQL エラーログ。 | 0.9.14.2+ |
porta_arbiter_db_logsporta_arbiter_db_logs_follow | このマシンが arbiter マシンの場合の、このマシンの MySQL エラーログ。 | 0.9.14.2+ |
mngr_app_logs | Porta Manager アプリコンテナのログ。 | 0.9.14.2+ |
mngr_horizon_logs | Porta Manager インストーラーウィザードの処理ログ。 | 0.9.14.2+ |
mngr_task_logs | Porta Manager バックグラウンドタスクランナーのログ。 | 0.9.14.2+ |
~/scripts/porta-manager/view-logs.sh [container] [lines] | mngr_*_logs コマンドの基盤となるスクリプト。[container] は app、horizon、task のいずれかです。[lines] は行数、または追跡する場合は f です。 | All |
レプリケーション
Section titled “レプリケーション”| ヘルパー | 機能 | 対応バージョン |
|---|---|---|
porta_group_status | このマシンが報告するグループレプリケーションのステータスを表示します。 | 0.9.14.2+ |
porta_all_group_status | /etc/hosts のエントリを使用して、グループ内のすべてのマシンに対して同じステータスクエリを実行します。これが機能するには、各 VM の /etc/hosts が正しい必要があります。 | 0.9.14.2+ |
porta_start_repl | このマシンで START GROUP_REPLICATION を実行します。 | 0.9.14.2+ |
porta_stop_repl | このマシンで STOP GROUP_REPLICATION を実行します。 | 0.9.14.2+ |
porta_bootstrap | このマシンからレプリケーショングループをブートストラップします。まず porta_all_group_status で確認し、他のメンバーがすでに primary になっていない場合にのみ実行してください。 | 0.9.14.2+ |
porta_set_bootstrap_ON | bootstrap フラグを ON として永続化します。このマシンは起動時に常に自身を primary として設定します。単一 VM のセットアップでのみ有用です。複数 VM のレプリケーショングループでは絶対に使用しないでください。スプリットブレインを引き起こす可能性があります。 | 0.9.14.2+ |
porta_set_bootstrap_OFF | bootstrap フラグを OFF として永続化します。これは Porta VM のデフォルト状態です。 | 0.9.14.2+ |
~/scripts/porta/view-ALL-group-repl-status.sh | porta_all_group_status の基盤となるスクリプト。 | All |
データベースバックアップ
Section titled “データベースバックアップ”| ヘルパー | 機能 | 対応バージョン |
|---|---|---|
porta_backup_db | Porta データベースのバックアップを作成します。生成された ZIP アーカイブは porta コンテナ内の /var/www/storage/app/Porta-Backups に保存されます。 | 0.9.14.2+ |
porta_restore_db | バックアップから Porta データベースを復元します。ローカルで利用可能なダンプの一覧を表示します。 | 0.9.14.2+ |
porta_db_dump[db_container_name] [db_name] | raw mysqldump を実行します。デフォルトは porta-db と porta データベースです。 | 0.9.14.2+ |
porta_db_restore[db_container_name] [db_name] | mysqldump からデータベースを復元します。デフォルトは porta-db と porta データベースです。ローカルで利用可能なダンプの一覧を表示します。 | 0.9.14.2+ |
porta_reset_db | 破壊的 — このマシン上のすべてのデータを消去し、マイグレーションからデータベースを再作成します。災害復旧の最終手段として使用されます。 | 0.9.14.2+ |
Scheduler プレイアウト
Section titled “Scheduler プレイアウト”これらのヘルパーは、同じ Scheduler のテーブルを、レプリケーショングループ内の異なるマシン上でクエリします。現在操作しているマシンに合ったバリアントを使用してください。たとえば、main マシンからは porta_playouts を、backup マシンからは porta_backup_playouts を実行します。
| ヘルパー | 表示内容 | 対応バージョン |
|---|---|---|
porta_playouts | 直近 50 件の Scheduler プレイアウト(現在アクティブなエントリと次のエントリを含む)。main マシンのみ。 | 0.9.14.2+ |
porta_playout_history | 直近 50 件の Scheduler プレイアウト履歴項目。main マシンのみ。 | 0.9.14.2+ |
porta_backup_playouts | 直近 50 件の Scheduler プレイアウト。backup マシンのみ。 | 0.9.14.2+ |
porta_backup_playout_history | 直近 50 件の Scheduler プレイアウト履歴項目。backup マシンのみ。 | 0.9.14.2+ |
porta_arbiter_playouts | 直近 50 件の Scheduler プレイアウト。arbiter マシンのみ。 | 0.9.14.2+ |
porta_arbiter_playout_history | 直近 50 件の Scheduler プレイアウト履歴項目。arbiter マシンのみ。 | 0.9.14.2+ |
VM ライフサイクル
Section titled “VM ライフサイクル”| ヘルパー | 機能 | 対応バージョン |
|---|---|---|
~/scripts/reset_identity.sh | 新しいホスト名と一意のマシン ID を選択し、/etc/hosts を更新して再起動します。VM イメージを 2 台目または 3 台目のホストにインポートした後、コピーが同一の識別情報を共有しないように実行します。Manually Resetting the Identity of a Porta On Prem VM を参照してください。 | All |
~/scripts/setup_static_ip.sh | netplan を介して静的 IP を設定します。Porta VM の PowerShell セットアップスクリプトがこれを自動的に行うため、セットアップが途中で失敗した場合のみ手動で実行します。Manually Setting Up a Static IP を参照してください。 | All |
~/scripts/disable_static_ip.sh | /etc/netplan/99-portacfg.yaml の名前を変更して静的 IP 構成を無効にします。VM は次回起動時に DHCP にフォールバックします。 | All |
~/scripts/reset_dhcp.sh | 新しい DHCP リースを強制し、キャッシュされたリースをクリアします。VM が静的 IP を使用していない場合にのみ意味があります。 | All |
~/scripts/static_ip_info.sh | 現在の netplan 静的 IP 構成を表示します。 | All |
~/scripts/setup_shared_folders.sh | Windows へのファイルエクスポート用に、VirtualBox 共有フォルダの VM 側を準備します。Porta On Prem VM Windows Shared Folder を参照してください。 | All |
Porta Manager ライフサイクル
Section titled “Porta Manager ライフサイクル”| ヘルパー | 機能 | 対応バージョン |
|---|---|---|
update_managerinstall_manager | 利用可能な最新の Porta Manager ビルドをダウンロードし、インストーラーを実行します。更新時に APP_KEY が保持されるよう、最初に自動的に backup-env.sh を実行します。 | All |
mngr_init_user | 最初の Porta Manager 管理者ユーザーを初期化します。Porta Manager データベースの完全消去後にのみ必要です。 | 0.9.14.2+ |
mngr_backup_env | 更新間で APP_KEY を保持するため、porta-manager-app コンテナから .env ファイルを ${MNGR_CONFIG_DIR}/.env にコピーします。update_manager の呼び出し時に自動的に実行されます。 | 0.9.14.2+ |
mngr_restore_env | 保持された .env ファイルを ${MNGR_CONFIG_DIR}/.env から porta-manager-app コンテナに復元します。 | 0.9.14.2+ |
mngr_recreate | データボリュームを保持したまま、既存のイメージから Porta Manager コンテナを再作成します。Porta Manager ダッシュボードで Fix IP Settings(IP 設定を修正) を実行せずに VM の IP が変更された場合に便利です。 | 0.9.14.2+ |
mngr_wipe_recreate | 破壊的 — Porta Manager のデータとストレージボリュームを消去し、既存のイメージからコンテナを再作成します。Porta アプリケーションのデータには影響しません。 | 0.9.14.2+ |
~/scripts/porta-manager/install-manager.sh | update_manager の基盤となるスクリプト。 | All |
~/scripts/porta-manager/init-manager-user.sh | mngr_init_user の基盤となるスクリプト。 | All |
~/scripts/porta-manager/backup-env.sh | mngr_backup_env の基盤となるスクリプト。install-manager.sh の一部として自動的に実行されます。 | All |
各コンテナ内でファイルがある場所
Section titled “各コンテナ内でファイルがある場所”porta コンテナ — UI と API
Section titled “porta コンテナ — UI と API”| パス | 注記 |
|---|---|
/var/www | Laravel アプリケーションのルート。 |
/var/www/.env | ホスト、データベース認証情報、アプリキー、連携を含むアプリケーション環境ファイル。 |
/var/www/bootstrap/cache/config.php | キャッシュされた Laravel 構成。.env を変更した後は php artisan config:cache で再生成する必要があります。 |
/var/www/storage/logs/laravel-YYYY-MM-DD.log | Laravel エラーログ。 |
/var/www/storage/app/Porta-Backups/*.zip | 自動および手動のデータベースバックアップ。 |
/var/www/logs/horizon.log | Horizon ワーカーログ — シーケンスのプレイアウト。 |
/var/www/logs/default_tasks.log | スケジュールタスクログ — データベースチェック、ソケットチェック、バックアップ。 |
/var/www/logs/default_queue.log | デフォルトキューワーカーログ。エントリは FAIL ではなく DONE で終わるはずです。 |
/var/log/php/errors.log | コンテナ内の PHP エラーログ。 |
/etc/nginx/sites-available/default | Nginx vhost。デフォルトの client_max_body_size は 1024M です。 |
/etc/supervisord.conf | Supervisor 構成。nginx、php-fpm、porta-horizon-worker_*、porta-task-worker_* を管理します。 |
/usr/local/etc/php/conf.d/app.ini | PHP 構成。デフォルトの post_max_size は 1024M、デフォルトの upload_max_filesize は 1000M です。 |
porta-db* コンテナ — MySQL
Section titled “porta-db* コンテナ — MySQL”| パス | 注記 |
|---|---|
/etc/my.cnf | MySQL 構成。 |
/var/lib/mysql | データディレクトリ。Docker ボリュームとしてマウントされます。高度なシステム管理用途のみ。 |
porta-socket コンテナ
Section titled “porta-socket コンテナ”| パス | 注記 |
|---|---|
/usr/src/app | Node.js ソース。 |
/usr/src/app/.env | ソケットサーバー環境 — Redis の URL とポート。 |
正常な起動ログには次の行が含まれます。
info: Starting namespace: /unrealinfo: Starting namespace: /disguiseinfo: Starting namespace: /playout_statusSocket.IO 管理 UI は http://<VM-IP>:8000/socketio-adminui で利用できます。認証情報については support@disguise.one までお問い合わせください。
porta-redis コンテナ
Section titled “porta-redis コンテナ”Porta API(Porta Scheduler を含む)からソケットサーバーへのメッセージを監視するには、Redis CLI セッションを開きます。
docker exec -it porta-redis redis-cli> MONITOR# or, only API → socket messages:> PSUBSCRIBE *-API-msgヘルスチェックコマンド
Section titled “ヘルスチェックコマンド”これらを porta コンテナに対して実行します。
docker exec -it porta bash -c "php artisan check:version"データベースレプリケーションのヘルス
Section titled “データベースレプリケーションのヘルス”docker exec -it porta bash -c "php artisan health:single-check 'PrimaryDatabaseConnectionCheck' --do-not-store-results --no-notification --fail-command-on-failing-check"
docker exec -it porta bash -c "php artisan health:single-check 'MysqlClusterCheck' --do-not-store-results --no-notification --fail-command-on-failing-check"
docker exec -it porta bash -c "php artisan health:single-check 'MysqlNodeStatusCheck' --do-not-store-results --no-notification --fail-command-on-failing-check"Porta のアクティブなデータベース接続を調べるには、次を実行します。
docker exec -it porta bash -c "cat .env | grep DB_HOST"docker exec -it porta bash -c "cat bootstrap/cache/config.php | grep -B 2 \"'default' => 'mysq\""DB_HOST は、現在のプライマリの IP と同じ DB_HOST_# スロットを参照しているはずです。異なる場合、Porta バックエンドは読み取り専用レプリカと通信しています。プライマリ接続のヘルスチェックを再実行すると再接続がトリガーされます。
ブラウザ側モニタリング URL
Section titled “ブラウザ側モニタリング URL”| URL | 目的 |
|---|---|
http://<VM-IP>:8000/health | データベースグループ、レプリケーション、プライマリ接続のヘルス。緑は正常です。 |
http://<VM-IP>:8000/horizon | キューワーカーダッシュボード。失敗したジョブが積み上がっていないか確認します。 |
http://<VM-IP>:8000/socketio-adminui | Socket.IO 管理 UI。Disguise サポートからの認証情報が必要です。 |
Porta UI のブラウザコンソール(F12 → Console)が、UI 側エラーが表示される唯一の場所です。フロントエンドのログファイルはありません。
構成キャッシュの無効化
Section titled “構成キャッシュの無効化”porta コンテナで構成キャッシュを更新するには、次を実行します。
docker exec -it porta bash -c "php artisan config:cache"その後、PHP-FPM が起動時に読み取るものに変更があった場合は docker restart porta を実行します。
Porta Manager の場合、同等の操作は mngr_recreate で、既存のイメージから Manager コンテナを削除して再作成し、データボリュームを保持します。