MNS 的日志管理功能将用户的消息操作日志推送到指定 LoggingBucket 中。用户在控制台上配置将日志推送到 OSS 或者 LogService,然后开启该地域队列/主题的日志管理功能,MNS 将自动推送该队列/主题消息的操作日志到指定的 LoggingBucket 中。
推送日志到LogService(必读)
- 配置方法:推送日志到LogService
- 日志查看:查看日志——LogService
- 在为LogStore创建索引时,请选择合理的数据保存时间,该属性后续只支持缩短,不支持延长;
- 如果用户将 LoggingBucket 对应的LogService 的Project、LogStore删除,或者将授予 MNS 的权限取消,日志将无法正常推送给用户;
- 日志延迟时间约5分钟;
推送日志到OSS(必读)
- 配置方法:推送日志到OSS
- 日志查看:查看日志——OSS
- 如果用户将 LoggingBucket 对应的OSS Bucket删除,或者将授予 MNS 的权限取消,日志将无法正常推送给用户;
- 日志延迟时间约15分钟;
细节分析
- 每个地域配置一个 LoggingBucket,该地域所有开通日志管理功能的队列/主题的消息操作日志均推送到该 LoggingBucket中;
- 每个队列/主题可以独立设置是否开启日志管理功能,默认不开启;
费用解析
- MNS 不针对日志管理功能收取额外费用;
- MNS 将日志推送到OSS 或者 LogService中,对应服务会根据存储空间、流量、请求数等进行收费,具体细则请参考:LogService价格总览、OSS价格总览
- 日志量的大小与用户操作 MNS 的 Qps 和操作类型有关系,此处以 SendMessage 操作、Qps 1000为例,计算每分钟的日志量: 178Byte*1000*60/1024/1024 约为 10MB,其中 178 为单条SendMessag操作的日志大小。
队列消息操作日志
队列消息操作日志是指操作队列消息所产生的日志,比如发送消息、消费消息、删除消息等操作。一条消息操作日志中包含多个字段,每个字段都有自己的含义。根据操作的不同,消息操作日志所包含的字段也不相同。接下来,将分别介绍各个字段的含义和不同操作所包含的字段信息。
日志字段解析
一条消息操作日志中包含多个字段,各个字段的含义如表格所示。
各个操作的字段列表
不同操作的日志包含的字段信息各不相同,具体每个操作包含的字段请参考表格。
主题消息操作日志
主题消息操作日志是指操作主题消息产生的日志,主要有两类:发布消息和推送消息。接下来,将介绍主题消息操作日志各个字段的含义,以及不同的操作所包含的字段信息。
日志字段解析
一条消息操作日志中包含多个字段,各个字段的含义如表格所示。
各个操作的字段列表
不同操作的日志包含的字段信息各不相同,具体每个操作包含的字段请参考表格。
NotifyStatus
NotifyStatus 是推送消息日志特有的字段,该可以协助您调查MNS 推送消息到 Endpoint失败的原因。根据不同的 NotifyStatus,您可以按照下表建议的处理方法进行处理。
日志管理功能可以做什么?
- 消息成功发送到队列,但消费端收不到消息,消息去哪儿了?
- 消息被谁消费了、消费了几次?
- 消费端宕机了,消费失败的消息什么时候可以再次被消费?
- 消息发布到主题,Endpoint 却迟迟收不到消息?
- 想看一个月前的消息操作日志?
[backcolor=transparent]MNS 的日志管理功能通通满足你!!
- 将日志推送到LogService,控制台查看完整消息轨迹:查看日志——LogService
- 使用官网提供查询工具,指定相应参数即可查看消息的处理日志;日志查询命令行工具
- 登陆OSS控制台,配置LoggingBucket的LifeCycle属性,查看一年前的日志也不是问题:oss控制台
- 除了官方工具,还可以写写代码,通过 OSS 的 GetObject 接口下载日志文件,做你想做的任何事情;