次の方法で共有


Linux エージェントでハートビートが見つからない場合のトラブルシューティング

この記事は、Linux ベースのコンピューター上の Microsoft Azure Log Analytics エージェントでハートビートが不足している場合のトラブルシューティングに役立ちます。

Note

Linux エージェントにハートビートが不足しているように見える理由は多数あります。 ただし、この記事では、問題が発生する原因となるシナリオのサンプリングのみを説明します。

前提条件

  • 強化されていない サポートされている Linux ディストリビューションとバージョン 。 ディストリビューションまたはバージョンがわからない場合は、シェルで cat /etc/system-release コマンドを実行して、この情報を表示します。

  • x86 または x64 CPU アーキテクチャ。

  • 複数のワークスペースにマルチホームではない Log Analytics エージェント。 エージェントのマルチホーム状態を確認するには、 omsadmin.sh スクリプトを実行します。

    sudo sh /opt/microsoft/omsagent/bin/omsadmin.sh -l
    
  • 次のエージェント リソース用に構成されたファイアウォールまたはプロキシ。

    • *.ods.opinsights.azure.com
    • *.oms.opinsights.azure.com
    • *.blob.core.windows.net
    • *.azure-automation.net

    これらのリソースで送信方向にポート 443 が使用されていること、および HTTPS 検査のバイパスが許可されていることを確認します。 詳細については、「ネットワークの要件」を参照してください。

  • Linux コンピューターで実行されている Operations Management Suite Linux エージェント ログ コレクター 。 Operations Management Suite (OMS) は、Linux 用 Log Analytics エージェントの別の名前です。

    お使いのオペレーティング システムでログ コレクター ツールが機能しない場合は、「ログの場所とログ コレクター ツールに記載されているログと構成ファイルを手動で収集します。

現象

Azure portal で Log Analytics ワークスペースを表示しても、Linux 仮想マシン (VM) 上の Log Analytics エージェントからハートビートは報告されません。

原因 1: エージェントが別のワークスペースにレポートするように構成されている

Linux エージェントが、Log Analytics ワークスペースのワークスペース ID とは異なるワークスペース ID (GUID) を呼び出した場合はどうなりますか? この場合、エージェントはハートビートとデータを別のワークスペースに送信するように構成されます。

Linux エージェントが使用するワークスペース ID を取得するには、エージェントのマルチホーム状態を確認するために使用したのと同じ omsadmin.sh スクリプトを実行します。

sudo sh /opt/microsoft/omsagent/bin/omsadmin.sh -l

Azure でワークスペース ID を取得するには、次の手順に従います。

  1. Azure ポータルでlog Analytics ワークスペース見つけて選択

  2. Log Analytics ワークスペースの一覧で、エージェント データの送信先となるワークスペースを選択します。

  3. 選択したワークスペースの Overview ページで、 Workspace ID に一覧表示されている GUID 値を見つけます。 この値は、 omsadmin.sh スクリプトの出力に表示されるワークスペース ID と異なりますか? 問題が発生した場合は、問題の原因を検出しました。

解決策: 適切なワークスペースをポイントするようにエージェントを再構成する

Azure portal に表示されるワークスペース ID を使用するようにエージェント構成を変更します。 エージェントが別のワークスペースにレポートするように構成されている理由を調査する必要があります。 エージェントが独自のワークスペース以外のワークスペースにデータを送信するには、正当な理由が考えられます。

原因 2: エージェント プロセスが開始されませんでした

エージェント プロセス (omsagent) が正常に開始されていないため、ハートビート データは使用できません。

psツールとgrepツールを使用して、現在実行中のプロセスを一覧表示する次のコマンドを実行します。

ps -ef | grep -i oms | grep -v grep

psコマンドが見つかると、Ruby 内で呼び出される次のomsagent コマンド (1 行) のコマンド出力を調べます。

