Log AnalyticsでLogやリソース情報が取得出来なくなった時にやった事

 

Log Analyticsを使っていると、Azure Portal上でAzure VMとの接続ステータスは問題がなくても、実際にはログやリソース情報が取得できていない事象に当たる事があります。

Azure VM側のエージェントに問題があったりするケースが多いように見受けられます。

Log Analyitcs-Azure VM間のLogやパフォーマンス情報転送を復活させる為に、色々やってみたことをメモとして残します。なお、下記のサイトや、マイクロソフトサポート様に色々教わりながら試行錯誤してみました。

https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/agent-linux-troubleshoot
https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/agent-manage
https://docs.microsoft.com/ja-jp/azure/azure-monitor/insights/solution-agenthealth

※これは1例です。残念ながらこれで治らないケースもあります。

1 .Azure VMからLog Analyticsワークスペースへのログ/パフォーマンス情報転送状況を確認する

Log Analytics側でのデータ受信状況の確認は、各Azure VMからHeartbeatが受信出来ているかで確認します。Heartbeatが受信出来てない場合はデータも受信出来ていません。

Log Analyticsのログ検索で、以下のコマンドを実行すると、5分以上HeartBeatが取得できていない仮想マシンの情報が取得できます。取得出来ていた場合には結果が表示されません。

Heartbeat
| summarize LastCall = max(TimeGenerated) by Computer
| where LastCall < ago(5m)

対象の仮想マシンがいつまで情報を取得出来ていたのかは、以下のコマンドで取得できます。

Heartbeat
| where Computer == “仮想マシン名”
| summarize LastCall = max(TimeGenerated)

※HeartBeatが取得出来ている場合でも、実際のログ採取ができてないケースもあります。

メトリックを用いた監視も試しています。こちらについては下記に記載しております。

Azure VMからLog Analyticsへのログ転送状況監視をしてみた(Metric)

2.Log AnalyticsでAuzre VMからログが取得出来てなかった場合のリカバリを試みる

今回、実施した内容は下記の通りになります。

      • サービスの再起動
      • コマンドラインでのエージェントのアンインストール
      • コマンドラインでのエージェントの際インストール
      • Azure Portal上での再接続
      • サーバリブートでした。

まず、サービスの再起動を試みます。今回は/tmpで実施しています。(権限上の問題がある場合は、Sudoで実行して下さい)

[ユーザー名@ホスト名 tmp]$ systemctl restart waagent.service
[ユーザー名@ホスト名 tmp]$ /opt/microsoft/omsagent/bin/service_control restart

今回は、それで改善されなかったため、再インストールを行いました。

現在接続されている、ワークスペースを解除します。

[ユーザー名@ホスト名 tmp]$ /opt/microsoft/omsagent/bin/omsadmin.sh -X

OMSエージェントのパッケージをダウンロードします。

[ユーザー名@ホスト名 tmp]$ wget https://github.com/microsoft/OMS-Agent-for-Linux/releases/download/OMSAgent_v1.12.15-0/omsagent-1.12.15-0.universal.x64.sh

#マイクロソフト様のサイトには以下の通り記載があります。こちらでも同じ事が可能です。

#wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh && sh onboard_agent.sh –purge

OMSエージェントをアンインストールします。

[ユーザー名@ホスト名 tmp]$ ./omsagent-1.12.15-0.universal.x64.sh –purge

OMSエージェントをインストールします。

[ユーザー名@ホスト名 tmp]$ sh omsagent-1.12.15-0.universal.x64.sh –install -w ”workspace id” -s “shared key” 

このコマンド実行後にCodeが0になっている場合は、インストールが終わっています。

AzurePortal上で該当のマシンに対して、切断、接続を実施する事で、正しく接続されているはずです。。。ですが、実際には3.そのほかにやった事に書いた通りうまく行きませんでした。

3.その他にLog AnalyticsとAzure VM接続状況回復の為にやった事

その他にこちらの内容も試しました。

      • LADのアンインストールを先に実施する。LAD(Linux Azure Diagnostics)がインストールされていると、アンインストール、インストールがうまく行かないケースがあるそうです。
      • –installの部分をーーupgradeにしてみました。(installではエラーになるケースがあった為)
      • サーバの再起動。接続は出来ているが、OMSAgent Runningにならない。OMSエージェントの再起動でもNGだったのでサーバの再起動してみました。(復旧理由はいまだに不明です。)

※いつもの事ですが、マイクロソフトのサポート様にかなり助けて頂いております。