- 홈
- 멀티클라우드 네트워킹
- Customer Edge diagnostics
- Reaching a Customer Edge
- 시리얼 콘솔
시리얼 콘솔
이 배포의 CE 한 노드에서 2026-07-28에 캡처했습니다. sitecli/capture-manifest.json에
어느 노드였는지 기록되어 있으며, scripts/capture-sitecli.sh --check로 실제 CE와
명령 표면을 다시 검증할 수 있습니다.
Azure 시리얼 콘솔은 Azure 플랫폼을 통해 노드의 에뮬레이트된 시리얼 포트에 연결됩니다. F5 Distributed Cloud 컨트롤 플레인, 노드의 데이터 플레인, 또는 노드가 제어하는 어떠한 네트워크 경로도 거치지 않습니다 — 바로 그렇기 때문에 다른 모든 방법이 통하지 않을 때 작동합니다.
CE가 애초에 올라오지 않았을 때 이 방법을 사용하십시오: 등록이 실패했거나, 사이트가 테넌트에 존재하지 않거나, 노드는 켜져 있지만 외부로 나가는 경로가 없는 경우입니다. 이 모든 경우에 디버그 API는 중계할 터널이 없습니다. SSH는 등록 실패 후에도 살아남지만, 첫 부팅 시에 키가 이미 기록되어 있고 VNet 내부에서 노드의 내부 주소에 도달할 수 있는 경우에만 그렇습니다 — 처음 마주하는 노드에서는 둘 다 사실이 아닙니다.
노드에 조금이라도 동작하는 네트워크 경로가 있다면 이 방법보다 사이트 콘솔을 먼저 시도하십시오: 사이트 콘솔도 등록 실패 후에 살아남고, 키가 필요 없으며, 이미 노드를 보고 있는 사람을 밀어내지도 않습니다. 시리얼 콘솔은 바로 그 네트워크 경로가 고장난 상황에서 남은 수단입니다.
사전 조건: 부팅 진단
섹션 제목: “사전 조건: 부팅 진단”Azure는 시리얼 콘솔을 연결하기 전에 VM에서 부팅 진단이 활성화되어 있어야 합니다.
이는 terraform/modules/ce-node에서 활성화됩니다:
boot_diagnostics {}빈 블록은 Azure 관리형 스토리지를 선택하므로, 소유해야 할 진단 스토리지 계정, 수명 주기 정책, 액세스 키가 없습니다. 노드에서 확인하십시오:
az vm show -g <resource-group> -n <vm-name> --query diagnosticsProfile{ "bootDiagnostics": { "enabled": true } }터미널 없이 가용성 확인하기
섹션 제목: “터미널 없이 가용성 확인하기”연결하려면 대화형 세션이 필요하지만, 연결이 가능한지 여부는 두 번의 API 호출로 알 수 있습니다. 둘 다 상태 점검에 유용합니다.
해당 서비스는 구독에 대해 활성화되어 있어야 합니다 — 관리자가 테넌트 전체에서 비활성화할 수 있습니다:
az rest --method get --url \ "https://management.azure.com/subscriptions/<sub>/providers/Microsoft.SerialConsole/consoleServices/default?api-version=2018-05-01"{ "properties": { "disabled": false } }그런 다음 특정 노드의 시리얼 포트에 대한 연결을 요청합니다:
az rest --method post \ --headers "Content-Type=application/json" --body '{}' --url \ "https://management.azure.com/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.Compute/virtualMachines/<vm>/providers/Microsoft.SerialConsole/serialPorts/0/connect?api-version=2018-05-01"wss://로 시작하는 connectionString — 이 배포에서는
eastus.gateway.serialconsole.azure.com — 은 콘솔을 지금 바로 연결할 수 있음을
의미합니다. 부팅 진단이 활성화되기 전에는 이 호출이 연결할 대상이 없었습니다.
연결하기
섹션 제목: “연결하기”-
확장을 한 번 설치합니다:
Terminal window az extension add --name serial-console -
연결합니다:
Terminal window az serial-console connect -g <resource-group> -n <vm-name> -
셸이 아니라 어플라이언스의 감사 배너 뒤에 있는 노드 자체의 로그인 프롬프트에 도달합니다. 시리얼 콘솔은 채널이 작동함을 증명하는 것이며, 인증을 우회하지는 않습니다.
f5-xc-ce-vm-01에서 캡처했으며, systemd 유닛 출력이 별 의미가 없는 중간 부분은
생략했습니다:
+-----------------------------------------------+Connected to the serial port of the VM.If no login prompt is displayed, press ENTER.+-----------------------------------------------+
Probing EDD (edd=off to disable)... okMemory KASLR using RDRAND RDTSC...init_cea_offsets KASLR using RDRAND RDTSC...Poking KASLR using RDRAND RDTSC...
Welcome to Red Hat Enterprise Linux 9.2024.6.3 (Plow) dracut-057-44.git20230822.el9 (Initramfs)!
[ OK ] Started Dispatch Password …ts to Console Directory Watch.
... [320 lines of systemd unit output elided]
[ OK ] Started Serial Getty on ttyS0.[ OK ] Reached target Login Prompts.[ OK ] Started OpenSSH server daemon.[ OK ] Started Container Runtime Interface for OCI (CRI-O).[ 19.960784] cloud-init[1311]: Cloud-init v. 23.1.1-12.el9_3 running 'modules:config' at Sun, 26 Jul 2026 13:13:54 +0000. Up 19.84 seconds.[ OK ] Finished Apply the settings specified in cloud-config. Starting Execute cloud user/final scripts...[ OK ] Started Docker Application Container Engine. Starting Argo Watch service... Starting VP Manager image load...[ OK ] Started Argo Watch service.[ 21.544663] cloud-init[1512]: Cloud-init v. 23.1.1-12.el9_3 running 'modules:final' at Sun, 26 Jul 2026 13:13:56 +0000. Up 21.41 seconds.[ 22.751629] cloud-init[1512]: Cloud-init v. 23.1.1-12.el9_3 finished at Sun, 26 Jul 2026 13:13:57 +0000. Datasource DataSourceAzure [seed=/var/lib/waagent]. Up 22.37 seconds[ OK ] Finished Execute cloud user/final scripts.[ OK ] Started libcontainer conta…f4b59f3b96c31ee10cd95f6eb371c.
UNAUTHORIZED ACCESS TO THIS DEVICE IS PROHIBITEDAll actions performed on this device are auditedf5-xc-ce-vm-01 login: [ 123.107074] Warning: Deprecated Driver is detected: iptables will not be maintained in a future major release and may be disabled[ 123.144641] Warning: Deprecated Driver is detected: ip6tables will not be maintained in a future major release and may be disabled이 기록에서 주목할 만한 네 가지가 있는데, 디버그 API로는 답할 수 없는 질문에 답해 주기 때문입니다:
- cloud-init 완료 —
Datasource DataSourceAzure, 22.37초에 완료. 등록이 전혀 되지 않는 노드는 보통 여기서 실패하며, 그것을 볼 수 있는 곳이 바로 이곳입니다. - 두 컨테이너 런타임이 모두 시작됨.
Container Runtime Interface for OCI (CRI-O)와Docker Application Container Engine이 각각[ OK ]이며, 이는 crictl과 docker에서 사람들을 놀라게 하는 이중 런타임 동작에 대한 부팅 시점의 증거입니다. VP Manager image load와Argo Watch service—vpm과 Argo가 올라오는 중입니다.- 프롬프트는 노드 자체의 것이며, 감사 배너 뒤에 있습니다. 시리얼 콘솔은 로그인 프롬프트를 제공하며, 세션을 제공하지는 않습니다.
API로는 볼 수 없고 여기서만 볼 수 있는 것
섹션 제목: “API로는 볼 수 없고 여기서만 볼 수 있는 것”- cloud-init이 실행되는 모습, 실패하는 모습, 또는 아예 시작되지 않는 모습 — 등록이 전혀 되지 않는 노드의 일반적인 원인입니다.
register.ves.volterra.io에 대한 등록 시도, 구성 오류나 테넌트가 거부한 토큰까지 포함합니다.- 어떤 에이전트도 실행되기 전의 커널 및 부팅 메시지.
- 동작하는 네트워크 경로가 없을 때의 노드 — 다른 모든 경로를 무력화하는 상황입니다.
ONLINE 상태인 노드에 대해서는 디버그 API를 선호하십시오: 스크립트로 자동화할 수 있고,
다시 실행할 수 있는 증거를 만들며, 하나뿐인 시리얼 포트를 점유하지 않습니다.