内容

概要

問題

解決方法

概要

このドキュメントでは、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側のカーネルの問題であることが判明し、さらに調査を進めることができました。