Kopano Dagentの「ストレージサーバーへの接続に失敗しました」エラーを修正する
Kopano dagentストレージサーバーへの接続障害のトラブルシューティングを行うには、サーバーの状態、server_socket、Unixソケットの権限、リモートリスナー、および制御された配信テストを確認します。
ownCloudの管理ページを開くと、バックグラウンドジョブが最近実行されていない、またはクリーンアップ、アクティビティ、外部ストレージ、その他のキューに入れられたタスクが遅れているように見えることがあります。よくある反応は、cron.phpcrontabエントリを編集または追加することです。現在のownCloud Serverのドキュメントでは、これは最適な出発点ではありません。ownCloudは、Cronバックグラウンドモードとocc system:cronコマンドの使用を推奨しています。Linuxホストでは、従来のcrontabの代わりにsystemdタイマーを使用してスケジューリングレイヤーを提供できます。
このガイドでは、ownCloud が などのパスに配置されているパッケージまたはベアメタルスタイルのインストールに焦点を当てています/var/www/owncloud。ownCloud の公式 Docker イメージを使用する場合は、ホストタイマーを作成する前に停止してください。ownCloud のドキュメントには、イメージが や などの変数によって制御される cron を内部的に構成することが記載されていますOWNCLOUD_CROND_ENABLED。OWNCLOUD_CROND_SCHEDULE最新のownCloud バックグラウンド ジョブのドキュメントを参照してください。
occ system:cronキューに入れられたバックグラウンドジョブを実行するためのコマンドとしてドキュメント化しています。対処法:タイマーに使用するアカウントと同じアカウントで、ownCloudのコマンドが手動で正常に動作することが確認できるまで、タイマーを作成しないでください。
一般的なApache/Debianスタイルのインストールでは、Webユーザーは ですwww-data。環境が異なる場合は、ユーザー名とパスの両方を置き換えてください。
sudo -u www-data /var/www/owncloud/occ background:cron
sudo -u www-data /var/www/owncloud/occ system:cron
最初のコマンドは、ownCloudのCronバックグラウンドジョブモードを選択します。2番目のコマンドは、キューに登録されたバックグラウンドジョブを実際に実行します。ownCloudのoccコマンドのドキュメントにはsystem:cron、このコマンドはスケジュール実行を目的としており、非対話型スケジューラでは進捗状況の出力は有効にすべきではないと記載されています。
よくある誤解: ownCloudの「Cronモード」は、cron必ずしもデーモンを使用する必要があるという意味ではありません。ownCloudがバックグラウンドジョブランナーを呼び出すために外部スケジューラを必要とするという意味です。systemdタイマーをそのスケジューラとして使用できます。
対処法:手動コマンドが失敗した場合は、まずそのエラーを修正してください。タイマーは、スケジュールに基づいて同じ失敗を繰り返します。
インストールによってはocc直接実行可能になる場合もあれば、PHP CLIバイナリで起動した方が動作が予測しやすい場合もあります。両方を確認してください。
command -v php
readlink -f /var/www/owncloud/occ
sudo -u www-data /usr/bin/php -f /var/www/owncloud/occ system:cron
ownCloudのドキュメントでは、スケジュールされたジョブがPHPを見つける必要があることを明示的に警告しており、そのためcronの例では完全なパスを示しています。これはsystemd環境でも同様に重要です。なぜなら、サービスは対話型シェル環境ではなく、制御された環境で実行されるからです。
対処方法:/usr/bin/php残りの例の、、、/var/www/owncloudおよびを、www-dataご使用のホストで正常に動作した値に置き換えてください。
作成する/etc/systemd/system/owncloud-cron.service:
[Unit]
Description=Run ownCloud background jobs
After=network.target
[Service]
Type=oneshot
User=www-data
Group=www-data
WorkingDirectory=/var/www/owncloud
ExecStart=/usr/bin/php -f /var/www/owncloud/occ system:cron
通常、サービス専用のセクションは必要ありません[Install]。タイマーがサービスを起動するからです。サービスをこのように設定しておくと、Type=oneshotライフサイクルも分かりやすくなります。サービスが起動し、コマンドを一度実行し、終了して、再び非アクティブになります。
よくある誤解:非アクティブなワンショットサービスは自動的に停止するわけではありません。正常に実行されたワンショットサービスは、RemainAfterExit=yes通常、非アクティブになります。
対策:サービスの成功は、終了コードとログに基づいて判断し、サービスが「稼働し続ける」ことを期待してはいけません。
作成する/etc/systemd/system/owncloud-cron.timer:
[Unit]
Description=Run ownCloud background jobs every 15 minutes
[Timer]
OnCalendar=*:0/15
Persistent=true
Unit=owncloud-cron.service
[Install]
WantedBy=timers.target
ownCloudのホストcronのドキュメントでは、15分間隔のスケジュールを推奨しています。上記のタイマーもその間隔に従います。systemdはマシンが再び利用可能になった後にカレンダーの起動をトリガーできるため、タイマーPersistent=trueと併用すると便利ですOnCalendar。ただし、正確な動作はsystemdのバージョンとマシンのダウン時間によって異なります。
対処法:意図的に異なる間隔が必要な場合は、他のサーバーから値をコピーするのではなく、意図的に変更してください。実行頻度が高すぎるとバックグラウンド負荷が増加し、低すぎるとキューに登録された処理が遅延する可能性があります。
sudo systemctl daemon-reload
sudo systemctl enable --now owncloud-cron.timer
sudo systemctl status owncloud-cron.timer
daemon-reloadsystemdにユニットファイルを再読み込みさせます。enable --nowこれにより、今後の起動のためのタイマーが有効になり、同時に起動も即座に開始されます。
active (waiting)それがトリガーするサービスを表示し、識別するはずです。対処法:タイマーがアクティブでない場合は、systemctl status owncloud-cron.timerownCloudの設定を再度変更する前に確認してください。
systemctl list-timers owncloud-cron.timer
systemctl list-timers --all | grep owncloud-cron
list-timersこれは、systemdが次回の起動をスケジュールしたことを確認し、タイマーが最後に作動した日時を確認する最も簡単な方法です。これにより、「タイマーが一度も作動しなかった」場合と「タイマーは作動したが、ownCloudがサービス内で失敗した」場合を区別できます。
対処方法: NEXTが表示されない場合、またはタイマーがリストにない場合は、タイマーのファイル名、[Install]セクション、およびユニットが有効になっているかどうかを再確認してください。
systemd は、意図的に別の場所にリダイレクトしない限り、サービスの出力をジャーナルに記録します。公式のjournalctl ドキュメントには、systemd ユニットによるジャーナルエントリのフィルタリング方法が記載されています。
sudo journalctl -u owncloud-cron.service --since today
sudo journalctl -u owncloud-cron.service -n 100 --no-pager
よくある誤解:「タイマーがアクティブになっているので、ownCloudのcronは正常に動作している。」 タイマーがアクティブになっているということは、スケジューラが起動待ちの状態にあることを示すだけで、サービスが正常に呼び出される必要があります。
対処方法: PHPエラー、アクセス拒否メッセージ、ファイルの欠落、データベースエラー、またはゼロ以外の終了ステータスを探します。タイマーを繰り返し再起動するのではなく、最初に発生した具体的なエラーを修正してください。
最終テストのために15分待つ必要はありません。
sudo systemctl start owncloud-cron.service
sudo systemctl status owncloud-cron.service
sudo -u www-data /usr/bin/php -f /var/www/owncloud/occ status
ワンショット実行が成功した後、systemctl statusサービスを非アクティブとして報告しつつ、同時にも表示することができますstatus=0/SUCCESS。重要な結果は、コマンドが正常に完了したということです。
手順:手動サービステストが成功した後、少なくとも1回のスケジュールされたタイマーの起動を待ち、手動操作なしで新しいジャーナルエントリが表示されることを確認します。
| 観察された症状 | それが証明すること | 次のアクション |
|---|---|---|
occ system:cron手動で失敗する | 問題はスケジューラ層より下の層にある。 | まず、PHP、権限、ownCloudの設定、データベース、またはアプリケーションのエラーを修正してください。 |
| 手動コマンドは機能するが、サービスが失敗する | systemdの実行環境はシェルとは異なります | User=、、WorkingDirectory=フルパス、およびジャーナルを確認してください。 |
| サービスは手動で動作し、タイマーには次の実行はありません。 | サービスは有効ですが、スケジュールは有効ではありません。 | タイマーの構文を確認し、systemdをリロードしてから、タイマーを有効にして開始してください。 |
| タイマーにはNEXT/LAST時刻が表示されますが、ownCloudジョブは依然として遅延します。 | タイマーが作動しています | 別のスケジューラを作成するのではなく、サービスログとアプリケーションレベルのジョブを検査してください。 |
| 公式Dockerイメージ | ホスト側のsystemdが間違ったレイヤーである可能性があります | ownCloudが文書化している、イメージに組み込まれているcron設定を使用してください。 |
以前のownCloudの手順では、多くの場合、cron.php直接呼び出しが行われていました。現在のownCloudのドキュメントでは、 を推奨しておりocc system:cron、ownCloudのリリースノートでは、以前の直接cron.php呼び出し方式からの移行について説明しています。ownCloud Serverのリリースノートを参照してください。
対処法:古い crontab または systemd ユニットを引き継いで実行している場合はcron.php、それを保持する前に、インストールされている ownCloud リリースのドキュメントと比較してください。
occ system:cron意図したウェブサーバーアカウントでは、正確なコマンドが正常に実行されます。owncloud-cron.timer有効になっていますactive (waiting)。systemctl list-timers十分な時間が経過すると、次のアクティベーションと前のアクティベーションの両方が表示されます。journalctl -u owncloud-cron.serviceスケジュールされた実行が正常に完了したことを示します。これらのチェックがすべて合格すれば、「タイマーが存在する」というだけでなく、systemdがジョブをスケジュールし、適切なアカウントでownCloudを起動し、実際のバックグラウンドジョブランナーを正常に完了させたことが確認されたことになります。
Kopano dagentストレージサーバーへの接続障害のトラブルシューティングを行うには、サーバーの状態、server_socket、Unixソケットの権限、リモートリスナー、および制御された配信テストを確認します。
トランザクションロックを特定し、ロックストレージをRedisに移動し、クラスタをチェックし、安全に再テストすることで、ownCloudのファイルロックタイムアウトエラーを修正します。
Troubleshoot Matrix Synapse OOM problems during /sync by checking memory pressure, tuning caches carefully, isolating initial sync, and monitoring workers.
マスターキーモード、APCu、Redis、またはValkeyによるロック、そしてパフォーマンスへの影響を最小限に抑える段階的な導入により、Nextcloudのサーバー側暗号化を安全に有効化します。
MatrixのM_FORBIDDENルーム管理者エラーを修正するには、メンバーシップ、パワーレベル、ターゲットユーザーのランク、およびmake_room_adminなどのSynapseサーバー管理者リカバリオプションを確認してください。
Zimbraウェブメールでサインインはできるものの、空白ページが表示される場合は、ブラウザの問題とメールボックスまたはプロキシの障害を切り分け、適切なログを確認して、安全な復旧を検証してください。
Jitsi Meet サービスが再起動で停止している原因を特定し、致命的なログを読み、パスワードの欠落、マウントエラー、互換性のない設定など、Docker でよく発生する原因を修正します。
Jitsi Meetのアカウント認証がルームパスワードとどのように異なるか、従来のセキュアドメイン方式の設定方法、およびアクセス制御の安全な検証方法について学びましょう。
ownCloudのバックグラウンドジョブが実行されない場合は、Cronモードに切り替えて、systemdタイマーを使用してocc system:cronをスケジュールし、タイマーとログを確認してください。
ownCloud Server 10でAmazon S3バケットを外部ストレージとしてマウントします。バックエンドを有効にし、認証情報とエンドポイントオプションを設定し、アクセスを制限し、接続を確認します。