다음을 통해 공유


Azure Spring Apps 작업 로그를 실시간으로 스트리밍(미리 보기)

참고 항목

기본, 표준엔터프라이즈 계획은 2025년 3월 중순부터 사용되지 않으며 3년의 은퇴 기간이 있습니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 사용 중지 공지 사항을 참조하세요.

표준 소비 및 전용 계획은 2024년 9월 30일부터 사용되지 않으며 6개월 후에 완전히 종료됩니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 표준 사용량 및 전용 계획을 Azure Container Apps로 마이그레이션을 참조 하세요.

이 문서는 기본/표준 ✅ 엔터프라이즈에 ❎ 적용됩니다.

이 문서에서는 Azure CLI를 사용하여 문제 해결을 위한 작업의 실시간 로그를 가져오는 방법을 설명합니다. 진단 설정을 사용하여 Azure Spring Apps에서 진단 데이터를 분석할 수도 있습니다. 자세한 내용은 진단 설정을 사용하여 로그 및 메트릭 분석을 참조하세요. 로그 스트리밍에 대한 자세한 내용은 Azure Spring Apps 애플리케이션 콘솔 로그 실시간 스트리밍Azure Spring Apps 관리 구성 요소 로그 실시간 스트리밍을 참조하세요.

필수 조건

  • Azure Spring Apps 확장 버전 1.24.0 이상이 포함된 Azure CLI 다음 명령을 사용하여 확장을 설치할 수 있습니다. az extension add --name spring.

Azure 역할 할당

작업 로그를 스트리밍하려면 관련 Azure 역할이 할당되어 있어야 합니다. 다음 표에는 필수 역할과 이 역할에 권한이 부여되는 작업이 나열되어 있습니다.

필수 역할 작업
Azure Spring 앱 작업 ​​로그 읽기 권한자 역할 Microsoft.AppPlatform/Spring/jobs/executions/logstream/action
Microsoft.AppPlatform/Spring/jobs/executions/listInstances/action

다음 단계를 통해 Azure Portal을 사용하여 Azure 역할을 할당합니다.

  1. Azure Portal을 엽니다.

  2. Azure Spring Apps 서비스 인스턴스를 엽니다.

  3. 왼쪽 탐색 창에서 액세스 제어(IAM)를 선택합니다.

  4. 액세스 제어(IAM) 페이지에서 추가를 선택한 다음, 역할 할당 추가를 선택합니다.

    역할 할당 추가 옵션이 강조 표시된 액세스 제어(IAM) 페이지를 보여 주는 Azure Portal의 스크린샷.

  5. 역할 할당 추가 페이지의 이름 목록에서 대상 역할을 검색하여 선택한 후 다음을 선택합니다.

    Azure Spring Apps 작업 로그 읽기 권한자 역할 이름이 강조 표시된 역할 할당 추가 페이지를 보여 주는 Azure Portal의 스크린샷.

  6. 멤버를 선택한 다음 사용자 이름을 검색하여 선택합니다.

  7. 검토 + 할당을 선택합니다.

비상 로그 보기

이 섹션에서는 Azure CLI를 사용하여 비상 로그를 생성하는 예를 제공합니다.

특정 인스턴스에 대한 비상 로그 보기

작업이 트리거될 때마다 새로운 작업 실행이 만들어집니다. 또한 작업의 병렬 처리 설정에 따라 여러 복제본 또는 인스턴스가 병렬로 실행됩니다.

작업 실행의 모든 ​​인스턴스를 나열하려면 다음 명령을 사용합니다.

az spring job execution instance list \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --job <job-name> \
    --execution <job-execution-name>

출력에서 작업 실행의 모든 인스턴스 이름을 가져올 수 있습니다.

특정 인스턴스에 대한 비상 로그를 보려면 다음 예와 같이 -i/--instance 인수와 함께 az spring job logs 명령을 사용합니다.

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --instance <instance-name>

하나의 명령으로 모든 인스턴스에 대한 비상 로그 보기

모든 인스턴스에 대한 비상 로그를 보려면 다음 예와 같이 --all-instances 인수를 사용합니다. 인스턴스 이름은 각 로그 줄의 접두사입니다. 인스턴스가 여러 개인 경우 각 인스턴스에 대해 일괄 처리로 로그가 인쇄됩니다. 이렇게 하면 한 인스턴스의 로그가 다른 인스턴스의 로그와 인터리브되지 않습니다.

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --all-instances

새 로그를 지속적으로 스트리밍

기본적으로 az spring job logs은 콘솔로 스트리밍되는 기존 로그만 인쇄한 후 종료됩니다. 새 로그를 스트리밍하려면 -f/--follow 인수를 추가합니다.

