全部产品
Search
文档中心

消息服务:日志管理

更新时间:Mar 06, 2024

消息服务MNS可以为队列和主题开启日志管理功能,支持将队列或主题的消息操作日志推送到日志服务 SLS(Simple Log Service)。在成功将MNS日志推送到SLS后,MNS支持通过日志查询特定信息。例如在消息发送、消费、确认等环节出现异常时,通过MessageId查询消息轨迹等信息,从而进行异常诊断。

说明

消息服务MNS推送日志到指定LogStore会延迟约3分钟。

前提条件

  • 已创建日志服务Project和Logstore。具体操作,请参见创建项目Project创建Logstore

    您的消息服务操作日志只能被推送到相同地域下的日志服务Project中。

  • 已授权消息服务使用AliyunMNSLoggingRole角色导出日志。
    单击云资源访问授权,根据提示完成授权。
    警告 请勿取消授权或删除RAM角色,否则将导致MNS日志无法正常推送到日志服务。

开启日志功能

开启队列的日志功能

  1. 登录消息服务MNS控制台

  2. 在左侧导航栏,单击队列列表

  3. 在顶部菜单栏,选择地域。

  4. 队列列表页面,找到目标队列,在其右侧操作列选择更多>编辑

  5. 编辑队列参数面板中,启用日志功能选择

    队列列表页面,目标队列的日志功能列显示为已启用

开启主题的日志功能

  1. 登录消息服务MNS控制台

  2. 在左侧导航栏,单击主题列表

  3. 在顶部菜单栏,选择地域。

  4. 主题列表页面,找到目标主题,在其右侧操作列单击编辑

  5. 编辑主题参数面板中,启用日志功能选择

    主题列表页面,目标主题的日志功能列显示为已启用

推送日志到日志服务

  1. 登录消息服务MNS控制台

  2. 在左侧导航栏,单击日志管理

  3. 在顶部菜单栏,选择地域。

  4. 日志管理页面,在选择目标配置向导页面选择日志服务(SLS)

  5. 配置目标配置向导页面,选择Project名称Logstore名称,然后单击启用

    日志管理页面,显示已配置的Project和Logstore。

查看日志

  1. 登录日志服务控制台

  2. 在Project列表区域,单击目标Project。

    image

  3. 在控制台左侧,单击日志存储,在日志库列表中单击目标Logstore。

    image

  4. 输入查询语句,然后单击最近15分钟,设置查询的时间范围。更多信息,请参见查询和分析日志

    • 本案例要查询队列消息的消息轨迹,即输入队列名称和消息ID,格式为$QueueName and $MessageId,例如log and EED287A265726135146E6A9CADC8XXXX

      查询结果如下所示,记录了某条消息从发送到接收的过程。

      image

    • 本案例要查询主题消息的消息轨迹,即输入主题名称和MessageId,查询语句格式为$TopicName and $MessageId,例如logtest and 8798453B65727FC6433E6AB4F746XXXX

      查询结果如下图所示,记录了某条消息从发送到通知的过程。

      image

    • 本案例要查询队列消息发送量,即输入队列名称和发送操作,查询语句格式为$QueueName and (SendMessage or BatchSendMessage),例如log and (SendMessage or BatchSendMessage)

      查询结果如下所示,当前查询时段内,生产者向log队列发送了3条队列消息。查看队列消息写入量

    • 本案例要查询主题消息发送量,即输入主题名称和发布操作,查询语句格式为$TopicName and PublishMessage,例如logtest and PublishMessage

      查询结果如下图所示,当前查询时段内,生产者向logtest主题发送了3条消息。查看主题消息发布量

    • 本案例要查询队列消息消费量,即输入队列名称和消费操作,查询语句格式为$QueueName and (ReceiveMessage or BatchReceiveMessage),例如log and (ReceiveMessage or BatchReceiveMessage)

      查询结果如下所示,当前查询时段内,log队列中有12条消息被消费。查看队列消息消费量

    • 本案例要查询队列消息删除量,即输入队列名称和删除操作,查询语句格式为$QueueName and (DeleteMessage or BatchDeleteMessage),例如log and (DeleteMessage or BatchDeleteMessage)

      查询结果如下所示,当前查询时段内,61条log队列消息被删除。查看队列消息删除量

    • 本案例要查询某个客户端消息处理量,即输入客户端IP地址,查询语句格式为$ClientIP,例如10.10.10.0

      如果您要查询某个客户端的某类操作日志,可使用多个关键字组合方式,例如$ClientIP and (SendMessage or BatchSendMessage)

      查询结果如下图所示,当前查询时段内,该客户端处理了66条消息。查看某个客户端消息处理量