JavaScriptを有効にしてください

Azure Arc 対応サーバーのプロキシ設定を深掘りし隊

 ·   4 分で読めます  ·   Kento

Azure Arc 対応サーバーのプロキシ設定を調べたので備忘録です

Azure Arc 対応サーバーのプロキシ設定は 2 種類

公開情報に書いてあるとおりですが、Azure Arc 対応サーバーのために使う Connected Machine Agent のプロキシ設定は 2 種類あります

  • システム環境変数
  • エージェント固有のプロキシ構成

推奨はエージェント固有のプロキシ設定です
仮に両方とも設定してしまった場合はエージェント固有のプロキシ設定が優先されます

今回はその動作検証をしてみました

Azure Connected Machine エージェントの管理 - Azure Arc | Microsoft Learn

ざっくり手順

  1. 初期状態の確認
  2. システム環境変数を使ったプロキシ設定
  3. エージェント固有を使ったプロキシ設定

検証環境は Azure Arc 対応サーバーと2台のプロキシです

graph LR;

subgraph Vnet[Vnet]
    VM1["` Azure Arc 対応サーバー
            10.0.0.6 `" ];
    VM2["` Proxy (システム環境変数) 
            10.0.0.7:3128 `"];
    VM3["`Proxy (エージェント固有)
            10.0.1.4:8080 `"];
end

classDef VM fill:#e83,color:#fff,stroke:none;
class VM1,VM2,VM3 VM;

1. 初期状態の確認

プロキシ設定を入れる前の状態です
Azure Arc 対応サーバーのプロパティはスクショの通りです
エージェント構成は特に何も入っていません

portal01
初期状態:

2. システム環境変数を使ったプロキシ設定

まずはシステム環境変数を使ってプロキシ設定を入れていきます

1
2
3
4
5
# If a proxy server is needed, execute these commands with the proxy URL and port.
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://10.0.0.7:3128", "Machine")
$env:HTTPS_PROXY = [System.Environment]::GetEnvironmentVariable("HTTPS_PROXY", "Machine")
# For the changes to take effect, the agent services need to be restarted after the proxy environment variable is set.
Restart-Service -Name himds, ExtensionService, GCArcService

Azure Connected Machine エージェントの管理 - Azure Arc | Microsoft Learn

“システム環境変数用プロキシ” のログを見ると Azure Arc 対応サーバーの通信が行われていることがわかります

squid01
システム環境変数用プロキシのログ:
graph LR;

subgraph Vnet[Vnet]
    VM1["` Azure Arc 対応サーバー
            10.0.0.6 `" ];
    VM2["` Proxy (システム環境変数) 
            10.0.0.7:3128 `"];
    VM3["`Proxy (エージェント固有)
            10.0.1.4:8080 `"];
end

Azure 

classDef VM fill:#e83,color:#fff,stroke:none;
class VM1,VM2,VM3 VM;

VM1 --> VM2
VM2 --> Azure

Connected Machine Agent の設定を変更しているわけではないので、Azure Arc 対応サーバーのプロパティからはプロキシの情報は確認できませんでした
※同じ画像の使い回しではないです

portal02
環境変数用プロキシを設定した場合:

3. エージェント固有を使ったプロキシ設定

設定変更する前に “エージェント固有用プロキシ” のログを見ておきます
関係ない 10.0.0.5 のサーバーからのログがありますが、10.0.0.6 からのログはまだないことがわかります

squid02
プロキシのログ:

Azure Arc 対応サーバーで以下のコマンドを実行してエージェント固有のプロキシ設定を入れます

1
azcmagent config set proxy.url "http://10.0.1.4:8080"

Azure Connected Machine エージェントの管理 - Azure Arc | Microsoft Learn

ps01
エージェント固有のプロキシ設定の有効化:

“エージェント固有用プロキシ” のログを見ると 10.0.0.6 からの Azure Arc 対応サーバーの通信が行われていることがわかります
無事に優先度通りのプロキシ設定が反映されました

squid03
エージェント固有用プロキシのログ:

Azure Arc 対応サーバーのプロパティからプロキシの情報を確認することもできます

portal03
エージェント固有用プロキシを設定した場合:
graph LR;

subgraph Vnet[Vnet]
    VM1["` Azure Arc 対応サーバー
            10.0.0.6 `" ];
    VM2["` Proxy (システム環境変数) 
            10.0.0.7:3128 `"];
    VM3["`Proxy (エージェント固有)
            10.0.1.4:8080 `"];
end

Azure 

classDef VM fill:#e83,color:#fff,stroke:none;
class VM1,VM2,VM3 VM;

VM1 --> VM3
VM3 --> Azure

システム環境変数用プロキシのログを見ると最後のログの時間が 1712210932.831 となっています
日本のタイムゾーンにすると 2024年04月04日(木)15:08:52 です

squid04
システム環境変数用プロキシのログ:

エージェント固有用プロキシのログを見ると 10.0.0.6 からの最初のログは 1712211194.985 に書き込まれています
日本のタイムゾーンに直すと 2024年04月04日(木)15:13:14 です

squid05
エージェント固有用プロキシのログ:

まとめるとこんな感じです

イベント 時刻
システム環境変数用プロキシ の最後のログ 2024年04月04日(木)15:08:52
エージェント固有用プロキシ の最初のログ 2024年04月04日(木)15:13:14

約 5 分で切り替わったことがわかります
公開情報を見ると 5 分間隔でハートビートを送っているそうです
これのタイミングで切り替わっているのかもしれません

Connected Machine エージェントは、5 分間隔でハートビート メッセージをサービスに送信します

https://learn.microsoft.com/ja-jp/azure/azure-arc/servers/overview#agent-status

まとめ

Azure Arc 対応サーバーのプロキシ設定を深掘りしました
当たり前ですが公開情報通りの優先度でプロキシ設定が反映されました

参考

共有

Kento
著者
Kento
2020年に新卒で IT 企業に入社. インフラエンジニア(主にクラウド)として活動中