日志易有自己的搜索处理语言 SPL(Search Processing Language) SPL 语言有些类似于SQL ,但却比 SQL 更加强大、灵活,SQL 用于结构化数据查询,SPL 专门用于日志这种非结构化数据的查询和分析。用户可通过在日志易搜索框中编写SPL 脚本程序进行各种查询、统计、分析,包括机器学习和智能运维。


尽管需要对 SPL 有一定了解才能更好地在日志易中搜索统计,但实际上,我们并不需要了解所有的 SPL 函数。掌握了一些使用 SPL 的方法,再配合日志易检索参考手册,就能够完成 90% 以上的统计了。

日志易有自己的搜索处理语言 SPL(Search Processing Language) SPL 语言有些类似于SQL ,但却比 SQL 更加强大、灵活,SQL 用于结构化数据查询,SPL 专门用于日志这种非结构化数据的查询和分析。用户可通过在日志易搜索框中编写SPL 脚本程序进行各种查询、统计、分析,包括机器学习和智能运维。


尽管需要对 SPL 有一定了解才能更好地在日志易中搜索统计,但实际上,我们并不需要了解所有的 SPL 函数。掌握了一些使用 SPL 的方法,再配合日志易检索参考手册,就能够完成 90% 以上的统计了。


不信?来看完这篇文章再说。


1确定分析场景


通常来说,数据搜索的目的可分为两类:故障排查和统计可视化。基于这两种目的, SPL 的用法也有着明显的不同。


故障排查


故障排查主要通过关键字、唯一标识符等低频词元,利用索引中倒排表的高性能查找特性,快速定位和读取原始日志内容。常见场景有:查找错误代码、关联跟踪特定订单或客户访问在多模块之间的流动情况、分析异常堆栈等等。


故障排查需要进行原文检索,由于原文日志量大,通常我们需要使用更高效的方式来减少系统的工作量。这体现在以下几个原则上:


1. 设置刚刚好的时间范围:从时间范围上排除不必要的数据,如果你知道一个故障的发生时间是下午 3 点左右,可以指定下午 2 点 45 到 3 点 15 时间段。这可以通过 starttime、 endtime 实现,或在搜索框的时间选择器选定;


2. 只获取必要的数据:从日志类型上排除不必要的数据。发生故障的系统是  Nginx 系统,可以指定日志类型为 nginx 。这一般通过  appname、tag、source、logtype 等字段进行过滤。Source 指日志来源,日志来源可能是日志文件路径,logtype 表示该日志被何种解析规则所解析,appname 和 tag 是由用户自己定义的标识;


3. 尽量不要跨主机传输数据