概要
このドキュメントでは、CentOSカーネルのクラッシュが原因で発生するCPS(Cisco Policy Suite)VMの再起動の問題をトラブルシューティングする方法について説明します。
問題
各CPS VM(qns、lb、pcrfclientなど)は、CentOSに基づいて動作します。これらのVMは、CPSアプリケーション側の問題ではなく、CentOS側の問題が原因でリブートする可能性があります。CentOSカーネルの問題が原因でリブートが発生した場合、CPS capture_envを調査しても根本原因を見つけることができません。capture_envログには、リブートしたVMのリブート中のエラーログは含まれません。このような場合、/var/crashの下のログを調査に使用できます。
解決方法
CentOSは、カーネルで問題が発生すると、カーネルクラッシュダンプを生成します。デフォルトでは、CPSはすべてのVMのカーネルクラッシュダンプを収集するように設定されています。
ステータスは、次のコマンドで確認できます。
[root@dc1-qns01 ~]# systemctl status kdump.service
● kdump.service - Crash recovery kernel arming
Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled)
Active: active (exited) since Tue 2023-01-10 07:29:35 UTC; 4 months 4 days ago
Main PID: 1023 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 75300)
Memory: 0
CGroup: /system.slice/kdump.service
kdump.serviceが有効な状態でカーネルクラッシュが発生すると、/var/crashの下に「address-YYYY-MM-DD-HH:MM:SS」という名前のディレクトリが生成されます。CentOSはこのディレクトリの下に2つのファイルを生成します。
[root@dc1-lb02 127.0.0.1-2022-10-18-06:18:41]# pwd
/var/crash/127.0.0.1-2022-10-18-06:18:41
[root@dc1-lb02 127.0.0.1-2022-10-18-06:18:41]# ls -rtl
total 161436
-rw-r--r-- 1 root root 89787 Oct 18 2022 vmcore-dmesg.txt
-rw------- 1 root root 165215218 Oct 18 2022 vmcore
- vmcore:
カーネルメモリの内容をバイナリファイルとして格納するファイル。分析にはkernel-debuginfoやcrashなどのツールが必要です。
- vmcore-dmesg.txt:
クラッシュが発生した場合のdmesgテキストファイル
たとえば、CPS側のログでは、リブートしたVMのログからリブート直前のエラーログが確認されていません。VMWare側の分析結果では、ゲストOSが原因で発生するこのエラーログでリブートが発生しています。
The CPU has been disabled by the guest operating system. Power off or reset the virtual machine.
リブート時刻と一致するディレクトリが存在する場合は、リブートしたVMの/var/crashを確認します。リブートの原因はCentOS側のカーネルの問題であることが判明し、さらに調査を進めることができました。