日志服务运行日志使用指南

本文涉及的产品
对象存储 OSS,20GB 3个月
日志服务 SLS,月写入数据量 50GB 1个月
对象存储 OSS,内容安全 1000次 1年
简介: 日志服务支持开通运行日志用于记录用户操作日志、消费组日志、Logtail错误和采集日志和计量日志,便于用户实时监控日志服务的使用状况和排查疑难问题。

日志服务是针对日志类数据的一站式服务,提供了海量的日志处理能力。用户在使用日志服务的过程中,经常会遇到如下问题:

  • 数据写入之后查询不到,是不是数据有丢失;
  • 怎么查看每天写入的数据量;
  • 各个Shard数据写入和消费是否均衡;
  • 怎么看消费组的消费进度,消费速度能否赶上写入速度;
  • Logtail数据没有采集成功是什么原因;

为了便于用户解决这些问题,现在日志服务支持用户以Project为单位开通运行日志。用户在使用日志服务过程中的所有操作,日志采集和消费过程中产生的日志都会被记录下来,如图1所示。用户可以基于这些日志,对日志的采集和消费进行监控,排查使用过程中遇到问题,操作审计等。
image

图 1. 用户日志和使用场景

开通了运行日志功能的Project产生的所有日志会保存到用户指定的Project中,并且按照日志类型自动分类保存。该部分日志与用户采集到的其他日志数据一样,支持设置索引和查询分析、流式消费等。用户可以通过查询分析实时查看日志服务用户的访问信息、操作和Logtail错误记录等数据,提高运维效率。

如图2所示,目前日志服务支持记录操作日志、消费组日志、Logtail告警日志、Logtal采集日志和计量日志等五种日志类型。
image

图2. 运行日志包含的日志类型

配置步骤

步骤1. RAM授权。
日志服务需要主账户授权才能将运行日志写入到您指定的Project。单击快捷授权完成授权。
步骤2. 登录日志服务控制台首页,单击右上角的创建Project。
对于已存在的Project,可以单击修改,在修改Project页面中开启运行日志功能。
image

图 3. 运行日志操作

步骤3. 在弹出页面中,填写Project名称等信息。
步骤4. 选择所属地域。
步骤5. 选择日志存储位置。
步骤6. 点击确认创建Project同时开通运行日志。
开通运行日志之后,当前项目下所有资源的操作日志、访问日志和计量日志等数据都会保存到该Project中,您可以选择当前Project或当前地域下其他已创建的Project。
image

图 4. 开通运行日志

配置完成后,若您需要修改保存日志的Project,请在修改Project步骤中修改。

应用场景举例

1. 查看单次请求详情
以Java SDK为例,用户的每次请求都会在响应头中返回一个唯一的RequestId,这个RequestId对应一条唯一的请求日志。开通运行日志后,所有的请求日志都保存在internal-operation_log这个LogStore中。用户可以根据RequestId查询对应请求的日志,根据Status这个字段查看响应状态。如果Status为200则请求成功,否则请求失败。
image

图 5. 根据RequestId查询请求日志


根据日志中对应的Shard Id和写入时间,用户可以把对应时间段内的日志通过PullLogs API找到对应的日志。

2. 判断Shard写入和消费是否均衡
您可以通过对比Shard数据写入趋势和消费趋势判断Shard写入和消费是否均衡。当您的LogStore存在多个Shard时,可以通过仪表盘 operation_statistics中查看shard的写入数据趋势。如图6所示,X轴为时间,左图Y轴为每分钟每个shard写入的流量,单位为字节,右图Y轴为每分钟每个shard的写入行数。
image

图 6. 查看shard的写入数据趋势

仪表盘 consumer_group_monitoring 中的Shard消费趋势图展示了所有Shard的消费状况。X轴为时间,Y轴为每个shard每分钟的读请求次数。
image

图 7. Shard消费趋势

注意:如果Project中存在多个LogStore,不同的LogStore可能会存在重复的Shard Id,因此如果需要查看某个LogStore的Shard写入分布,需要在仪表盘左上角的过滤条件增加Project和LogStore名字作为过滤条件。

3. API请求异常状态监控
用户在向服务端写入日志时,API请求是否成功将直接关系到用户的数据是否被成功接受。如果API请求出现异常,用户如何在第一时间内知晓呢?开启运行日志后,所有的API请求日志都会实时保存到internal-operation_log这个LogStore中,用户可以对于该部分日志配置快速查询和监控告警。
如下图所示,查询API请求状态码为200及以上的请求个数。您可以将查询结果另存为快速查询,并配置对应的告警。参考 设置告警。
image

图 8. 监控API请求异常


查询语句: Status > 200 | SELECT COUNT(1) as errorCount

