查看 AWS Panorama 日志 - AWS Panorama

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

查看 AWS Panorama 日志

AWS Panorama 会向 Amazon CloudWatch Logs 报告应用程序和系统事件。遇到问题时,您可以使用事件日志来帮助调试 AWS Panorama 应用程序或排除应用程序配置的故障。

要查看 CloudWatch Logs 中的日志
  1. 打开 CloudWatch Logs 控制台的日志组页面

  2. 在以下组中查找 AWS Panorama 应用程序和设备日志:

    • 设备日志 - /aws/panorama/devices/device-id

    • 应用程序日志 - /aws/panorama/devices/device-id/applications/instance-id

更新系统软件后重新配置设备时,您还可以查看预置 USB 驱动器上的日志

查看设备日志

AWS Panorama Appliance 会为设备创建一个日志组,并为您部署的每个应用程序实例创建一个组。设备日志包含有关应用程序状态、软件升级和系统配置的信息。

设备日志 - /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_log - 来自AWS IoT 设备影子的输出。

查看应用程序日志

应用程序实例的日志组包含以节点命名的每个节点的日志流。

应用程序日志 - /aws/panorama/devices/device-id/applications/instance-id
  • 代码 - 应用程序代码和 AWS Panorama 应用程序 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。为避免占用过多磁盘空间,请使用最大为 10 MiB 的文件,备份次数为 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 Appliance 会将日志复制到用于将配置存档传输到设备的 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 驱动器 - 一种存储空间至少 1 GB 的 FAT32 格式 USB 闪存驱动器,用于从 AWS Panorama Appliance 传输日志文件。

从设备导出日志
  1. 准备一个 USB 驱动器,在 panorama 文件夹里放入 managed_logs 文件夹。

    / └── panorama └── managed_logs
  2. 将 USB 驱动器连接到设备。

  3. 关闭 AWS Panorama Appliance。

  4. 打开 AWS Panorama Appliance。

  5. 该设备将日志复制到设备。在执行此操作时,状态 LED 指示灯会闪烁蓝色

  6. 然后可以在 managed_logs 目录中找到日志文件,格式为 panorama_device_log_v1_dd_hh_mm.img

您无法自行解密日志图像。请与客户支持、AWS Panorama 的技术客户经理或解决方案架构师合作,与服务团队协调。