日志服务(Cloud Log Service,下文简称CLS服务)是腾讯云提供的一站式日志数据解决方案,可以快速便捷的接入,享受日志采集、日志存储到日志内容搜索、统计分析等全方位稳定可靠的日志服务。下文讲解业务接入腾讯云日志服务方案。
网络接入层日志、负载均衡日志主要是nginx 日志,业务诉求在于日志检索、监控告警、统计分析。
采集方案有负载均衡 CLB日志采集接入、腾讯云服务器 CVM安装Loglistener采集接入。CLS服务的CGI有读写频控及流控,单个主题分区写请求限制为500qps,写流量限制为5MB/s;尽管不同采集方式下日志上传策略不同,但是一般都是很难触发限制的。
按照经验,每条nginx日志平均大小约0.125KB,采用LZ4压缩,按照压缩率0.2计算;在不触发CLS服务读写频控及读写流控限制的前提下,CLB日志采集agent日志采集性能实测能达到10万条/秒,Loglistener采集性能理论值达到20万条/秒。
业务逻辑层日志,主要是各个业务模块的请求处理日志,模块运行日志,业务诉求在于日志检索、长期存储,甚至部分文件有很高的可靠性要求,需要确保日志采集、上传、存储不丢数据。不同的采集方案区别如下:
CLS日志的存储当前最多支持保存90天,大于90天存储需求的日志可以投递到对象存储COS,或者消息队列Ckafka中转用于大数据场景下的统计分析、存储。例如通过 SparkStreaming 消费Ckafka,进行统计分析;或者通过 Flume 收集并存储到 Hive、HDFS、Hbase等。
CLS日志的存储时间是以日志集的维度管理的,不同的业务模块建议独享一个日志集,模块中的不同日志采集到不同的主题。
接入层日志建议保存15,逻辑层的服务日志保存30天,如有更长的日志存储需求就投递到COS并开启生命周期。
CLS的“监控告警”功能目前只能简单的监控场景,当主题日志量较大,检索语法复杂的时候,可能会导致检索超时,从而导致告警失效。对于复杂的监控告警需求,建议通过搜索日志API 检索日志到本地统计分析,再上报到云监控,并配置告警。
(注:目前告警功能需要申请白名单)
目前,CLS暂未提供全链路监控告警的能力。当前情况下,日志采集失败,日志检索延迟的情况需要用户自行去监控发现;对于接入层日志,如果配置了监控告警,建议是监控日志延迟的情况;如下图配置,我们可以监控最近1分钟的日志量,当命中日志条数小于1说明日志检索延迟,或者上报失败。
如图,根据服务集群规模配置相应的流量监控,及时发现流量增长以便扩容服务。
如图,我们可以对NGINX请求状态码进行监控;对于接入层日志,建议对401、403、404、499、500、502、503、504等4xx/5xx的状态码分开监控,以便在故障发生时快速定位问题。
通过检索关键字,监控包含关键字的场景。例如监控服务的ERROR日志,是否频繁重启,读写数据库错误,慢查询请求等等。
机器组异常时,我们会在控制台->机器组管理-> 机器组 查看异常的采集机器,那么我们该如何对这一情况监控,及时发现异常的机器呢?答案是使用云监控产品。 配置如下
日志服务提供 SQL 统计能力,对采集的日志进行数据分析并支持以图表的形式展示分析结果。腾讯云官网文档的“Nginx 访问日志分析案例” 提供了丰富的SQL分析示例,我们可以结合控制台“仪表盘”功能,根据业务需求绘制相应的分析图表。
需要注意的事,用户使用日志分析需要配置相应的索引,这会涉及到索引流量费用和索引存储费用;费用与日志量有关,和我们配置分析报表的数量无关,故建议对已开启索引的字段配置相应分析报表;索引流量费用及索引存储费用一般都比较少,可忽略。如果是每日日志量非常非常大(上百T),那么是否开启索引,以及索引字段的多寡就值得评估了,开启后我们可以在日志服务控制台“概览”业务查看索引流量及索引存储量的变化,以评估费用增长。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。