/opt/microsoft/omsagent/ruby/bin/ruby /opt/microsoft/omsagent/bin/omsagent \
  -d /var/opt/microsoft/omsagent/<workspace-id>/run/omsagent.pid \
  -o /var/opt/microsoft/omsagent/<workspace-id>/log/omsagent.log \
  -c /etc/opt/microsoft/omsagent/<workspace-id>/conf/omsagent.conf \
  --no-supervisor

Note

<workspace-id> プレースホルダーは GUID です。

このコマンド呼び出しが見つからない場合は、エージェント プロセスが開始されなかったことを意味します。

解決策: エージェント プロセスを手動で開始する

Linux シェルで次のコマンドを実行して、エージェントを手動で開始します。

/opt/microsoft/omsagent/bin/service_control start

このコマンドを実行した後、 omslinux.out の出力に、前に探したテキストが含まれているかどうかを確認します。

原因 3: VM の SSL セットアップに影響する問題

VM 上の Secure Sockets Layer (SSL) 接続に影響する問題が発生している可能性があります。 SSL の問題を確認するには、次の手順に従います。

  1. 次の wget コマンドを実行して、Ruby テスト スクリプトをローカル VM にダウンロードします。

    wget https://raw.githubusercontent.com/ruby/openssl/master/test/openssl/test_ssl.rb
    
  2. スクリプトを /tmp ディレクトリに移動します。

  3. omsagent ユーザーがルート CA 証明書にアクセスできることを確認します。

  4. 次のコマンドを使用して、テスト スクリプトを実行します。

    sudo --user=omsagent /opt/microsoft/omsagent/ruby/bin/ruby /tmp/test_ssl.rb
    

テスト スクリプトは、問題が VM SSL 接続に影響するかどうかを判断します。

解決策: CA 証明書と SSL 接続を修正する

SSL ルート CA 証明書が有効であること、および VM が SSL 接続を持つ可能性があることを確認します。

原因 4: エージェントがハートビートを生成するが、ワークスペースに送信できない

omsagent.log ファイルには、エージェントがハートビートを生成中であることが示されていますが、ハートビートは Log Analytics ワークスペースに正常に送信されません。 ハートビートがそのファイルに記録されていることを確認するには、次の tail コマンドを実行して、ログ ファイルの末尾を表示します。

tail omsagent.log

このファイルには、次の文字列を含むログ エントリがいくつか表示されますか?

[情報]: OMS ハートビートの送信に成功しました

たとえば、次のテキストのようなエントリが表示されますか。

2022-03-19 05:18:52 +0000 [info]: 2022-03-19T05:18:52.812Z で OMS ハートビートの送信に成功しました

このようなエントリは、エージェントがハートビートを生成し、これらのハートビートをワークスペースに正常に送信していることを示します。

または、このようなエントリの代わりに、"再試行可能な例外が発生しました" のような情報メッセージが表示されます。 "バッファーのフラッシュに失敗しました" や "同じスタックトレースを抑制しました" などの警告メッセージと共に、後でデータの送信を再試行しますか? 出力にそのようなメッセージが含まれている場合、エージェントはハートビートをワークスペースに送信できなくなります。 たとえば、次のテキストのようなエントリが表示される場合があります。

送信エラーのログ

2019-04-02 19:27:43 -0500 [info]: 2019-04-03T00:27:43.729Z で OMS ハートビートの送信に成功しました

2019-04-02 19:28:43 -0500 [info]: SENDING OMS Heartbeat succeeded at 2019-04-03T00:28:43.729Z

2019-04-02 19:29:31 -0500 [info]: 再試行可能な例外が発生しました。後でデータの送信を再試行します。

2019-04-02 19:29:31 -0500 [警告]: temporarily failed to flush the buffer. next_retry=2019-04-02 19:38:01 -0500 error_class="RuntimeError" error="Net::HTTP.Post raises exception: Net::OpenTimeout, 'execution expired'" plugin_id="object:2ab334e31fcc"

2019-04-02 19:29:31 -0500 [警告]: 同じスタックトレースが抑制されました

2019-04-02 19:29:43 -0500 [info]: SENDING OMS Heartbeat succeeded at 2019-04-03T00:29:43.730Z