4. 查看消费组延时
在使用consumer group消费日志时,消费的速度能否赶上日志的写入速度是用户关系的核心问题之一。在internal-consumergroup_log这个LogStore中,记录了每个消费组当前的消费延时快照日志,每两分钟上报一条。我们可以使用max_by这个函数针对某个消费组查询各个shard上的延时,单位为秒。
image

图 9. 查询消费组延时

查询语句:
project: myproject and logstore: mylogstore and consumer_group: myconsumergroup | SELECT shard, max_by(fallbehind, __time__) as latency GROUP BY shard ORDER BY latency DESC

5. 查看当日数据写入量
internal-operation_log这个LogStore中的Method字段表示每次请求执行的操作。以最新的SDK为例,写入数据时Method为PostLogStoreLogs。对于WebTracking写入的数据,Method为WebTracking。我们只需要根据Method统计写入的操作一共写入了多少流量即可,如下图10所示。用户也可以自定义时间区间。
image

图 10. 查看当天日志写入量

查询语句:Method: PostLogStoreLogs | SELECT sum(NetInflow) as IncomingBytes

6. 查看Logtail状态
用户在创建Logtail配置之后,Logtail运行正常与否直接关系到用户的数据完整性。然而对于用户看来,Logtail整个运行过程是一个黑盒,无法有效监控内部的状态。在用户开通运行日志后,Logtail上报的状态和错误日志将实时发送到用户的LogStore,这些日志对于用户日志采集监控和排查问题具有重要意义。
如下图所示,用户可以统计Logtail不同错误类型发生次数。同时可以参考官方文档中关于不同的错误类型的处理方式 进行处理。

image

图 11. Logtail错误类型统计


查询语句: * | SELECT sum(alarm_count) AS alarm_count, alarm_type GROUP BY alarm_type ORDER BY alarm_count DESC

7. 查看当前时间存储用量
开通运行日志之后,用户消费相关的计量日志自动保存到internal-metering这个LogStore中。对于每个LogStore,每小时统计一次当前使用的日志和索引使用的存储空间,和这一小时窗口内API的读写次数。用户可以使用max_by这个函数查询最新的一条计量日志。
storage_index和storage_raw这两个字段分别表示索引和日志所占用的存储空间,单位为字节。
image

图 12. 查看消耗存储空间


查询语句:
| SELECT project, logstore, max_by(storage_index+storage_raw, __time__) as storage GROUP BY project,logstore ORDER BY storage DESC

除此之外,用户还可以根据默认创建的仪表盘查看更多有价值的信息。可以参考帮助文档了解更多内容。

相关文档

  1. 运行日志简介
  2. 配置步骤
  3. 日志类型
  4. 如何使用日志服务告警功能
  5. 日志服务计费方式
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
5天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
91 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
1月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
193 3
|
3月前
|
Kubernetes Ubuntu Windows
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
129 3
|
1月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1611 14
|
27天前
|
Arthas 监控 Java
JVM知识体系学习七:了解JVM常用命令行参数、GC日志详解、调优三大方面(JVM规划和预调优、优化JVM环境、JVM运行出现的各种问题)、Arthas
这篇文章全面介绍了JVM的命令行参数、GC日志分析以及性能调优的各个方面,包括监控工具使用和实际案例分析。
39 3
|
27天前
|
Python
log日志学习
【10月更文挑战第9天】 python处理log打印模块log的使用和介绍
28 0
|
29天前
|
数据可视化
Tensorboard可视化学习笔记(一):如何可视化通过网页查看log日志
关于如何使用TensorBoard进行数据可视化的教程,包括TensorBoard的安装、配置环境变量、将数据写入TensorBoard、启动TensorBoard以及如何通过网页查看日志文件。
162 0
|
1月前
|
存储 分布式计算 NoSQL
大数据-136 - ClickHouse 集群 表引擎详解1 - 日志、Log、Memory、Merge
大数据-136 - ClickHouse 集群 表引擎详解1 - 日志、Log、Memory、Merge
36 0
|
1月前
|
缓存 Linux 编译器
【C++】CentOS环境搭建-安装log4cplus日志组件包及报错解决方案
通过上述步骤,您应该能够在CentOS环境中成功安装并使用log4cplus日志组件。面对任何安装或使用过程中出现的问题,仔细检查错误信息,对照提供的解决方案进行调整,通常都能找到合适的解决之道。log4cplus的强大功能将为您的项目提供灵活、高效的日志管理方案,助力软件开发与维护。
52 0
|
2月前
|
Java
日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查
日常项目运行日志,异常栈打印是不带traceId,导致排查问题查找异常栈很麻烦。

相关产品

  • 日志服务
  • 下一篇
    无影云桌面