文档首页/ 设备接入 IoTDA/ 用户指南/ 监控运维/ 查看运行日志(新版)
更新时间:2024-10-22 GMT+08:00

查看运行日志(新版)

概述

华为云物联网平台支持记录平台与应用侧及平台与设备侧之间的消息交互情况,并以日志的形式上报到云日志服务(LTS),由LTS提供实时查询、海量存储、结构化处理和可视化图表分析能力。

与旧版运行日志相比,使用新版运行日志时,不需要您手动创建日志组、日志流、流转规则及动作,平台将自动为您完成相关配置,并且您可以直接在华为云物联网平台中查看运行日志的内容。

图1 运行日志流程图

使用限制

目前运行日志仅支持记录MQTT设备的业务运行日志,详细请参考表1 业务类型

表1 业务类型

业务类型

业务流程

设备状态

设备上线

设备下线

设备消息

物联网平台接收应用侧下发消息的请求

物联网平台向设备下发消息

物联网平台接收设备上报的消息

设备命令

物联网平台接收应用侧下发设备命令的请求

物联网平台向设备下发命令

物联网平台接收设备回复的命令响应

设备属性

物联网平台接收应用侧修改设备属性的请求

物联网平台向设备修改属性

物联网平台接收设备上报的属性

物联网平台接收网关批量上报的设备属性

设备事件

物联网平台通知网关设备新增的事件

物联网平台通知网关设备删除的事件

物联网平台接收网关同步子设备列表的事件

物联网平台接收网关更新子设备状态的事件

物联网平台接收网关新增子设备请求的事件

物联网平台下发新增子设备请求响应的事件

物联网平台接收网关删除子设备请求的事件

物联网平台下发删除子设备请求响应的事件

物联网平台接收网关更新子设备请求的事件

物联网平台下发更新子设备请求响应的事件

物联网平台下发获取版本信息的事件

物联网平台接收设备上报软固件版本的事件

物联网平台下发升级通知的事件

物联网平台接收设备上报升级状态的事件

物联网平台接收设备上报获取文件上传URL请求的事件

物联网平台下发文件上传临时URL的事件

物联网平台接收设备上报文件上传结果的事件

物联网平台接收设备上报获取文件下载URL请求的事件

物联网平台下发文件下载临时URL的事件

物联网平台接收设备上报文件下载结果的事件

物联网平台接收设备时间同步请求的事件

物联网平台下发时间同步响应的事件

物联网平台接收设备信息上报的事件

物联网平台下发日志收集通知的事件

物联网平台接收设备上报日志内容的事件

物联网平台下发配置的通知的事件

物联网平台接收设备上报配置响应的事件

物联网平台接收设备下载升级包的事件

批量任务

批量任务的子任务执行结果,详细请参考表2 批量任务运行日志格式

设备自注册

设备自动注册的结果,详细请参考设备自注册

设备鉴权

设备自定义鉴权结果,详细请参考自定义鉴权自定义模板鉴权

表2 批量任务运行日志格式

字段

说明

appId

应用ID

deviceId

设备ID

categoryName

日志类型:batch.task

operation

动作,这里为批量任务的task_id,详情参考创建批量任务

request

请求内容,json格式,

{

"task_type" : "createDevices",// 任务类型

"package_id" : "f2303267a6e8f0053037c2a9",//软固件升级包

"package_ids" : ["65f3ebe2682b9f4bcc38baad"] //软固件升级包

}

说明:

当批量任务任务类型为softwareUpgrade或firmwareUpgrade,支持参数package_id和package_ids

response

响应内容,json格式,

成功的场景内容为

{

"output" : "xxxxxxxxxxxx"

}

失败的场景为

{

"error" : {

"error_code" : "IOTDA.XXXXX",

"error_msg" : "XXXXX."

}

}

status

执行结果,这里为子任务的状态,支持Success、Fail、Stopped和Removed