-f/--follow 옵션을 사용하여 인스턴트 로그를 tail하는 경우 작업이 로그를 지속적으로 작성하지 않는 한 Azure Spring Apps 로그 스트리밍 서비스는 1분마다 하트비트 로그를 클라이언트에 보냅니다. 하트비트 로그 메시지는 2023-12-18 09:12:17.745: No log from server 형식을 사용합니다.

특정 인스턴스에 대한 로그 스트리밍

다음 명령을 사용하여 특정 인스턴스에 대한 인스턴스 이름 및 스트림 로그를 가져옵니다.

az spring job execution instance list \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --job <job-name> \
    --execution <job-execution-name>

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --instance <instance-name> \
    --follow

모든 인스턴스에 대한 로그 스트리밍

다음 명령을 사용하여 모든 인스턴스에 대한 로그를 스트리밍합니다.

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --all-instances \
    --follow

작업 실행에서 여러 인스턴스에 대한 로그를 스트리밍하면 한 인스턴스의 로그가 다른 인스턴스의 로그와 인터리브됩니다.

가상 네트워크 주입 인스턴스에서 로그 스트리밍

사용자 지정 가상 네트워크에 배포된 Azure Spring Apps 인스턴스의 경우 기본적으로 개인 네트워크에서 로그 스트리밍에 액세스할 수 있습니다. 자세한 내용은 가상 네트워크에 Azure Spring Apps 배포를 참조하세요.

Azure Spring Apps를 사용하면 공용 네트워크에서 실시간 작업 로그에 액세스할 수도 있습니다.

참고 항목

공용 네트워크에서 로그 스트리밍 엔드포인트를 사용하도록 설정하면 가상 네트워크에 공용 인바운드 IP가 추가됩니다. 이 문제가 있는 경우 주의해야 합니다.

다음 단계를 사용하여 공용 네트워크에서 로그 스트리밍 엔드포인트를 사용하도록 설정합니다.

  1. 가상 네트워크에 배포된 Azure Spring Apps 서비스 인스턴스를 선택한 다음 탐색 창에서 네트워킹을 선택합니다.

  2. VNet 주입 탭을 선택합니다.

  3. 공용 네트워크의 Dataplane 리소스 상태를 사용으로 전환하여 공용 네트워크에서 로그 스트리밍 엔드포인트를 사용하도록 설정합니다. 이 작업에는 몇 분이 소요됩니다.

    Vnet 삽입 탭이 선택되고 문제 해결 섹션이 강조 표시된 네트워킹 페이지를 보여주는 Azure Portal의 스크린샷.

로그 스트림 퍼블릭 엔드포인트를 사용하도록 설정한 후에는 일반 인스턴스에 액세스하는 것처럼 공용 네트워크에서 작업 로그에 액세스할 수 있습니다.

로그 스트리밍 공용 엔드포인트에 대한 보안 트래픽

작업에 대한 로그 스트리밍은 Azure RBAC를 사용하여 작업에 대한 연결을 인증합니다. 따라서 적절한 역할이 있는 사용자만 로그에 액세스할 수 있습니다.

공용 엔드포인트를 노출할 때 작업의 보안을 보장하려면 네트워크 보안 그룹을 사용하여 서비스에 대한 네트워크 트래픽을 필터링하여 엔드포인트를 보호합니다. 자세한 내용은 자습서: Azure Portal을 사용하여 네트워크 보안 그룹으로 네트워크 트래픽 필터링을 참조하세요. 네트워크 보안 그룹에는 여러 종류의 Azure 리소스에서 오는 인바운드 트래픽 또는 이러한 리소스로 나가는 아웃바운드 네트워크 트래픽을 허용하거나 거부하는 보안 규칙이 포함됩니다. 규칙마다 원본 및 대상, 포트, 프로토콜을 지정할 수 있습니다.

참고 항목

로그 스트림 퍼블릭 엔드포인트를 사용하도록 설정한 후 인터넷에서 가상 네트워크 주입 인스턴스의 작업 로그에 액세스할 수 없는 경우, 네트워크 보안 그룹을 확인하여 이러한 인바운드 트래픽을 허용했는지 확인합니다.

다음 표에서는 권장되는 기본 규칙의 예를 보여 줍니다. 엔드포인트 <service-name>.private.azuremicroservices.io에서 nslookup과 같은 명령을 사용하여 서비스의 대상 IP 주소를 가져올 수 있습니다.

우선 순위 Name 포트 프로토콜 원본 대상 작업
100 규칙 이름 80 TCP 인터넷 서비스 IP 주소 허용
110 규칙 이름 443 TCP 인터넷 서비스 IP 주소 허용

다음 단계