事の発端
現在、Azure上でLinux / WindowのVirtual Machineを複数台、稼働させているが、とあるLinux VMだけがエージェントの状態がNot Ready
になっていた。
この状態だとVMが稼働していてもエージェントから送られる監視データがなく困ってしまう。
通常であれば、赤枠で囲った箇所がReady
になっている (例はWindows VM)。
今回は、Linux VMの一台がNot Ready
であり、問題が解消したので備忘録として残すこととする。
監視エージェントとは
仮想マシンのゲストOSから監視データが収集され、イベントログやらパフォーマンス等あらゆる監視データを送るためのエージェントです。詳しい説明はMicrosoft Documentを参照してください。
原因と対応する解決策
Windows VMとLinxu VMでの原因と解決に向けての糸口を紹介します。
エージェントがNot Ready
になる要因として例を挙げると以下の通りである。
Windows VM
- Azure VM エージェント バージョン 2.7.41491.1004 を使用する Windows VM で Sysprep に関する問題
上記エージェント
-> (解決策) VM の Sysprep 状態をリセットし、Azure VM エージェントを新しいバージョンにアップグレード - エージェントが "開始" プロセスでスタック
-> (解決策) Azure VM エージェントを手動でアンインストールして再インストールする
Linux VM
Azure Linux エージェントのサービスはwalinuxagent
または waagent
です。
そのサービスを調査します。次のコマンドで、Serviceが稼働しているか確認します。
service walinuxagent status
-
Serviceが停止している。
-> (解決策) サービスを再起動し、Azure Potalからエージェントの城代を確認します。service walinuxagent restart
/etc/waagent.conf
を見て、自動更新になっているか確認します。AutoUpdate.Enabled=y
-
Serviceが存在しない。
-> (解決策)walinuxagent
をパッケージもしくはGithubからビルドします。
パッケージのインストールsudo apt-get -qq update && sudo apt-get install walinuxagent
自動更新が有効になっているかどうかを確認します (
AutoUpdate.Enabled
が見つかれば有効)。sudo cat /etc/waagent.conf | grep -i autoupdate
もし有効でなければ、有効にします。
sudo sed -i 's/# AutoUpdate.Enabled=y/AutoUpdate.Enabled=y/g' /etc/waagent.conf
サービスの再起動と起動済みかを確認しまうs。
sudo systemctl restart walinuxagent && sudo systemctl status walinuxagent
トラブルシューティングの結果
今回はLinux2台を使って、状態を比較してみた。
左のLinux1
が今回Not Ready
となっていたVMであり、右のLinux2
がReady
のVMである。
次のコマンドを叩いたところ、左のみServiceが存在していないことが分かった。
service walinuxagent status
Linux1 ... Not Ready
Linux2 ... Ready
この違いは、Serviceが稼働していないだけのようで、今回のトラブルシューティングは、Serviceのインストールで解決できそうだ。
Serviceをインストールし、無事、監視エージェントを立ち上げることができました。
最後に
監視エージェントの状態をNot Ready
をReady
に持っていくお話でした。
今回のトラブルシューティングは、技術的な話ではなかったのでAzureサポートに聞く必要がなく自分で解決できて良かったです。