运行日志使用说明

  1. 访问设备接入服务,单击“管理控制台”,进入设备接入控制台。选择您的实例,单击实例卡片进入。
  2. 选择左侧导航栏的监控运维 > 运行日志
  3. 若您当前在使用旧版运行日志,那么您可以单击右上角“前往新版”按钮,进入新版运行日志页面。若您已使用新版运行日志,则自动进入新版页面。

    图2 运行日志-前往新版

  4. 首次使用,需要单击“启动并配置”按钮,此时您可以选择两种方式进行运行日志的配置

    1. 一键配置:
      采用一键配置后,平台将会自动创建日志组及日志流,并配置结构化,同时创建对应的转发规则及动作,无需用户手动操作。
      图3 运行日志-一键配置
    2. 自定义配置:

      采用自定义配置后,可以选择自己创建的规则及日志组和日志流来创建运行日志,该方式更加灵活。

      若您在日志流中配置了结构化,平台也将会对结构化进行修改。

      图4 运行日志-自定义配置

    请谨慎删除数据来源为“运行日志”的转发规则,否则会影响功能的正常使用。

  5. 启动并配置成功后,您可以在物联网平台中查看或搜索运行日志(支持按时间,日志类型,设备ID,动作以及请求内容进行搜索),对业务进行分析。运行日志保存在云日志服务(LTS)中,默认保存30天,如果当前存储时长不能满足业务要求,您可以在界面上进行修改,最长可保存365天。

    图5 运行日志-修改存储时间

    请注意运行日志均存储在云日志服务(LTS)中。LTS每月免费赠送500M额度,您可通过右上角“配额设置”设置超过免费部分的日志的处理策略,同时您也可以在LTS配置中心开启日志资源使用量预警。LTS服务介绍参见云日志服务LTS

    • 开启开关,则表示日志超过每月免费赠送的额度(500M)时,将继续采集日志,超过部分按需收费,了解计费详情
    • 关闭开关,则表示日志超过每月免费赠送的额度(500M)时,将直接丢弃新上报的日志。
      图6 运行日志-配额设置

  6. 运行日志支持开启一个或多个业务类型,您可单击“配置日志开关”,在弹出框中修改日志收集的类型;所有类型均不选择时,即为关闭运行日志收集功能。

    图7 运行日志-配置日志开关

运行日志使用示例

本部分介绍如何使用JAVA SDK上报消息,触发运行日志流转至LTS,并在物联网平台页面查看消息上报的日志。本示例使用的开发环境为JDK 1.8及以上版本。

前提条件如下:

  1. 已在物联网平台注册设备。
  2. 已启用并配置新版运行日志,并开启了设备消息日志开关。

配置设备侧SDK步骤如下:

  1. 配置设备侧SDK的Maven依赖。

    <dependency>
    	<groupId>com.huaweicloud</groupId>
    	<artifactId>iot-device-sdk-java</artifactId>
    	<version>1.1.4</version>
    </dependency>

  2. 配置设备侧SDK,设备连接参数。注意:实际代码中请替换域名(domain),设备ID(deviceId)以及设备密钥(secret)。

    //加载iot平台的ca证书,获取连接参考:https://support.huaweicloud.com/intl/zh-cn/devg-iothub/iot_02_1004.html
    URL resource = BroadcastMessageSample.class.getClassLoader().getResource("ca.jks");
    File file = new File(resource.getPath());
    
    //注意格式为:ssl://域名信息:端口号。
    //域名获取方式:登录华为云IoTDA控制台左侧导航栏“总览”页签,在选择的实例基本信息中,单击“接入信息”。选择8883端口对应的接入域名。
    String serverUrl = "ssl://{domain}:8883";
    //在IoT平台创建的设备ID。
    String deviceId = "{deviceId}";
    //设备ID对应的密钥。
    String deviceSecret = "{secret}";
    //创建设备
    IoTDevice device = new IoTDevice(serverUrl, deviceId, deviceSecret, file);
    if (device.init() != 0) {
        return;
    }

  3. 上报消息

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    device.getClient().reportDeviceMessage(new DeviceMessage("hello"), new ActionListener() {
        @Override
        public void onSuccess(Object context) {
            log.info("reportDeviceMessage ok");
        }
    
        @Override
        public void onFailure(Object context, Throwable var2) {
            log.error("reportDeviceMessagefail: "+ var2);
        }
    });
    

测试验证步骤如下:

  1. 运行设备侧SDK代码,控制台打印如下信息说明设备上线并上报消息成功

    2023-04-27 17:05:26  INFO MqttConnection:88 - Mqtt client connected. address :ssl://{domain}:8883
    2023-04-27 17:05:26  INFO MqttConnection:214 - publish message topic =  $oc/devices/{deviceId}/sys/messages/up, msg = {"name":null,"id":null,"content":"hello","object_device_id":null}
    2023-04-27 17:05:26  INFO MessageSample:43 - reportDeviceMessage ok

  2. 在控制台中查看运行日志,运行日志界面可查询设备上下线以及设备上报消息的记录。

    图8 运行日志-日志示例