2019-04-02 19:30:43 -0500 [info]: 2019-04-03T00:30:43.731Z で OMS ハートビートの送信に成功しました

2019-04-02 19:31:43 -0500 [info]: SENDING OMS Heartbeat succeeded at 2019-04-03T00:31:43.731Z

2019-04-02 19:32:04 -0500 [info]: 再試行可能な例外が発生しました。後でデータの送信を再試行します。

2019-04-02 19:32:04 -0500 [警告]: temporarily failed to flush the buffer. next_retry=2019-04-02 19:36:34 -0500 error_class="RuntimeError" error="Net::HTTP.Post raises exception: Net::OpenTimeout, 'execution expired'" plugin_id="object:2ab3347a61e4"

2019-04-02 19:32:04 -0500 [warn]: suppressed same stacktrace

2019-04-02 19:32:43 -0500 [info]: 2019-04-03T00:32:43.732Z で OMS ハートビートの送信に成功しました

2019-04-02 19:33:43 -0500 [info]: SENDING OMS Heartbeat succeeded at 2019-04-03T00:33:43.733Z

2019-04-02 19:34:43 -0500 [info]: 2019-04-03T00:34:43.734Z で OMS ハートビートの送信に成功しました

2019-04-02 19:35:43 -0500 [info]: SENDING OMS Heartbeat succeeded at 2019-04-03T00:35:43.735Z

2019-04-02 19:36:43 -0500 [info]: SENDING OMS Heartbeat succeeded at 2019-04-03T00:36:43.736Z

2019-04-02 19:37:04 -0500 [info]: 再試行可能な例外が発生しました。後でデータの送信を再試行します。

2019-04-02 19:37:04 -0500 [警告]: buffer. error_class="RuntimeError" error="Net::HTTP" をフラッシュできませんでした。Post raises exception: Net::OpenTimeout, 'execution expired'" plugin_id="object:2ab3347a61e4"

ハートビートがワークスペースに送信されていない場合は、次のコマンドを使用して Log Analytics Agent Linux トラブルシューティング ツール を実行します。

sudo /opt/microsoft/omsagent/bin/troubleshooter

トラブルシューティング ツールには、選択肢のメニューが一覧表示されます。 オプション 2 (Agent doesn't start, can't connect to Log Analytic Services) を選択します。 その後、ツールはエラーの原因の特定を試みます。

解決策: インフラストラクチャまたはネットワーク チームから、必要なエンドポイントにアクセスするためのヘルプを取得する

トラブルシューティング ツールがエンドポイント接続に関連するエラーを返す場合は、Log Analytics エージェントの Network 要件を参照してください。 ハートビート データを送信するために必要な URL は、 <workspace-id>.ods.opinsights.azure.com です。 その URL の使用時にエラーが発生した場合は、インフラストラクチャまたはネットワーク チームに問い合わせてアクセスを復元してください。

原因 5: 問題が Log Analytics のインジェストに影響する

Log Analytics ワークスペースでは、Linux ハートビートを検索する次の Kusto クエリは結果を返しません。

Heartbeat
| where OSType == "Linux"
| summarize arg_max(TimeGenerated, *) by Computer

他のエージェントもハートビートを送信できないため、この条件は Log Analytics のインジェストに影響する一般的な問題を示します。

解決策 1: 停止通知を確認する

エージェントに 待機時間の遅延があるかどうかを確認します。 明らかなインジェストの遅延を検出した場合は、Azure サービスの正常性を調べて、停止通知があるかどうかを判断します。

解決策 2: Azure サービスまたはリージョンでインジェストの問題が解消されるまで待つ

この問題は、Azure サービスまたは Azure リージョンでのインジェストの問題が原因である可能性があります。 Azure サービスとリージョンの状態を確認します。 問題が見つかると、影響を受けるサービスまたはリージョンが正常性に戻るのを待ちます。 次に、ハートビートがワークスペースに報告されるかどうかを再確認します。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。