AWS Panorama 로그 보기 - AWS Panorama

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Panorama 로그 보기

AWS Panorama는 Amazon CloudWatch Logs에 애플리케이션 및 시스템 이벤트를 보고합니다. 문제가 발생하면 이벤트 로그를 사용하여 AWS Panorama 애플리케이션을 디버깅하거나 애플리케이션의 구성 문제를 해결할 수 있습니다.

CloudWatch Logs에서 로그를 보려면
  1. CloudWatch 로그 콘솔의 로그 그룹 페이지를 엽니다.

  2. 다음 그룹에서 AWS Panorama 애플리케이션 및 어플라이언스 로그를 확인할 수 있습니다.

    • 디바이스 로그/aws/panorama/devices/device-id

    • 애플리케이션 로그/aws/panorama/devices/device-id/applications/instance-id

시스템 소프트웨어를 업데이트한 후 어플라이언스를 다시 프로비전하면 프로비저닝 USB 드라이브의 로그도 확인할 수 있습니다.

디바이스 로그 보기

AWS Panorama 어플라이언스는 디바이스에 대한 로그 그룹과 배포하는 각 애플리케이션 인스턴스에 대한 그룹을 생성합니다. 디바이스 로그에는 애플리케이션 상태, 소프트웨어 업그레이드 및 시스템 구성에 대한 정보가 포함됩니다.

디바이스 로그 – /aws/panorama/devices/device-id
  • occ_log – 컨트롤러 프로세스의 출력입니다. 이 프로세스는 애플리케이션 배포를 조정하고 각 애플리케이션 인스턴스의 노드 상태를 보고합니다.

  • ota_log – 무선 업데이트(OTA) 소프트웨어 업그레이드를 조정하는 프로세스의 결과입니다.

  • syslog – 프로세스 간에 전송되는 메시지를 캡처하는 디바이스의 syslog 프로세스의 출력입니다.

  • kern_log – 디바이스의 Linux 커널에서 발생한 이벤트입니다.

  • logging_setup_logs – CloudWatch Logs 에이전트를 구성하는 프로세스의 출력입니다.

  • cloudwatch_agent_logs – CloudWatch Logs 에이전트의 출력입니다.

  • shadow_logAWS IoT 디바이스 섀도우의 출력입니다.

애플리케이션 로그 보기

애플리케이션 인스턴스의 로그 그룹에는 노드의 이름을 딴 각 노드에 대한 로그 스트림이 포함됩니다.

애플리케이션 로그 – /aws/panorama/devices/device-id/applications/instance-id
  • 코드 – 애플리케이션 코드와 AWS Panorama Application SDK의 출력입니다. /opt/aws/panorama/logs에서 애플리케이션 로그를 집계합니다.

  • 모델 - 모델에 따라 추론 요청을 조정하는 프로세스의 출력입니다.

  • 스트림 - 카메라 스트림의 비디오를 디코딩하는 프로세스의 출력입니다.

  • 디스플레이 - HDMI 포트의 비디오 출력을 렌더링하는 프로세스의 출력입니다.

  • mds – 어플라이언스 메타데이터 서버의 로그입니다.

  • console_output – 코드 컨테이너에서 표준 출력 및 오류 스트림을 캡처합니다.

CloudWatch Logs에 로그가 표시되지 않는 경우 올바른 AWS 리전에 있는지 확인하십시오. 그렇다면 어플라이언스와 AWS의 연결 또는 어플라이언스 AWS Identity and Access Management(IAM) 역할에 대한 권한에 문제가 있을 수 있습니다.

애플리케이션 로그 구성

Python 로거를 구성하여 /opt/aws/panorama/logs에 로그 파일을 기록하십시오. 어플라이언스는 이 위치의 로그를 CloudWatch Logs로 스트리밍합니다. 디스크 공간을 너무 많이 사용하지 않으려면 최대 파일 크기 10MB, 백업 개수 1을 사용하십시오. 다음 예에서는 로거를 만드는 메서드를 보여줍니다.

application.py – 로거 구성
def get_logger(name=__name__,level=logging.INFO): logger = logging.getLogger(name) logger.setLevel(level) LOG_PATH = '/opt/aws/panorama/logs' handler = RotatingFileHandler("{}/app.log".format(LOG_PATH), maxBytes=10000000, backupCount=1) formatter = logging.Formatter(fmt='%(asctime)s %(levelname)-8s %(message)s', datefmt='%Y-%m-%d %H:%M:%S') handler.setFormatter(formatter) logger.addHandler(handler) return logger

글로벌 범위에서 로거를 초기화하고 애플리케이션 코드 전체에서 사용하십시오.

application.py – 로거 초기화
def main(): try: logger.info("INITIALIZING APPLICATION") app = Application() logger.info("PROCESSING STREAMS") while True: app.process_streams() # turn off debug logging after 150 loops if logger.getEffectiveLevel() == logging.DEBUG and app.frame_num == 150: logger.setLevel(logging.INFO) except: logger.exception('Exception during processing loop.') logger = get_logger(level=logging.INFO) main()

프로비저닝 로그 보기

프로비저닝 중에 AWS Panorama 어플라이언스는 구성 아카이브를 어플라이언스로 전송하는 데 사용하는 USB 드라이브에 로그를 복사합니다. 이러한 로그를 사용하여 최신 소프트웨어 버전을 사용하는 어플라이언스의 프로비저닝 문제를 해결할 수 있습니다.

중요

프로비저닝 로그는 소프트웨어 버전 4.3.23 이상으로 업데이트된 어플라이언스에 사용할 수 있습니다.

애플리케이션 로그
  • /panorama/occ.log – AWS Panorama 컨트롤러 소프트웨어 로그입니다.

  • /panorama/ota_agent.log – AWS Panorama 무선 업데이트 에이전트 로그입니다.

  • /panorama/syslog.log – Linux 시스템 로그입니다.

  • /panorama/kern.log – Linux 커널 로그입니다.

디바이스에서 로그 전송

디바이스 및 애플리케이션 로그가 CloudWatch Logs에 표시되지 않는 경우 USB 드라이브를 사용하여 디바이스에서 암호화된 로그 이미지를 가져올 수 있습니다. AWS Panorama 서비스 팀이 사용자를 대신하여 로그를 해독하고 디버깅을 지원할 수 있습니다.

필수 조건

절차를 따르려면 다음 하드웨어가 필요합니다.

  • USB 드라이브 – 최소 1GB의 저장 공간이 있는 FAT32 형식의 USB 플래시 메모리 드라이브로, AWS Panorama 어플라이언스에서 로그 파일을 전송할 때 사용합니다.

디바이스에서 로그를 전송하려면
  1. panorama 폴더 안에 managed_logs 폴더가 있는 USB 드라이브를 준비합니다.

    / └── panorama └── managed_logs
  2. USB 드라이브를 디바이스에 연결합니다.

  3. AWS Panorama 어플라이언스의 전원을 끕니다.

  4. AWS Panorama 어플라이언스의 전원을 켭니다.

  5. 디바이스가 로그를 디바이스에 복사합니다. 진행 중에는 상태 LED가 파란색으로 깜박입니다.

  6. 그러면 managed_logs 디렉토리에서 panorama_device_log_v1_dd_hh_mm.img 형식의 로그 파일을 찾을 수 있습니다.

로그 이미지를 직접 해독할 수는 없습니다. 고객 지원팀, AWS Panorama의 기술 계정 관리자 또는 솔루션 아키텍트와 협력하여 서비스 팀과 조율하십시오.