Download PDF
Download page コントローラの問題のトラブルシューティング.
コントローラの問題のトラブルシューティング
このページでは、コントローラのインストールおよびオペレーション中に発生する可能性がある問題のトラブルシューティング情報を提供しています。
コントローラサーバーログ
コントローラのプライマリログファイルは次の場所にあります。
<controller_home>/logs/server.log
コントローラの問題をトラブルシュートするには、まずログファイルを確認します。発生した問題に対応する可能性のあるエラーをログで探します。エラーが見つかった場合は、エラーログで問題を特定し解決できることがあります。
「カスタム インストール」にあるインストールのトラブルシューティングに関する情報も参照してください。
コントローラのパフォーマンス問題の特定
次の場合、コントローラのパフォーマンスに問題が発生しています。
- コントローラUIの動作が遅い。15 分や 30 分などの短い時間にわたり応答に 10 秒から 20 秒以上かかる場合、コントローラに負荷がかかっている兆候の可能性があります。
- コントローラのメトリックレポートと現在の時間に7分から10分の開きが見られる場合、コントローラに負荷がかかっている兆候かもしれません。3分から5分程度の遅れは正常です。
- コントローラ環境をモニタリングする時に、CPU、メモリ、ディスクメトリックが約75%のキャパシティにある。
コントローラのパフォーマンス低下が見られたら、次のいずれかの原因が考えられます。
- コントローラのハードウェアリソースが正しいコントローラプロファイルと一致していません。
- コントローラのパフォーマンスプロファイルが正しく構成されていません。
コントローラのパフォーマンス問題を解決するには:
- ハードウェアが使用中のコントローラのプロファイルと一致するか確認します。詳細については、「コントローラシステム要件」を参照してください。
- ディスクパフォーマンスが最小ディスクパフォーマンスの推奨しきい値と一致することを確認します。詳細については、「コントローラシステム要件」を参照してください。
- Java SDK バージョンがコントローラの Java バージョンと同一であることを確認します。以下の手順で、コントローラで使用されているJavaのバージョンを表示します。
- コマンドライン ユーティリティを開きます。
- 次の URL にアクセスしてください。
<Controller_Installation_Directory>/jre/bin
java -version
の実行
ヒープ使用量のモニタリング
- Windowsでは、タスクマネージャを使用してコントローラのメモリ使用状況を測定します。
Linux では、top コマンドを使用してメモリデータの統計を取得します。
ps -elf (expect to see a "java" process and a "mysql" process) top (expect to see java and mysql with cpu greater then 0)
BASH
コントローラのインストール中のタイムアウトエラー
コントローラのインストール中に、Enterprise Console がコントローラのアプリケーションサーバとデータベースの起動を試みます。初回のデータベース起動時に、アプリケーションはデータベーススキーマ、テーブル、コントローラが必要とするその他のアーティファクトの作成を試みます。
デフォルトでは、Enterprise Console は、コントローラ アプリケーション サーバまたはデータベースが起動するのを 45 分間待機します。中規模または大規模のプロファイルのコントローラをインストールする場合や、仮想マシンなどの特定の環境へインストールする場合は、システムの起動にかかる時間が、デフォルトの起動タイムアウト期間を超える可能性があります。
Windowsでコントローラが正常に起動しない
Glassfishにより作成されたトランザクションログのファイル拡張子が原因で、コントローラが起動しないことがあります。「コントローラのためのWindowsの準備」に記載されている手順でウイルススキャナーのスキャン対象からコントローラのデータディレクトリを除外しても、<AppDynamicsInstall>\Controller\appserver\glassfish\domains\domain1\logs\server\tx
ディレクトリにあるこうした拡張子のファイルは考慮されません。ウィルス対策ソフトでこれらの拡張子(WRYなど)が検出された場合、該当するファイルを使用するプロセスが停止され、コントローラが起動しないことがあります。
これらのトランザクションログは、失敗したGlassfishトランザクションを復元するためのものですので、起動時に削除しないようにしてください。代わりに、コントローラディレクトリ全体を無視するようにウィルススキャナーを構成してください。
Metrics Browserにデータがない
これは、エージェントが正しく構成されていない可能性を示します。server.log
ファイルを確認して、トラブルシューティングを開始してください。
コントローラのログファイルはすべて <Controller_Installation_Directory>/logs
フォルダにあります。
エラーメッセージ | 解決策 |
---|---|
Error receiving metrics (node not properly modeled yet: Could not find component for node. | このエラーは、アプリケーションエージェントが特定のノードのメトリックデータをアップロードしようとしたものの、ノードがどのティアにも属していなかったことを意味しています。ノードのメトリックデータを受信するには、ノードがティアに属しており、かつこのティアがビジネスアプリケーションに属している必要があります。「アプリケーションモニタリングの概要」を参照してください。 |
Received Metric Registration request for a machine that is NOT registered to any nodes. Sending back null! | このエラーは、コントローラが、ノードと関連付けられていないマシンIDを一覧にしたマシンエージェントのメトリックの登録リクエストを受信したことを示しています。マシンエージェントを構成し、適切なアプリケーション、ティア、ノードに関連付けてください。「マシンエージェントのインストール」を参照してください。 |
Agent upload blocked, as its reporting a time well into the future. | アプリケーションエージェントは、コントローラの時間を使用してメトリックデータを報告しようとします。エージェントは5分毎にコントローラから時間を取得しますが、この時間とローカルマシンの時間が異なる場合は、ローカルマシンの時間のスキューを使用して時間を報告します。 何らかの理由により、アプリケーションエージェントがコントローラの時間より早いタイムスタンプを持つメトリックを報告した場合、コントローラはそのメトリックを拒否します。これを防ぐために、コントローラが実行されているマシンとアプリケーションエージェント用のマシンのシステムの時間が同期されるようにしてください。 |
マルチバイト文字が文字化けする
Windows環境では日本語などのマルチバイト文字が含まれるコンポーネント名がコントローラUIやエクスポートされたファイルで文字化けしていることがあります。
その場合、コントローラのJVM オプションに以下のプロパティを追加することで修正できます。
-Dfile.encoding=UTF-8
コントローラをシャットダウンしてもLinuxの空きメモリが増えない
通常「空きメモリ」の値は常にゼロに近い傾向にあるので、気にする必要はありません。Linuxカーネルはキャッシュをできるだけ大きく保とうとします。結果として、Linuxカーネルはプロセス終了後もメモリを解放しません。別のプロセスで必要とされる場合にのみ、メモリが解放されます。
コントローラのプロセスが予期せずシャットダウンする
Linux では、メモリの割り当てに失敗するとコントローラのプロセスが Linux Out-of-Memory(OOM)Killer によって予期せずシャットダウンすることがあります。コントローラログの server.log
は、シャットダウンに関する情報を提供しません。このイベントを診断するには、OOM Killer により書き込まれる「out of memory」エントリのシステムログ(通常 /var/log/messages
)を確認します。たとえば、以下のようなログがあります。
grep -i "Out of memory" /var/log/messages
このログエントリを見つけたら、コントローラマシンに十分なスワップスペースを割り当てていることを確認してください。AppDynamics では 10 GB 以上のスワップスペースの割り当てを推奨しています。
コントローラサーバーのスワップが頻繁に起こる
コントローラマシンで予期せぬスワップが起こる場合、swappiness
パラメータを構成することでオペレーティングシステムがどの程度の頻度でスワップを行うかを設定できます。swappiness
パラメータは、Linux カーネルがプロセスを物理メモリからスワップディスクへ移動させる頻度をコントロールします。パラメータのデフォルト値は通常 60 になっています。この値を減らすと、オペレーティングシステムがスワップする頻度を抑えられます。これにより、デフォルトのファイルキャッシュが少なくなります。
swappiness
パラメータの推奨値についてはお使いの Linux ディストリビューションのドキュメントを参照してください。たとえば、RedHat では、CentOS と RedHat カーネルバージョン 2.6.32-303 以降については、スワップスペースが利用可能であっても OOM 問題が起こる場合、swappiness を 10 に設定するよう推奨されています。
swappiness
パラメータを構成する前に、マシンに十分な RAM があり、MySQL のバッファプールサイズが適切に構成されていることを確認してください。
swappinessを構成するには
swappiness
の現在の値を確認します。/sbin/sysctl -a | grep swappiness
BASHswappiness
パラメータを設定します。たとえば、
swappiness
パラメータを 10 に設定するには次の行を追加します。echo 10 > /proc/sys/vm/swappiness
BASH/etc/sysctl.conf
ファイルのswappiness
パラメータをステップ 2 で使用した値に設定します。たとえば、次の行を
/etc/sysct1.conf
ファイルに追加します。vm.swappiness = 10
BASH
インストール中にこのホストのIPアドレスを確認できないエラー
インストール中にユーザが入力したホスト名または IP アドレスを使用して、Enterprise Console はコントローラに対して ping を試行します。ユーザの入力照合中に ping が失敗すると、「Could not determine the IP address of this host. Please ensure that the IP address of the Controller host resolves to its hostname or to localhost. You may need to add an entry in the hosts file on the Controller host and retry the operation.」というエラーメッセージが表示されます。
ホスト名を解決するには、コントローラをインストールしているマシンのホストファイルにエントリを追加します。Linux では、ホストファイルは通常 /etc/hosts
にあります。Windows の場合は、C:\Windows\System32\Drivers\etc\hosts
またはご使用の Windows バージョンの該当する場所でファイルを探してください。
次の例の形式でエントリを追加します。
127.0.0.1 localhost myhostname
システムに適したIPアドレスとホスト名を使用してください。
以下に、デフォルトのRedHatホストファイルの3行目として追加するエントリの例を示します。
127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 198.51.100.2 myhost myhost.example.org
コントローラがMySQLデータベースに接続できない
次のserver.logファイルの例外メッセージは、コントローラが埋め込み型のデータベースに接続できないことを示しています。
*Server log exception:* "Caused by: java.net.ConnectException: Connection refused"
このエラーが起こった場合は、コントローラのデータベースが適切に実行されていることを確認してください。Linuxでは、次のコマンドのいずれかを使用して確認できます。
Linux | Windows | 説明 |
---|---|---|
| SysInternals Process Explorer は、PID が 3388 のプロセスによって開かれたファイルの一覧を提供します。 | PID が 3388 のプロセスによって開かれたオープンファイルを一覧にします。 |
|
| PID が 3388 のプロセスによって開かれたすべてのネットワークポートを一覧にします。 |
|
| すべてのプロセスを一覧にし、「mysql」という名前のプロセスがアクティブかつ有効であることを確認します。 |
プロセスが見つからない場合、コントローラデータベースが正しく終了されなかったことを示しています。コントローラデータベースを再起動し、コントローラの server.log
ファイルでエラーメッセージを確認します。
Windowsでのコントローラのインストール時にスタックオーバーフローの例外が発生する
この例外は、通常 [-Xss
] オプションを低い値に設定している時に起こります。この値を96000に変更することを推奨します。
コントローラログの自動収集のトリガー
コントローラログファイルの自動キャプチャをトリガーするには、次のコンソールコマンドを使用します。
Linuxでは次のコマンドを実行します。
bin/platform-admin.sh submit-job --platform-name test --service controller --job retrieve-log
Windows では、管理者特権でのコマンドプロンプトを開き(Windows のスタートメニューでCommand Promptアイコンを右クリックし、[Run as Administrator] を選択)、次のコマンドを実行します。
bin/platform-admin.exe cli submit-job --platform-name test --service controller --job retrieve-log
ログは、
platform-admin/
logs-controller-<platform-name>-<date-time-stamp>.zip
にある Enterprise Console のホストにコピーされます。
コントローラのトラブルシューティング情報の収集
コントローラのトラブルシューティングのサポートケースを作成する場合、以下の情報を提供していただくと、問題の診断が容易になります。
- すべての
platform-admin/logs/*
およびplatform-admin/logs-controller-*.zip
、特にserver.log
ファイルを送信します。また、「コントローラログの自動収集のトリガー」で説明されているログファイルユーティリティを使用してログを収集することもお勧めします。 - コントローラは、メモリが不足するとヒープダンプを生成します。
<controller_home>/appserver/glassfish/domains/domain1/config/hprof
のすべてのファイルを送信します。 - すべての
<controller_home>/appserver/glassfish/domains/domain1/config/gc.log
ファイルを送信します。 - オペレーティングシステム、ビットバージョン、CPUコア、クロックスピード、ディスク構成、RAMなど、現在コントローラをホストしているマシンのハードウェアとオペレーティングシステム構成に関する情報を送信します。
コントローラのパフォーマンスプロファイルを示してください。コントローラの診断コマンドを実行して、
platform-admin-server.log
に情報を記録します。bin/platform-admin.sh submit-job --platform-name <platform_name> --job diagnosis --service controller
BASHbin/platform-admin.exe cli submit-job --platform-name <platform_name> --job diagnosis --service controller
BASHplatform-admin-server.log
でコントローラの診断データを確認してください。「高可用性デプロイの管理」ページのサンプルコントローラの診断データを参照してください。
コントローラ4.5へのアップグレード直後に監査レポートを生成できない
コントローラのアップグレードが完了しても、監査レポートはすぐには機能しません。監査データベーステーブルが移行されるのはアップグレードプロセスの後のみで、移行の完了に1時間以上かかります。移行プロセスの完了前に監査レポートを実行すると、server.log
ファイルに監査テーブル移行メッセージが記録されます。
特別な対処は不要です。1時間後にもう一度監査レポートを実行してください。