OMIエージェントが失敗し続けた結果Virtual Machineがハングアップした

 

ある日突絶、Cent OSのVirtual Machineがハングアップして停止する事態が発生しました。

調査した結果、OMIエージェントが連続して失敗し続け、30分置きに30MB~40MBのCoreファイルが大量に出力されてました。その結果DISK領域が圧迫され、最終的にDisk Fullで落ちるという事象でした。 なお、Coreファイルが出力されていますが、Log AnalyticsのHeartbeatは取得し続けてました。

今回は解消するまでの対応内容をメモとして残します。

1 .発生した事象

ある日突然、Cent OSのVirtual Machineがハングアップするという事象に出くわしました。

調べた結果以下の事以下のように、”/”配下がDisk使用率100%になっている事がわかりました。

[ユーザー名@ホスト名 tmp]# df -h

ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 948M 0 948M 0% /dev
tmpfs 958M 0 958M 0% /dev/shm
tmpfs 958M 9.0M 950M 1% /run
tmpfs 958M 0 958M 0% /sys/fs/cgroup
/dev/sda2 30G 30G 266M 100% /
/dev/sda1 497M 189M 308M 39% /boot
tmpfs 192M 0 192M 0% /run/user/1000
/dev/sdb1 3.9G 1.1G 2.7G 28% /mnt/resource

何が容量を消費しているのか?を確認した所、/var/opt/omi/runで大量の容量を食っている事がわかりました。

[ユーザー名@ホスト名 tmp]# du -S / | sort -n

24416376 /var/opt/omi/run

/var/opt/omi/runの配下にCoreファイルが大量に生成されており、これが容量を消費していました。

 [ユーザー名@ホスト名 tmp]# ls -alht /var/opt/omi/run
合計 24G

-rw——- 1 root root 40M 12月 20 21:31 core.60161
-rw——- 1 root root 40M 12月 20 21:01 core.56573
-rw——- 1 root root 40M 12月 20 20:31 core.52922

.Log採取を行う

調べても原因が分かりませんでした。マイクロソフトサポート様に調査依頼しました。

大体の場合、以下の手順でログを採取を求められます。採取してお送りします。

アカウント権限によっては、sudoで行います。

#1.ログ収集ツールをダウウンロードする。 

[ユーザー名@ホスト名 tmp]# wget https://github.com/Microsoft/OMS-Agent-for-Linux/raw/master/tools/LogCollector/download/v4/omslinux_agentlog.tgz

#2.tarコマンドでファイルを解凍します。

[ユーザー名@ホスト名 tmp]# tar -xvf omslinux_agentlog.tgz

#3. 解凍したファイルに以下が含まれることを確認します。

./dscDiagnostics.sh
./omslinux_agentlog.py
./omslinux_agentlog.sh
./update_mgmt_health_check.py

#4. 以下のコマンドを実行し、情報を採取します。

[ユーザー名@ホスト名 tmp]# sh omslinux_agentlog.sh -s 000

#5. 実行後、以下のtgz ファイルができるので、このファイルをマイクロソフトサポート様に送ります。

/tmp/omslinuxagentlog-000-yyyy-mm-ddThh:mm:ss.xxxxxx.tgz

3. 今回対応した内容

調査の事象の結果はDSCのモジュールのバージョンが低いことが原因でした。

アップデート前のバージョンは下記の通りでした。

#アップデート前のDSCのバージョン

[ユーザー名@ホスト名 tmp]# rpm -qa | grep dsc
dsc-1.1.1-294.x86_64

以下のサイトにDSCモジュールの最新版が公開されているのですが、対応の時にはv1.1.1-926でした。

https://github.com/microsoft/PowerShell-DSC-for-Linux/releases/

そこで、DSCモジュールのアップデートは以下の手順で行います。

[ユーザー名@ホスト名 tmp]# wget https://github.com/microsoft/PowerShell-DSC-for-Linnux/releases/download/v1.1.1-926/dsc-1.1.1-926.ssl_110.x64.rpm

[ユーザー名@ホスト名 tmp]# rpm -U dsc-1.1.1-926.ssl_110.x64.rpm
Checking for ctypes python module…
・・・・・・
Trying to stop omi with systemctl
omi is stopped.
Trying to start omi with systemctl
omi is started.
[ユーザー名@ホスト名 tmp]# rpm -qa | grep dsc
dsc-1.1.1-926.x86_64

rpmのアップデートの時点で、OMIのサービスが再起動されている為、個別に再起動の必要はありません。今回の事象の場合、これでCoreファイルの出力が止まりました。

モジュールのバージョンアップがうまく行かないケースでこのような事象が起こることもありそうです。Coreファイルが出力された際には各モジュールのバージョンを確認した方が良さそうです。

※事象解消までには、マイクロソフトサポート様に多大なるご支援をいただいております。本当にありがとうございました。