日志作为观测三大件之一,在日常的运营和运维过程中有非常重要的作用,运维和研发同学通常需要通过日志来确定故障发生的位置和原因,从而进行修复工作,但在传统运维过程中,特别是分布式系统,日志不但数据量大,而且比较分散,无法快速进行全局检索,影响故障处理和恢复的效率。另外,日志数据在业务运营(比如审计、计费)过程中同样重要,需要统一的日志服务平台来支撑。
云舟观测为用户提供了大规模、低成本的日志一站式服务,包括日志的采集加工、存储检索、查询分析、告警投递等功能,全面提升用户在研发、运维、运营等场景的观测能力。如下图所示,本文将带您全面了解云舟观测的日志服务能力。
一、日志采集和解析
云舟观测提供了功能强大的日志采集组件——Arkit,运行在主机或容器内,快速高效地完成日志实时采集。Arkit包含读取(Reader)、解析(Parser)、发送(Sender)三个模块,且三个模块可以任意组合,并支持自定义,可以满足绝大多数场景的日志采集需求。
云舟观测Arkit在日志采集方面具有以下特性:
1. 支持在Linux主机和K8S容器运行;
2. 支持从文件/目录、Syslog、Kafka、Elasticsearch等数据源实时读取日志,并支持自定义读取插件,从其他日志源中读取;
3. 支持对原始日志进行格式化解析,包括JSON解析、CSV解析、Grok解析等,并支持自定义解析插件,可以在采集端完成对数据的格式化处理;
4. 支持对原始日志进行过滤,可以通过配置字符串模糊匹配、正则匹配等方式,过滤掉不需要的日志,在采集端减少日志的无效传输;
5. 支持发送数据至云舟观测日志存储、HDFS、Kafka、Elasticsearch等日志存储;
6. 支持限定运行资源(CPU核数)和传输带宽,降低对系统资源的影响;
7. 支持通过设置合理的批次大小和间隔,提升采集吞吐量;
云舟观测也将提供日志接收功能,用户可以在业务中通过HTTP/SDK等方式,将数据打点上报至云舟观测。
二、日志存储和转存
云舟观测采用奇麟数仓作为日志存储。奇麟数仓是由360智汇云自研的新一代存算分离数仓产品,依托云计算、虚拟机和容器等技术,支持海量日志数据存储、日志实时接入,日志实时统计分析,联邦查询等,相比传统ES等日志存储引擎,具有低成本、高性能、易使用等特点。
在写入日志存储时候,默认只有时间索引,将原始日志整条存储在raw_log字段中,查询时候需要根据时间索引筛选后,再从raw_log中进行模糊匹配查询。为了根据实际需求提高查询性能,平台支持在写入时候,从原始日志中提取索引字段,如下图所示,提取region、httpcode、client_ip作为索引字段,那么在检索分析时候,通过这三个字段筛选的效率将大大提升。
用户也可以通过云舟观测将日志采集并转存至自有存储中,支持将日志转存至HDFS、Kafka和Elasticsearch。
三、日志检索和分析
采集到云舟观测日志存储的日志,平台会根据选择的时间范围,使用柱状图展示不同日志时间段的数量,如果对日志进行了筛选过滤,柱状图会同步展示筛选后结果。
用户可以在平台中进行实时查询检索,可以通过时间选择器选定时间范围,在搜索框中通过索引字段进行索引快速筛选,也可以通过输入关键字,进行日志模糊匹配查找。
如果需要对日志进行更进一步的统计分析,可以跳转到奇麟数仓,使用SQL进行统计分析。
四、日志告警和可视化
在云舟观测中,可以对一个日志采集任务采集的日志配置告警规则,系统会实时判定并触发异常告警。规则中支持使用“计数”和“去重计数”来统计次数,过滤条件使用IN、NOT_IN、LIKE等匹配关键字,如图所示,下面的告警规则等价于SQL:
SELECT instance,COUNT(log_time) FROM xxx WHERE a IN ('systemd','su') GROUP BY instance;
设置检测频率,当统计次数达到设定的阈值,并且持续时长达到设定值时候,即会触发告警事件。
在日志采集后,平台提供了可视化视图,对一个采集任务的日志进行统计展示,展示所选时间范围内的日志总量,分组统计,时间线统计,最新的日志列表等数据,也可以输入关键字进行匹配统计展示。另外,基于采集到的日志可以自己构建可视化视图。
关于云舟观测
云舟观测是由360智汇云推出的一款一站式数据采集与监控观测产品,可以对基础设施、应用性能,以及云原生下业务指标和日志进行全面的监控和观测,构建全链路的可观测性服务,帮助用户及时发现和解决系统及应用性能问题,提高系统的稳定性和可靠性。
云舟观测产品官网:https://guance.360.cn/#/intro
智汇云官方电话:4000052360
欢迎各类合作~