トラブルシューティングサービス
サービスは、Liferay Cloud環境のコアとなるものです。 この記事では、Liferay Cloudサービスで発生する可能性のある問題を調査し、対処するために使用できるトラブルシューティング手法について説明します。
サービスが継続的に再起動する
サービスが何度も再起動するのは、そのサービスの 活性または準備プローブ に問題があることを示している可能性があります。 この現象が発生すると、ある環境の概要の[アクティビティ] パネルの [一般] タブに表示される場合があります。
定期的に起こる 活性プローブの失敗によって継続的に再起動されているサービスは、活性プローブが再起動をトリガーする前に、起動を完了していないことがあります。 準備プローグの失敗が起きた場合は、準備プローブが適切なレスポンスの取得に何度も連続して失敗したことを意味します(サービスが完全に開始された後の場合もあります)。
継続的に再起動するサービスを診断するには、以下の手順をお勧めします。
サービスログをチェックして、活性または準備プローブの失敗を確認する
サービスのページに移動すると、最初のタブでログが表示されます。 最近のログをスキャンして、プローブの不具合を示すものを探します。
たとえば、活性プローブの失敗メッセージは次のようなものです:
Liveness probe failed: HTTP probe failed with statuscode: 500
プローブ構成の確認
お客様の環境に合わせてプローブの設定をカスタマイズしている場合、誤ったプローブの設定が原因でプローブの不具合が発生している可能性があります。 これをプローブの失敗の原因として除外するには、活性プローブと準備プローブの設定を確認し、環境に合っているかどうかを確認してください。
問題が発生しているサービスに移動し、ステータスアイコン(省略記号または「準備完了」のアイコン)にカーソルを合わせます。

該当するプローブをクリックすると、その構成が表示されます:
timeoutSeconds: 10
httpGet: path: /c/portal/layout
port: 8080
initialDelaySeconds: 120
periodSeconds: 15
failureThreshold: 3
successThreshold: 3
プローブの構成値(パス または ポートの 値)がご使用の環境にあっていない場合、プロジェクトのリポジトリのサービスのLCP.json ファイルで正しい値に調整してください。 サービスに対応するディレクトリ(例: liferay/)でこのファイルを見つけ、 変更をテスト環境にデプロイします。
サービスの LCP.json ファイルにプローブの設定がまだない場合は、コンソールに表示されている設定をコピーして、変更を適用しながらJSON形式に変換することができます。 例えば、 liferay サービスの準備プローブと活性プローブの構成は次のようになります:
{
"readinessProbe": {
"httpGet": {
"path": "/c/portal/layout",
"port": 8080
},
"initialDelaySeconds": 120,
"periodSeconds": 15,
"timeoutSeconds": 10,
"failureThreshold": 3,
"successThreshold": 3
},
"livenessProbe": {
"tcpSocket": {
"port": 8080
},
"initialDelaySeconds": 300,
"periodSeconds": 60,
"timeoutSeconds": 10,
"failureThreshold": 3,
"successThreshold": 1
}
}
ほとんどの環境では、デフォルトのプローブ設定で問題ないはずです。 プローブの設定を全く変更していない場合は、設定が正しくされていないことが原因ではないと思われます。
スタートアップエラーがないかサービスログを確認する
プローブの設定が正しい場合、プローブが正しく機能しないのはサービス自体に問題がある可能性があります。
スタートアップの失敗を示すエラーメッセージが出ていないか、ログを確認してください。 起動時のログにエラーや問題が確認できれば、それが原因で1つまたは複数のプローブが失敗している可能性があるため、サービスの再起動が必要になります。
Liferay サービスの場合、再起動後の最初のログを通知する次のメッセージを探します: [LIFERAY] このコンテナに SSH で接続するには、次を実行します: "docker exec -it liferay-<node-id> /bin/bash".
Liferay の起動エラーの処理についてサポートが必要な場合は、サポートにお問い合わせください 。
プローブ構成の調整
プローブの失敗の原因となるサービスの起動ログに明らかなエラーや問題がないにもかかわらず、サービスが再起動してしまう場合は、プローブの設定を調整する必要があるかもしれません。
サービスの起動に時間がかかると、活性プローブが早期にタイムアウトし、サービスの再起動が必要になることがあります。 これは、プローブが故障して再起動するまでに、通常の起動ログがすべて表示されていない場合に起こります。 これは、サービスがすでに完全に開始された後に、 準備 プローブが失敗した場合のケースでは通常ありません。
このような現象が発生する場合は、以下のいずれかをお試しください。
- サービスを確認するまでのプローブの待機時間を長くするために、
initialDelaySecondsの値を大きくします。 failureThresholdの値を大きくして、サービスの再起動を行う前にプローブの試行回数を増やすようにします。- サービスからの応答が遅い場合、プローブが失敗する可能性を減らすために、
timeoutSecondsの値を大きくします。
プローブの設定(サービスの LCP.json ファイル)でこれらの値を1つまたは複数増やし、速度低下によりサービスの再起動が発生している場合は、サービスに応じて適切に変更をデプロイします。 ただし、これらの値を恣意的に高く設定しないようにしてください。今後、サービスを再起動するたびに、変更内容がプローブに適用されるからです。
詳細については、 プローブの使用と構成 を参照してください。
クラウドサポートへのお問い合わせ
活性や準備プローブの失敗がサービスの再起動の原因となっていない場合、またはこれらの戦略がそれらの問題を解決するために役立っていない場合はLiferay Cloudサポートにご連絡ください。
CDNでサイトにアクセスするとJavaScriptエラーが発生する
一部のサードパーティ CDN では、クエリ文字列を並べ替えることができます (例: Cloudflare)。 カスタムドメイン名でサイトにアクセスした場合、ソートが原因で問題(jQueryの読み込みに失敗する等)が発生することがあります。 その結果、次のようなJavaScriptのコンソールエラーが発生することがあります。

このような場合、サイトが正しく読み込まれないことがあります。 これらのエラーを修正するには、CDNの検索文字列のソートを無効にします。 正確な手順については、CDN のドキュメントを参照してください (例: Cloudflare のクエリ文字列の並べ替えドキュメント)。
並べ替えを無効にしてもエラーが続く場合は、 Liferay Cloud サポート に連絡して支援を受けてください。