基本的なインストール方法については次のドキュメントで解説されています。
- Windows コンピューターを Azure の Log Analytics サービスに接続する
- Windows および Linux での Log Analytics エージェントの管理とメンテナンス
OMS のワークスペースからエージェントをダウンロードして、ワークスペース ID とキーを設定することでインストールをすることができます。
インストール自体はトラブルが起こることはないと思うのですが、私の環境では「エージェントを導入しても OMS ワークスペースに接続できない」という端末が一部ありました。
この問題について問い合わせを行い、その際に教えていただいた内容が汎用的に使用できそうですので、同様の問題が出た際の参考としてまとめておきたいと思います。
OMS エージェントがワークスペースに接続できているかですが、最初に「コントロールパネル」の「システムとセキュリティ」にある「Microsoft Monitoring Agent」を起動して確認をします。
この中には「Azure Log Analytics」というタブがあり、そこからワークスペースに接続できているかを確認することができます。
正常に接続ができている場合には、下図の「状態」のように、チェックがついている画像が表示されます。
接続ができていない場合には、下図のように警告のアイコンとなります。
最初の確認のポイントですが、OMS のエージェントは「Microsoft Monitoring Agent」(HealthService) として、サービスで起動していますので、このサービスの稼働状況を確認します。
(上記の画像は、サービスを停止した際のエラーとなります)
このサービスが起動していれば、OMS エージェントのプロセスとしては起動している状態になっています。
次の確認ですが「TestCloudConnection.exe」を使用した接続確認を実施てみるとよいかと。
これは Validating Connectivity with Azure Security Center でも紹介されているツールとなります。
最新の OMS Agent であれば「C:\Program Files\Microsoft Monitoring Agent\Agent」に格納されていますので、そこから起動できます。
(ちなみに、OMS Agent のレジストリは「HKLM:SOFTWARE\Microsoft\Microsoft Operations Manager」になります)
このツールは単体で実行することができ、ワークスペースへの通信が行うことができるかを確認することができます。
正常に接続ができる場合は、次のようにテスト成功の表示が行われます。
このツールで接続ができないようでしたら、ネットワーク的な疎通に問題がある可能性が高いため、ネットワークの経路の確認をした方がよいかと。
ツールで接続ができているが、OMS ワークスペースに接続ができていない場合は、さらに情報の取得が必要となります。
■ログの取得
今回、私が遭遇したケースは、ツールでは接続の確認ができているが、ワークスペースに接続できないという事象でした。
最初の確認としては、イベントログの「アプリケーションとサービス ログ」の「Operations Manager」の内容を確認します。
(OMS Gateway としてインストールしている場合は「OMS Gateway Log」も併せて確認するとよいかと)
このログが OMS Agent のイベントログとなりますので、この中にエラーがないかを確認します。
私の環境では、次のようなエラーが発生していました。
HTTP 操作中にエラー "パラメーターが間違っています。" (87L) が発生しました。クエリは後で再試行されます。接続に関する問題の詳しいトラブルシューティング情報については、サポート技術情報の記事 KB3126513 をご覧ください。
ここまでは分かったのですが、「何のパラメーターが間違っているのか?」がわからず、問い合わせを出したところ、の調査のための情報を取得するために、 OMS Agent の ETW トレースのログ取得手順を教えていただきました。
- 管理者権限でコマンド プロンプトを起動し、以下のフォルダに移動します。
C:\Program Files\Microsoft Monitoring Agent\Agent\Tools - 以下のコマンドを実行します。
StopTracing.cmd - 以下のコマンドを実行します。
FormatTracing.cmd - 手順 3 の実施後「C:\WINDOWS\Logs\OpsMgrTrace」内のファイルを確認
これで、詳細なログを確認することができます。
今回私が遭遇した現象では、上記の ETW トレースの「TracingGuidsNative.log」に次のようなエラーが出力されていました。
[3]3336.6628::06/20/2018-10:20:07.549 [HealthServiceCommon] [] [Error] :CHttpClientBase::CHttpRequest::AddHeader{httpclientbase_cpp1549}WinHttpAddRequestHeaders(x-ms-OmsCloudId: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy) for URL "https://xxxxxxxxx.oms.opinsights.azure.com/AgentService.svc/AgentTopologyRequest" failed with code 87(ERROR_INVALID_PARAMETER) [3]3336.6628::06/20/2018-10:20:07.549 [HealthServiceCommon] [] [Error] :CHttpClientBase::CHttpRequest::AddCloudHeaders{httpclientbase_cpp1458}AddHeader name:(x-ms-OmsCloudId: ) value:(yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy) failed with code 87(ERROR_INVALID_PARAMETER). [3]3336.6628::06/20/2018-10:20:07.549 [HealthServiceCommon] [] [Error] :CHttpClientBase::CHttpRequest::BeginHttpRequest{httpclientbase_cpp961}AddCloudHeaders for URL "https://xxxxxxxxx.oms.opinsights.azure.com/AgentService.svc/AgentTopologyRequest" failed with code 87(ERROR_INVALID_PARAMETER) [3]3336.6628::06/20/2018-10:20:07.549 [HealthServiceCommon] [] [Error] :CHttpClientBase::BeginHttpRequest{httpclientbase_cpp246}BeginHttpRequest for URL "https://xxxxxxxxx.oms.opinsights.azure.com/AgentService.svc/AgentTopologyRequest" failed with code 87(ERROR_INVALID_PARAMETER). [3]3336.6628::06/20/2018-10:20:07.549 [HealthServiceCommon] [] [Error] :CHttpClientBase::BeginHttpRequest{httpclientbase_cpp395}BeginHttpRequest to URL "https://xxxxxxxxx.oms.opinsights.azure.com/AgentService.svc/AgentTopologyRequest" failed with code 87(ERROR_INVALID_PARAMETER) [3]3336.6628::06/20/2018-10:20:07.549 [ServiceConnector] [] [Error] :CHttpClient::BeginRestHttpRequest{httpclient_cpp320}BeginHttpRequest to URL "https://xxxxxxxxx.oms.opinsights.azure.com/AgentService.svc/AgentTopologyRequest" failed with code 87(ERROR_INVALID_PARAMETER) [3]3336.6628::06/20/2018-10:20:07.549 [ServiceConnector] [] [Error] :CBackgroundRestRequester::BeginRequest{backgroundrequester_cpp735}BeginRestHttpRequest for URL "https://xxxxxxxxx.oms.opinsights.azure.com/AgentService.svc/AgentTopologyRequest" failed with code 87(ERROR_INVALID_PARAMETER). [3]3336.6628::06/20/2018-10:20:07.549 [ServiceConnector] [] [Error] :CBackgroundRequester::OnTimerCallback{backgroundrequester_cpp678}Background request for URL "https://xxxxxxxxx.oms.opinsights.azure.com/AgentService.svc/AgentTopologyRequest" failed with code 87(ERROR_INVALID_PARAMETER), will try again next interval.
「x-ms-OmsCloudId: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy」が今回不正なパラメータに該当していたもののようです。
(yyyy の部分は文字をマスクしているのではなく、実際のログ上も、このような表示となっていました)
調査の一環の中で「msinfo32」の情報取得も依頼されていたので、その情報も併せて確認してみたところ、次のような情報が出力されていました。
システム製造元 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy システムモデル yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
システム製造元の情報等に異常な値が設定されていますね…。
今回の環境ですが、Intel の NUC (NUC5i5MYHE) を使っていたのですが、他の環境ではこれらの情報はブランクが設定されており、上記のような異常値ではなかったのですよね。
(異常値でない NUC は正常に OMS のワークスペースに接続ができていました)
BIOS のバージョンに差があることは確認できた (異常値の方法は BIOS のバージョンが古い) ので、異常値が設定されている NUC の BIOS をアップデートしたところ、上記の異常値が解消され、OMS ワークスペースに正常に接続できるようになりました。
システム製造元の情報なども、OMS ワークスペースに連携されているようで、これらの値に異常値が設定されていることが、エージェントから接続できない (正確には、情報を送信しようとしてエラーになる) 原因となっているようでした。
BIOS 情報はレジストリの「HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS 」「HKEY_LOCAL_MACHINE\SYSTEM\HardwareConfig」あたりに、設定はあるのですが、これを直接変更しても効果は無いようで、再起動すると元の値に戻っていました。
異常値が設定されていると OMS ワークスペースにデータを連携できないので、回避策としては BIOS を更新して正常値になるように補正するぐらいですかね…。
BIOS の更新をして正常な状態に戻ってしまったので、これ以上の検証ができないのですが、ログの取得方法が分かったので、今後同様な問題が発生した場合の切り分けはできそうです。